MCP网关
模型上下文协议(MCP)服务器的网关。
此网关用于 通过 sandbox.mcp 配置以向在沙盒环境中运行的AI代理提供MCP服务器访问权限。
快速开始
- 拉取Docker镜像 (如果可用):
docker pull ghcr.io/github/gh-aw-mcpg:latest- 创建配置文件 (
config.json):
{
"gateway": {
"apiKey": "${MCP_GATEWAY_API_KEY}"
},
"mcpServers": {
"github": {
"type": "stdio",
"container": "ghcr.io/github/github-mcp-server:latest",
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": ""
}
}
}
}- 运行容器:
docker run --rm -i \
-e MCP_GATEWAY_PORT=8000 \
-e MCP_GATEWAY_DOMAIN=localhost \
-e MCP_GATEWAY_API_KEY=your-secret-key \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /path/to/logs:/tmp/gh-aw/mcp-logs \
-p 8000:8000 \
ghcr.io/github/gh-aw-mcpg:latest `).
**日志记录**:每个服务器的日志文件(`{serverID}.log`),统一 `mcp-gateway.log`,markdown工作流预览(`gateway.md`),机器可读 `rpc-messages.jsonl`,以及一个持久的wazero编译缓存 `/wazero-cache` 默认情况下。
## API终点
- `POST /mcp/{serverID}` --路由模式(默认):JSON-RPC请求到特定服务器
- `POST /mcp` --统一模式:JSON-RPC请求路由到配置的服务器
- `GET /health` --健康检查;返回JSON `{"status":"healthy" | "unhealthy","specVersion":"...","gatewayVersion":"...","servers":{...}}`
支持的MCP方法: `tools/list`, `tools/call`,以及任何其他方法(按原样转发)。
## 代理模式
网关也可以作为HTTP转发代理运行(`awmg proxy`)拦截来自以下工具的GitHub API请求: `gh` CLI并应用相同的DIFC过滤:
awmg proxy \ --guard-wasm guards/github-guard/github_guard.wasm \ --policy '{"allow-only":{"repos":["org/repo"],"min-integrity":"approved"}}' \ --github-token "$GITHUB_TOKEN" \ --listen localhost:8080
这将大约25个REST URL模式和GraphQL查询映射到保护工具名称,然后运行MCP网关使用的相同的6阶段DIFC管道。看 [docs/PROXY_MODE.md](docs/PROXY_MODE.md) 获取完整文档。
## 延伸阅读
|主题|链接|
|-------|------|
| **代理模式** | [docs/PROXY_MODE.md](docs/PROXY_MODE.md) --用于DIFC过滤的HTTP转发代理 `gh` CLI和REST/GraphQL请求|
| **完整性过滤** | [完整性过滤参考](https://github.com/github/gh-aw/blob/main/docs/src/content/docs/reference/integrity.md) --完整性级别、被阻止的用户、审批标签和过滤配置|
| **配置参考** | [docs/CONFIGURATION.md](docs/CONFIGURATION.md) --服务器字段、TOML/JSON格式、保护策略详细信息、自定义模式、网关字段、验证规则|
| **环境变量** | [docs/环境变量.md](docs/ENVIRONMENT_VARIABLES.md) --用于生产、开发、Docker和防护配置的所有环境变量|
| **完整规格** | [MCP网关配置参考](https://github.com/github/gh-aw/blob/main/docs/src/content/docs/reference/mcp-gateway.md) --具有完整验证规则的上游规范|
| **警卫响应标签** | [docs/GUARD_RESPONSE_LABELING.md](docs/GUARD_RESPONSE_LABELING.md) --警卫如何用保密/完整性标签标记MCP响应|
| **HTTP后端会话** | [docs/HTTP_BACKEND_SESSION_ID.md](docs/HTTP_BACKEND_SESSION_ID.md) --HTTP传输后端的会话ID管理|
| **架构模式** | [docs/MCP_SERVER_ARCHITECTURE_PATTERNS.md](docs/MCP_SERVER_ARCHITECTURE_PATTERNS.md) --MCP服务器设计模式和兼容性|
| **网关兼容性** | [docs/GATEWA_COMPATIBILITY_QUICK_REFERENCE.md](docs/GATEWAY_COMPATIBILITY_QUICK_REFERENCE.md) --网关兼容性快速参考|
| **安全模型** | [docs/aw-security.md](docs/aw-security.md) --安全架构概述|
| **贡献** | [贡献.md](CONTRIBUTING.md) --开发设置、构建、测试、项目结构|
## 许可证
MIT许可证