GitHub MCP HTTP代理

GitHub MCP HTTP代理是一个将GitHub MCP服务器的stdio接口转换为HTTP接口的工具,适用于自动化脚本、CI/CD、仪表板等HTTP客户端。

  • by doomdybbuk
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 doomdybbuk/script-github-mcp

使用说明

github mcp http代理

HTTP → GitHub MCP服务器的stdio桥


什么是GitHub MCP服务器?

GitHub的 模型上下文协议(MCP)服务器 是一个轻量级的服务器,它公开了基于JSON的工具操作(如 create_repository, create_branch, create_or_update_file等等)。

默认情况下,官方GitHub MCP服务器只运行 标准输入输出--这意味着它通过标准输入/输出管道读取/写入JSON。
这适用于 本地CLI工具或代理,但对于GUI、web应用程序或网络客户端来说很不方便。


这个项目增加了什么

此回购捆绑了:

  • 官方的 github-mcp-server (仅支持stdio的服务器)
  • HTTP代理网桥 生成MCP服务器并通过简单的HTTP端点公开它(/call)

因此,您现在可以直接执行以下操作,而不是处理stdio: curl-X POSThttp://localhost:8080/call-d@payload.json

文本


运作原理

  • 这 http-proxy 二进制文件运行本地HTTP服务器(默认值: 0.0.0.0:8080).
  • 在每次请求时,它都会生成 github-mcp-server 在stdio模式下,通过管道传入请求,并通过HTTP返回响应。

在本地构建和运行

1.克隆仓库 克隆https://github.com//github-mcp-http-proxy.git cd github mcp http代理

文本

2.初始化Go模块 go mod初始化github//github mcp http代理

文本 跟踪构建的依赖关系。

3.构建MCP服务器

  • 视窗
    go build -o github-mcpserver.exe ./cmd/github-mcp-server
    
  • Linux/macOS
    go build -o github-mcpserver ./cmd/github-mcp-server
    

这编译了官方的stdio MCP服务器。

4.构建HTTP代理

  • 视窗
    go build -o http-proxy.exe ./cmd/http-proxy
    
  • Linux/macOS
    go build -o http-proxy ./cmd/http-proxy
    

这将构建HTTP→ stdio桥。

5.运行代理(生成MCP服务器)

  • 视窗
    .\http-proxy.exe --addr="0.0.0.0:8080" --server-cmd ".\github-mcpserver.exe stdio" --timeout=30
    
  • Linux/macOS
    ./http-proxy --addr="0.0.0.0:8080" --server-cmd "./github-mcpserver stdio" --timeout=30
    

旗帜说明:

  • --addr=0.0.0.0:8080 → HTTP服务器绑定地址
  • --server-cmd "./github-mcpserver stdio" → 代理如何启动MCP stdio服务器
  • --timeout=30 → 每个请求超时(秒)

Docker设置

A. Dockerfile 包括构建二进制文件和运行HTTP代理的程序。

构建图像 docker build-t github mcp http代理:最新。

文本

运行容器 docker运行-p 8080:8080 -e礼品_个人资料_访问_令牌=“${礼品_个人信息_访问_ cookie}” github mcp http代理:最新

文本 现在可以在以下位置访问服务器:
http://localhost:8080/call


JSON有效载荷示例

创建存储库

examples/create_repo.json: { “tool”:“create_repository”, “论点”:{ “name”:“我的你好java”, “description”:“通过MCP HTTP网桥导入”, “private”:false, “autoInit”:true } }

文本 运行: curl-X POSThttp://localhost:8080/call -H“内容类型:应用程序/json” -d@examples/create_repo.json

文本

创建分支

{ “工具”:“create_branch”, “论点”:{ “owner”:“您的用户名”, “repo”:“我的你好java”, “分支”:“特征-1”, “base_branch”:“main” } }

文本

创建/更新文件

{ “工具”:“create_or_update_file”, “论点”:{ “owner”:“您的用户名”, “repo”:“我的你好java”, “分支”:“主”, “path”:“README.md”, “消息”:“添加README”, “内容”:“SGVsbG8gV29ybGQh” } }

文本 (内容为base64,表示“Hello World!”)

多文件提交

{ “工具”:“multi_file”, “论点”:{ “owner”:“您的用户名”, “repo”:“我的你好java”, “分支”:“主”, “commit_message”:“添加项目文件”, “文件”:[ {“path”:“pom.xml”,“content”:“…”}, {“路径”:“src/main/java/com/example/App.java”,“内容”:“…”} ] } }

文本 :警告: 注意:某些MCP版本可能不支持 multi_file 开箱即用。如果你看到 tool 'multi_file' not found,要么修补MCP以添加它,要么回退到多个 create_or_update_file 电话。


为什么这很重要

这座简单的桥把 stdio-only GitHub MCP服务器转换为HTTP API 你可以打电话给 curl、Postman或任何客户端库.

它解锁了与的轻松集成 自动化脚本、CI/CD、仪表板和任何支持HTTP的服务.