AM

ahsansuryana/mcp-gateway

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

0 stars 0 forks 质量 68 趋势 20MIT

聚合MCP网关:一个POST/mcp终端,位于多个远程和本地MCP上行前方

概览

一个聚合的MCP网关。它呈现一个POST/mcp端点,向多个上游MCP服务器扩散——无论是通过Streamable HTTP远程,还是本地npx生成的stdio进程——并命名返回的地址。 - 命名空格为_(D4)。- 重写为 gw:///(D5)。- (D8):故障上游的工具从工具/列表中消失,原因显示在GET /status中。- :网关是通往上游的OAuth(Sprint 5),也是对入站调用者(Sprint 6)的OAuth。它们不共享凭证。 这就是整个快速启动程序。没有配置需要先写:如果没有配置,mcp-gateway 会写一个起始配置到 /.mcp-gateway/gateway.json,生成一个入站 API 密钥,然后打印两个配置文件: 编辑配置,在MCP下添加上行,保存时它会重新加载。生成的主机是127.0.0.1;--hostname 0.0.0会将其扩展到网络中。 如果 npm i -g 因权限错误失败,那么 npm 的全局前缀无法被你的用户写入。

概述(AI 翻译)

一个聚合的MCP网关。它呈现一个POST /mcp端点,向多个端点扩散 上游MCP服务器——通过可流式HTTP远程,或通过npx生成的本地站点 处理过程——并命名它返回的内容。

  • 工具、提示和资源的命名空间为_(D4)。
  • 资源URI被重写为gw:// / (D5)。
  • 上游故障永远不会破坏网关(D8):损坏的上游工具会消失 从tools/list开始,原因在GET /status中显示。
  • 两个独立的OAuth角色:网关是通往上游的OAuth 客户端 (Sprint 5)和一个用于入站调用者的OAuth 资源服务器(Sprint 6)。它们没有共享 资历。

文档说明:

文档 内容
docs/CONFIG.md 每个配置字段,均由模式生成
docs/SECURITY.md 威胁模型,“配置即代码”,已知的规格偏差
docs/DEPLOY.md 你自己的子域名分步骤运行手册
docs/OPERATIONS.md 部署、密钥、防火墙、故障排除
docs/MANUAL-TESTS.md 需要真正部署的测试
docs/reports/project-summary.md 存在什么,哪些被验证

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

MCP Gateway

Satu endpoint MCP yang menggabungkan banyak MCP server (stdio, HTTP, SSE). Agen cukup tersambung ke gateway, dan gateway meneruskan panggilan ke backend yang sesuai.

Fitur utama:

  • Satu endpoint, banyak backend. Tool diberi awalan nama server: github__search_issues, vercel__get_deployment.
  • Hemat konteks. Backend bermode lazy disembunyikan dari daftar tool dan diakses lewat tiga meta-tool pencarian.
  • Profil. /mcp/ hanya menampilkan sebagian server.
  • OAuth ke backend. Backend seperti Vercel cukup diberi "auth": { "type": "oauth" }. Login sekali, token disimpan dan di-refresh otomatis.
  • OAuth dari agen. Gateway sendiri adalah authorization server OAuth 2.1, jadi agen/klien MCP bisa tersambung dengan login password, tanpa token statis.
  • Reconnect otomatis dengan backoff dan cache daftar tool.

Daftar isi

  1. Prasyarat dan instalasi
  2. Menjalankan
  3. Menyambungkan agen
  4. Referensi konfigurasi (schema)
  5. Mode expose: full, lazy, auto
  6. Profil
  7. OAuth
  8. Endpoint HTTP
  9. Menjalankan di produksi
  10. Keamanan
  11. Pemecahan masalah
  12. Batasan

Prasyarat dan instalasi

  • Node.js 18 atau lebih baru (diuji di Node 22).
  • Paket @modelcontextprotocol/sdk versi 1.x.
git clone  mcp-gateway && cd mcp-gateway
npm install
npm run build

Project ini ditulis dalam TypeScript (ES module). Hasil build ada di dist/.

Struktur project

src/
  index.ts         entry CLI (-c / --config)
  app.ts           merakit komponen, start, shutdown
  config/          tipe dan loader konfigurasi
  backend/         koneksi ke backend: pool, OAuth client, token store
  gateway/         katalog tool, filter allow/deny, mode lazy, compact
  oauth-server/    authorization server OAuth 2.1 milik gateway
  http/            server HTTP (/mcp, /health, /oauth/callback)
  utils/           logger, glob, crypto, html
test/              unit test (npm test)

Skrip npm: npm run dev (watch, tanpa build), npm run build, npm start, npm run typecheck, npm test.

Menjalankan

  1. Salin contoh konfigurasi dan sesuaikan:

    cp gateway.example.json gateway.json
    
  2. Atur variabel lingkungan yang dirujuk konfigurasi (${NAMA}):

    export GATEWAY_TOKEN="$(openssl rand -hex 32)"      # token statis untuk skrip/curl
    export GATEWAY_PASSWORD="password-login-oauth-anda"  # password halaman persetujuan OAuth
    
  3. Jalankan:

    npm start                                  # memakai ./gateway.json
    node dist/index.js -c /path/conf.json      # konfigurasi lain
    npm run dev                                # mode pengembangan (tsx watch)
    

Contoh log saat start:

在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →