十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

GitHub MCP Server 怎么用 mcpcurl 命令行调用 MCP 工具?

GitHub MCP Server 怎么用 mcpcurl 命令行调用 MCP 工具? GitHub MCP Server 怎么用 mcpcurl 命令行调用 MCP 工具【免费下载链接】github-mcp-serverGitHubs official MCP Server项目地址: https://gitcode.com/GitHub_Trending/gi/github-mcp-server如果你不想通过 IDE 或 AI 客户端这类 MCP host而是直接在终端里调用 GitHub MCP Server 的工具可以使用仓库自带的命令行工具mcpcurl。它会连接到 MCP server、动态拉取工具 schema、把每个工具生成为一条可执行的 CLI 子命令并在执行时做参数校验。前提是你本地具备 Go 1.24 或更高版本并能通过 Docker 镜像或本地构建访问 GitHub MCP Server参见 cmd/mcpcurl/README.md。准备条件按 cmd/mcpcurl/README.md 的 PrerequisitesGo 1.24 或更高版本。注意仓库 go.mod 声明的是go 1.25.12如果你从源码构建建议直接使用满足 go.mod 要求的 Go 版本以免构建失败。能通过 Docker 或本地构建运行 GitHub MCP Server。一个 GitHub Personal Access Token。mcpcurl的示例命令通过docker run -e GITHUB_PERSONAL_ACCESS_TOKEN从宿主机环境读取 token所以先在自己的 shell 里把它导出export GITHUB_PERSONAL_ACCESS_TOKENyour_token_here安装并验证 mcpcurl两种方式任选其一命令来自 cmd/mcpcurl/README.md# 方式一从源码构建在仓库目录内执行 cd cmd/mcpcurl go build -o mcpcurl# 方式二通过 go install 安装最新版 go install github.com/github/github-mcp-server/cmd/mcpcurllatest构建完成后用 help 验证安装成功./mcpcurl --help能打印出命令帮助即表示二进制可用。命令基本形态所有命令的统一形式是mcpcurl --stdio-server-cmd启动 MCP server 的命令 command [flags]--stdio-server-cmd是全局必填参数指定一条通过 stdio 启动 MCP server 的 shell 命令文档中的示例用 Docker 启动。mcpcurl提供三个顶层命令tools包含从 schema 动态生成的全部工具子命令schema拉取并显示 MCP server 返回的原始 schemahelp查看任意命令的帮助。另有一个全局参数--pretty默认 true用于对 JSON 响应做缩进格式化。查看工具列表和参数 schema先用tools --help列出当前 server 暴露的所有工具。文档给出的示例使用 Docker 启动 server% ./mcpcurl --stdio-server-cmd docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN mcp/github tools --help Contains all dynamically generated tool commands from the schema Usage: mcpcurl tools [command] Available Commands: add_issue_comment Add a comment to an existing issue create_branch Create a new branch in a GitHub repository create_issue Create a new issue in a GitHub repository ... get_issue Get details of a specific issue in a GitHub repository ... update_issue Update an existing issue in a GitHub repository Flags: -h, --help help for tools Global Flags: --pretty Pretty print MCP response (only for JSON responses) (default true) --stdio-server-cmd string Shell command to invoke MCP server via stdio (required) Use mcpcurl tools [command] --help for more information about a command.以上为文档示例输出实际列出的工具取决于 server 版本与配置。确认某个工具后再用tools tool --help查看它由 input schema 生成的 flags、类型和必填项% ./mcpcurl --stdio-server-cmd docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN mcp/github tools get_issue --help Get details of a specific issue in a GitHub repository Usage: mcpcurl tools get_issue [flags] Flags: -h, --help help for get_issue --issue_number float --owner string --repo string每个工具命令的 flag 与其输入 schema 一一对应schema 中标记为必填的参数在 CLI 层会被标记为 required带 enum 约束的字符串参数会做取值校验见 cmd/mcpcurl/README.md 的 Dynamic Commands 一节。调用一个工具以读取golang/go仓库的 1 号 issue 为例这是 cmd/mcpcurl/README.md 中的完整示例% ./mcpcurl --stdio-server-cmd docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN mcp/github tools get_issue --owner golang --repo go --issue_number 1成功时响应打印到 stdout默认经过--pretty格式化输出为该 issue 的 JSON 字段author_association、body、closed_at等。文档中给出的返回内容是针对golang/go#1 的示例结果仅用于展示输出形态不代表任何固定预期值。关于--stdio-server-cmd中使用的镜像文档里有两种写法mcpcurl 文档示例使用mcp/github而主 README.md 中本地 server 的 Docker 配置使用的是公开镜像ghcr.io/github/github-mcp-server若拉取报错可能是 token 过期需要docker logout ghcr.io。两者指代同一用途可按你本地可用的镜像选择。没有 Docker 时的可选路径主 README 说明可以用go build构建cmd/github-mcp-server目录下的二进制然后以github-mcp-server stdio命令配合GITHUB_PERSONAL_ACCESS_TOKEN环境变量作为 stdio server 启动方式把该命令填入--stdio-server-cmd。mcpcurl 的工作机制理解这一节有助于判断调用失败发生在哪一步。按 cmd/mcpcurl/README.md 的 How It Works 与 cmd/mcpcurl/main.go 的实现mcpcurl启动--stdio-server-cmd指定的进程先发 MCPinitialize握手请求protocolVersion 为2024-11-05再发notifications/initialized随后发送tools/listJSON-RPC 请求拿到全部工具的 schema根据 schema 动态生成tools下的子命令、flags、必填校验、类型校验、enum 校验和帮助文本执行工具命令时把 flags 组装为tools/callJSON-RPC 请求写入 server 的 stdin响应从 stdout 读回并打印。读取响应时会跳过 server 发来的 notification没有id字段的消息只取带id的响应行如果响应中带error字段会以server returned error: ...的形式报错见 cmd/mcpcurl/main.go。常见问题与限制忘记--stdio-server-cmd该参数对所有命令必填缺失时直接报--stdio-server-cmd is required。server 端返回错误报错形如server returned error: 错误内容内容来自 server 响应里的 JSON-RPC error 字段需要根据该信息排查 token 权限、仓库是否存在等 server 侧原因。stdout 结束但没读到响应会报unexpected end of output通常说明 server 进程没有返回带id的响应就退出了先确认--stdio-server-cmd里的命令本身能正常启动 server。传输方式限制mcpcurl只通过 stdio 连接 MCP serverConnects to an MCP server via stdio文档示例都是围绕 Docker/本地构建的本地 server不提供远端 HTTP server 的调用方式。--stdio-server-cmd会执行你给的任意 shell 命令请自行确认命令来源与副作用文档标注了该设计是有意为之mcpcurl is a test command that needs to execute arbitrary shell commands见 cmd/mcpcurl/main.go。完成一次成功的工具调用后终端打印的 JSON 响应本身就是验证结果如果需要核对 server 当前暴露了哪些工具和参数结构可以直接运行mcpcurl --stdio-server-cmd 启动命令 schema查看原始 schema。【免费下载链接】github-mcp-serverGitHubs official MCP Server项目地址: https://gitcode.com/GitHub_Trending/gi/github-mcp-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表