使用说明
MCPCore(Python)
MCPCore是一个模块化的、可直接用于生产的MCP(Modded Minecraft Project,模组化Minecraft项目)服务器框架,支持自动发现功能 提示、工具、资源; 可流式传输的HTTP; API密钥/承载令牌 使用(某种方式)认证 范围与撤销; 速率限制; 管理员命令行界面(Admin CLI); Docker/Compose(通常可简化为“Docker Compose”); Helm 图表;和 CI(企业识别系统/企业形象识别系统)。
仓库: https://github.com/protolabs42/MCPCore
快速入门(可流式传输的HTTP)
uv add "mcp[cli]" pydantic starlette uvicorn redis typer
uv run mcp-core # serves streamable HTTP at http://127.0.0.1:8000/mcp
# STDIO fallback
uv run mcp-core-stdio # or: ANY_MCP_ENABLE_HTTP=false uv run mcp-core
在暴露服务器之前,请设置明确的安全环境变量:
export ANY_MCP_ENABLE_AUTH=true
export ANY_MCP_KEYS_PATH=./keys.json
export ANY_MCP_CORS_ALLOW_ORIGINS=http://localhost:5173
通过(某种方式)添加到客户端(例如,Claude Desktop) .mcp.json:
{
"mcpServers": { "mcpcore": { "command": "uv", "args": ["run", "mcp-core"] } }
}
可流式传输的HTTP + 认证 + 速率限制
export ANY_MCP_HTTP_HOST=0.0.0.0
export ANY_MCP_HTTP_PORT=8000
export ANY_MCP_HTTP_PATH=/mcp
export ANY_MCP_CORS_ALLOW_ORIGINS=http://localhost:5173,http://localhost:3000
export ANY_MCP_CORS_EXPOSE_HEADERS=Mcp-Session-Id
# Keys in JSON &/or Redis
export ANY_MCP_ENABLE_AUTH=true
export ANY_MCP_KEYS_PATH=./keys.json
export ANY_MCP_REDIS_URL=redis://localhost:6379/0
# Rate limiting
export ANY_MCP_RATE_LIMIT=true
export ANY_MCP_RATE_WINDOW_S=60
export ANY_MCP_RATE_MAX=300
uv run mcp-core-http
客户示例
curl健康检查:curl -H "Authorization: Bearer sk_live_demo" http://127.0.0.1:8000/healthz- python
fastmcp客户:import asyncio from fastmcp import Client async def main(): async with Client("http://127.0.0.1:8000/mcp") as client: tools = await client.list_tools() print("Tools:", [t.name for t in tools]) result = await client.call_tool("ping", {}) print("Ping:", result.data) asyncio.run(main())
管理员命令行界面(Admin CLI)
# add a key with scopes
uv run mcp-core-admin keys add --key sk_live_ABC --scopes tools:*,resources:*,prompts:*
# list/revoke/update
uv run mcp-core-admin keys list
uv run mcp-core-admin keys revoke --key sk_live_ABC
uv run mcp-core-admin keys set-scopes --key sk_live_ABC --scopes tools:ping,resources:time
# clean up revoked entries (JSON or Redis stores)
uv run mcp-core-admin keys cleanup
反向代理
确保你的代理服务器保留(所需设置/数据等) Authorization, X-API-Key,以及 Mcp-Session-Id 标题;暴露 Mcp-Session-Id 通过CORS(跨源资源共享)。
Kubernetes(通常简称为K8s)
使用Helm图表在 chart/设置图像、环境和入口 values.yaml:
helm upgrade --install mcpcore ./chart
添加你自己的功能
拖放文件,它们将自动注册:
src/mcp_core/tools/my_tool.py(与)一起;带有;用@mcp.tool()src/mcp_core/resources/my_res.py和;与@mcp.resource("scheme://{param}")src/mcp_core/prompts/my_prompt.py和;与@mcp.prompt()
最佳实践
见 BEST_PRACTICES.md 关于此仓库的工具/资源设计、安全性、性能、测试及运维方面的指导。
安全提示
- 默认设置对本地开发较为宽松:在生产环境之前,请启用认证并固定(版本/配置)
ANY_MCP_CORS_ALLOW_ORIGINS并且在TLS之后运行。 - 建议使用基于 Redis 的速率限制,并将密钥存储在保险库或密钥管理器中。
- 定期更换密钥,撤销未使用的密钥,并执行
uv run mcp-core-admin keys cleanup以清除过时条目。
开发工作流程
- 安装开发依赖项:
uv pip install -e . - 运行检查:
./scripts/check.sh - 工具自动从(某处)注册
src/mcp_core/{tools,resources,prompts}; 在下方添加配套测试tests/.