mcp-front
使用说明(Markdown 格式)
-
项目简介
- mcp-front 是一个 MCP 服务器实现与网关组件的组合,能够托管 MCP 的 Resources、Tools、Prompts,并通过 HTTP/JSON-RPC 与客户端进行交互,同时提供 OAuth 身份验证、会话管理和对内外 MCP 服务器的代理能力。
-
主要功能点
- 提供对 Resources、Tools、Prompts 的托管、注册和渲染能力,支持 inline、stdio、SSE、streamable-http 等传输类型。
- 通过 JSON-RPC 与 MCP 客户端通信,支持 initialize、tools/list、tools/call、prompts、resources 等操作。
- 具备多种身份认证方式(OAuth、浏览器 SSO、按需注入的用户令牌),并实现 per-service 的 audience 验证(RFC 8707)。
- 支持 per-user 会话隔离(stdio 会为每个用户创建独立子进程、实现会话清理与回收),并提供对令牌、令牌刷新与令牌注入的完整流程。
- 内置 Inline 服务、本地/远程后端的代理、以及聚合服务的注册与运行。
- 提供对前端 UI 的令牌管理、服务连接、OAuth 流程、离线/在线凭证管理的完整支持。
-
安装步骤
- 使用 Go 构建:
- go build ./...
- 使用 Docker 运行(示例):
- docker run -p 8080:8080 -v $(pwd)/config.json:/app/config.json mcp-front:latest
- 直接运行可执行文件:
- go install github.com/stainless-api/mcp-front/cmd/mcp-front@latest
- mcp-front -config config.json
- 使用 Go 构建:
-
服务器配置(示例,供 MCP 客户端连接使用的配置文件,JSON 格式)
-
版本信息与代理设置
-
代理配置(proxy.baseURL、proxy.addr、proxy.name、proxy.auth)用于客户端连接与鉴权
-
MCP 服务器配置(mcpServers),包含一个示例服务 filesystem,传输类型为 stdio,启动命令及参数
-
配置示例要点(注释性说明如下,不在实际部署中直接复制,而是帮助理解字段含义): { "version": "v0.0.1-DEV_EDITION_EXPECT_CHANGES", "proxy": { "baseURL": "http://localhost:8080", "addr": ":8080", "name": "mcp-front", "auth": { "kind": "oauth", "issuer": "https://mcp.yourdomain", "idp": { "provider": "google", "clientId": {"$env": "GOOGLE_CLIENT_ID"}, "clientSecret": {"$env": "GOOGLE_CLIENT_SECRET"}, "redirectUri": "https://mcp.yourdomain/oauth/callback" }, "jwtSecret": {"$env": "JWT_SECRET"}, "encryptionKey": {"$env": "ENCRYPTION_KEY"}, "allowedDomains": ["yourdomain"], "allowedOrigins": ["https://claude.ai"] } }, "mcpServers": { "filesystem": { "transportType": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"], "serviceAuths": [ { "type": "bearer", "tokens": ["dev-token-123"] } ] } } }
-
说明
- 该示例展示了一个用于本地开发的最小可用配置:在本地通过 stdio 方式启动一个文件系统背景服务,并通过 OAuth 进行认证与资源隔离。
- MCP 客户端在连接 MCP 前需要提供服务器的启动命令与参数(如上示例中的 command/args),以便在对接时能够正确启动和调用后端服务。
-
-
基本使用方法
- 启动并监听
- 使用配置文件启动后,mcp-front 将对照配置创建并暴露 MCP 接入点,客户端可使用 JSON-RPC 方式与之交互。
- 认证与授权
- 通过 OAuth/OIDC 提供身份认证,支持 per-user token 注入、令牌刷新及多服务的 audience 控制。
- 服务协作
- 支持单服务直连、以及聚合服务的后端聚合调用,客户端可通过不同传输类型与后端进行交互。
- 常见运维
- 监控日志、对接云端存储(Firestore/内存等)、配置 HTTPS/证书等。
- 启动并监听
-
备注
- 本项目目前处于开发阶段,包含大量抽象与中间件实现,实际生产环境需结合具体需求进行配置与安全评估。
-
参考与扩展
- 通过 README 与源码了解更多可用传输类型、工具/资源的实现方式,以及 MCP 的自定义能力与 UI 服务的实现。