一个统一的网关,用于Model Context Protocol (MCP)服务器,支持从GitHub仓库中发现、配置和访问工具,通过单一端点实现。
https://github.com/user-attachments/assets/f011f8bf-6c99-4a8a-8236-f8eb0a3fb9e4
当前版本: 0.8.0
注意: 该项目处于测试阶段。API和功能可能会发生变化。
MCP Anywhere 提供了以下功能:
📚 完整的文档可以在mcpanywhere.com找到
# 克隆仓库
git clone https://github.com/locomotive-agency/mcp-anywhere.git
cd mcp-anywhere
# 使用uv安装(推荐)
uv sync
# 或者使用pip安装
pip install -e .
# 配置环境
cp env.example .env
# 编辑.env文件并填写所需值:
# SECRET_KEY=<安全随机密钥>
# ANTHROPIC_API_KEY=<你的API密钥>
# 启动服务
mcp-anywhere serve http
# 或:python -m mcp_anywhere serve http
# 访问地址:http://localhost:8000
# 安装Fly CLI
curl -L https://fly.io/install.sh | sh
# 部署应用
cd mcp-anywhere
fly launch
fly secrets set SECRET_KEY=<安全随机密钥>
fly secrets set JWT_SECRET_KEY=<jwt密钥>
fly secrets set ANTHROPIC_API_KEY=<你的API密钥>
fly secrets set GOOGLE_OAUTH_CLIENT_ID=<google-oauth客户端ID>
fly secrets set GOOGLE_OAUTH_CLIENT_SECRET=<google-oauth客户端密钥>
fly deploy
# 应用可用地址:https://your-app.fly.dev
使用docker compose部署应用程序作为docker容器。
# 配置环境
cp env.example .env
# 编辑.env文件并填写所需值:
# SECRET_KEY=<安全随机密钥>
# ANTHROPIC_API_KEY=<你的API密钥>
构建并部署应用程序
$ docker compose -f docker-compose.native.yml up -d --build
查看日志以了解状态
$ docker logs mcp-anywhere-app
导航到http://<DOCKER-HOST>:8000/以使用应用程序
使用Web界面添加MCP服务器仓库:
https://github.com/modelcontextprotocol/servershttps://github.com/yzfly/mcp-python-interpreter系统使用Claude AI自动分析和配置仓库。
MCP Anywhere支持安全上传和管理MCP服务器的凭证文件:
支持的文件类型:
特性:
通过Web界面使用:
GOOGLE_APPLICATION_CREDENTIALS)安全性考虑:
DATA_DIR/secrets/<server_id>/Claude Desktop配置:
首先运行which uv,这将打印出uv二进制文件的路径。例如,在macOS上:
/Users/yourname/.local/bin/uv
然后可以使用该路径在启动命令中。更改--directory路径为你克隆的MCP Anywhere路径。
{
"mcpServers": {
"mcp-anywhere": {
"command": "/Users/yourname/.local/bin/uv",
"args": ["run", "--directory", "/Users/yourname/Projects/mcp-anywhere", "mcp-anywhere", "connect"]
}
}
}
最后,在启动Claude Desktop之前设置MCP Anywhere应用程序:
uv run mcp-anywhere serve stdio
身份验证选项:
对于Google OAuth(团队推荐):
GOOGLE_OAUTH_CLIENT_ID=your-client-id
GOOGLE_OAUTH_CLIENT_SECRET=your-client-secret
GOOGLE_OAUTH_REDIRECT_URI=/auth/callback
OAUTH_USER_ALLOWED_DOMAIN=company.com # 可选:限制到您的域
/auth/login处登录HTTP API集成:
from fastmcp import Client
from fastmcp.client.auth import BearerAuth
async with Client(
"https://your-app.fly.dev/mcp/",
auth=BearerAuth(token="<oauth-token>")
) as client:
tools = await client.list_tools()
命令行接口:
# 对于MCP客户端连接
mcp-anywhere connect
# 或:python -m mcp_anywhere connect
# 对于STDIO服务器模式(本地Claude Desktop集成)
mcp-anywhere serve stdio
# 对于带有OAuth的HTTP服务器模式(生产)
mcp-anywhere serve http --host 0.0.0.0 --port 8000
客户端应用 → MCP Anywhere网关 → Docker容器 → MCP工具
↓
Web管理界面
贡献领域:
SECRET_KEY # 会话加密密钥
ANTHROPIC_API_KEY # 用于仓库分析的Claude API密钥
JWT_SECRET_KEY # JWT令牌签名密钥(默认为SECRET_KEY)
WEB_PORT # Web界面端口(默认:8000)
DATA_DIR # 数据存储目录(默认:.data)
DOCKER_TIMEOUT # 容器操作超时时间(秒,默认:300)
LOG_LEVEL # 日志级别(默认:INFO)
GITHUB_TOKEN # 私有仓库访问的GitHub令牌
# 容器管理
CLEANUP_CONTAINERS_ON_SHUTDOWN # 应用关闭时清理容器(默认:false)
REBUILD_CONTAINERS_ON_STARTUP # 启动时重建容器(默认:true)
# Google OAuth(可选 - 启用Google认证)
GOOGLE_OAUTH_CLIENT_ID # Google OAuth客户端ID
GOOGLE_OAUTH_CLIENT_SECRET # Google OAuth客户端密钥
GOOGLE_OAUTH_REDIRECT_URI # OAuth重定向URI(例如,/auth/callback)
OAUTH_USER_ALLOWED_DOMAIN # 限制特定域的访问(例如,company.com)
# 安装开发依赖
uv sync --group dev
# 运行测试
uv run pytest
# 运行代码检查
uv run ruff check src/ tests/
# 运行类型检查
uv run mypy src/
# 运行所有测试
uv run pytest
# 运行带覆盖率的测试
uv run pytest --cov=mcp_anywhere
LOG_LEVEL=DEBUG mcp-anywhere serve http
mcp-anywhere reset --confirm
参见LICENSE