Loading... # mcporter 使用教程 # 一、概述 ## 1. 简介 ### A. 是什么 mcporter 是一个用于调用 MCP(Model Context Protocol)服务器的 TypeScript 运行时和 CLI 工具。它提供了命令行界面来管理、测试和调用 MCP 服务器,让用户能够方便地使用各种 MCP 工具。 ### B. 为什么学 - MCP 是连接 LLM 与外部服务的标准协议,掌握 mcporter 可以快速测试 MCP 服务器 - 无需编写代码即可调用 MCP 工具,提高开发和调试效率 - 支持多种配置来源,灵活管理 MCP 服务器 ### C. 学完能做什么 - 安装和配置 mcporter - 列出和查看已配置的 MCP 服务器 - 使用命令行调用 MCP 工具 - 排查配置问题 # 二、环境准备 ## 1. 系统要求 - Node.js 14+ 和 npm - Linux、macOS 或 Windows 操作系统 - 网络连接(用于安装和访问远程 MCP 服务器) ## 2. 安装步骤 ### 全局安装 ```bash npm install -g mcporter ``` 如果遇到权限问题,使用 sudo: ```bash sudo npm install -g mcporter ``` ## 3. 验证安装 ```bash mcporter --version ``` 输出示例: ``` 0.7.3 ``` 列出已配置的服务器: ```bash mcporter list ``` # 三、核心概念 ## 1. 基本术语 - MCP 服务器:提供一组工具的远程或本地服务 - 工具(Tool):MCP 服务器提供的具体功能接口 - 选择器(Selector):用于定位特定工具的语法,格式为 server.tool - SSE:Server-Sent Events,mcporter 支持的通信协议之一 ## 2. 配置目录 mcporter 从以下位置加载配置: | 平台 | 配置路径 | |------|---------| | Linux/macOS | ~/.mcporter/mcporter.json | | Windows | %USERPROFILE%\.mcporter\mcporter.json | 此外,mcporter 还会自动从编辑器(如 Cursor、Claude)的设置中导入服务器配置。 ## 3. 工作原理 ```mermaid graph LR A[命令行] -->|mcporter call| B[解析器] B -->|查找服务器| C[配置文件] C -->|获取工具| D[MCP 服务器] D -->|返回结果| E[命令输出] ```  # 四、快速上手 ## 1. Hello World 示例 列出所有已配置的 MCP 服务器: ```bash mcporter list ``` 输出示例: ``` mcporter 0.7.3 — Listing 7 server(s) (per-server timeout: 30s) - nagios-mcp (16 tools, 0.1s) - kali (12 tools, 0.2s) - web-search-prime (1 tool, 0.3s) [source: ~/.claude/settings.json] - web-reader (1 tool, 0.3s) [source: ~/.claude/settings.json] - zread (3 tools, 0.4s) [source: ~/.claude/settings.json] - zai-mcp-server (8 tools, 0.7s) [source: ~/.claude/settings.json] - wenyan-mcp (2 tools, 0.9s) [source: ~/.claude/settings.json] ✔ Listed 7 servers (7 healthy). ``` ## 2. 核心功能演示 ### 查看特定服务器的工具列表 ```bash mcporter list kali --schema ``` ### 调用简单工具 ```bash # 检查服务器健康状态 mcporter call kali.server_health ``` ### 调用带参数的工具 ```bash # Nmap 扫描 mcporter call kali.nmap_scan target:192.168.1.100 scan_type:"-sV" ``` ## 3. 代码讲解 mcporter 的基本调用语法为: ```bash mcporter call <服务器名>.<工具名> [参数名:值 ...] ``` 参数格式使用 key:value 的形式,多个参数用空格分隔。 # 五、配置管理 ## 1. 配置文件格式 mcporter.json 配置文件示例: ```json { "mcpServers": { "nagios-mcp": { "url": "http://192.168.124.47:63001/sse" }, "kali": { "url": "http://kali.mcp.op123.ren/sse" } } } ``` ## 2. 常见配置问题 ### JSON 格式错误 配置文件必须符合标准 JSON 格式,注意: - 对象最后一个属性后不能有逗号 - 字符串必须用双引号 - 键名必须用双引号 错误示例: ```json { "kali": { "url": "http://kali.mcp.op123.ren/sse" }, } ``` 正确示例: ```json { "kali": { "url": "http://kali.mcp.op123.ren/sse" } } ``` # 六、实战案例 ## 1. kali MCP 服务器工具调用 kali 服务器提供了 12 个渗透测试工具,以下是常用示例。 ### Nmap 端口扫描 ```bash # 基本版本检测扫描 mcporter call kali.nmap_scan target:192.168.1.100 scan_type:"-sV" # 指定端口范围 mcporter call kali.nmap_scan target:192.168.1.100 scan_type:"-sV" ports:"22,80,443" # 快速扫描前 1000 端口 mcporter call kali.nmap_scan target:192.168.1.100 scan_type:"-sS" ports:"1-1000" ``` ### Gobuster 目录扫描 ```bash # 基本目录扫描 mcporter call kali.gobuster_scan url:"http://example.com" mode:dir # 使用自定义字典 mcporter call kali.gobuster_scan url:"http://example.com" mode:dir wordlist:"/path/to/wordlist.txt" ``` ### Nikto Web 漏洞扫描 ```bash mcporter call kali.nikto_scan target:"http://example.com" ``` ### SQLMap SQL 注入检测 ```bash mcporter call kali.sqlmap_scan url:"http://example.com/login.php?id=1" ``` ### Metasploit 模块执行 ```bash # 列出可用的 exploits mcporter call kali.execute_command command:"msfconsole -x 'show exploits'" # 执行特定模块 mcporter call kali.metasploit_run module:"exploit/windows/smb/ms17_010_eternalblue" ``` ### Hydra 密码破解 ```bash # SSH 暴力破解 mcporter call kali.hydra_attack target:192.168.1.100 service:ssh username:admin password_file:"/path/to/wordlist.txt" ``` ### John the Ripper 密码破解 ```bash # 使用默认字典破解哈希 mcporter call kali.john_crack hash_file:"/path/to/hashes.txt" ``` ### WPScan WordPress 扫描 ```bash mcporter call kali.wpscan_analyze url:"http://example.com" ``` ### Enum4linux Samba 枚举 ```bash mcporter call kali.enum4linux_scan target:192.168.1.100 ``` ### 执行任意命令 ```bash # 查看系统信息 mcporter call kali.execute_command command:"uname -a" # 查看网络配置 mcporter call kali.execute_command command:"ifconfig" ``` ## 2. 其他服务器示例 ### web-search-prime 搜索 ```bash mcporter call web-search-prime.web_search search_query:"技术文档" ``` ### web-reader 网页阅读 ```bash mcporter call web-reader.webReader url:"https://example.com" ``` # 七、命令参考 ## 1. 核心命令 | 命令 | 说明 | 示例 | |------|------|------| | list | 列出服务器或工具 | mcporter list [name] [--schema] | | call | 调用工具 | mcporter call <selector> [key=value ...] | | auth | 完成 OAuth 认证 | mcporter auth <server \| url> | | config | 管理配置 | mcporter config <command> [options] | | daemon | 管理守护进程 | mcporter daemon <start\|stop\|status> | ## 2. 全局选项 | 选项 | 说明 | 默认值 | |------|------|--------| | --config | 指定配置文件路径 | ./config/mcporter.json | | --log-level | 日志级别 | warn | | --oauth-timeout | OAuth 超时时间(毫秒) | 60000 | ## 3. 生成器工具 ### 生成独立 CLI ```bash mcporter generate-cli --server <name> --compile ./my-cli ``` ### 生成 TypeScript 客户端 ```bash mcporter emit-ts <server> --mode client ``` # 八、常见问题 ## 1. 安装问题 ### 权限错误 错误信息:EACCES: permission denied 解决方案:使用 sudo 安装 ```bash sudo npm install -g mcporter ``` ## 2. 配置问题 ### 配置文件解析失败 错误信息:Expected double-quoted property name in JSON 解决方案:检查 JSON 格式,删除对象末尾多余的逗号 ### 服务器显示不健康 排查步骤: 1. 检查服务器 URL 是否正确 2. 确认服务器是否在线 3. 检查网络连接 4. 查看超时设置 ## 3. 调用问题 ### 工具未找到 错误信息:Tool not found 解决方案:使用 --schema 查看可用工具 ```bash mcporter list <server> --schema ``` ### 参数错误 错误信息:Invalid parameters 解决方案:使用 --all-parameters 查看完整参数列表 ```bash mcporter list <server> --schema --all-parameters ``` # 九、注意事项 1. 安全测试必须在获得明确授权的前提下进行 2. kali MCP 服务器提供的工具仅供授权安全测试、CTF 比赛和安全研究使用 3. 远程 MCP 服务器可能需要身份验证或网络访问权限 4. 部分工具执行时间较长,请耐心等待结果 5. 建议在测试环境中先验证工具调用,再用于生产场景 *** ## 参考资料 1. [mcporter 官方仓库](https://github.com/steipete/mcporter) 2. [MCP 协议规范](https://modelcontextprotocol.io/) 最后修改:2026 年 02 月 28 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏