使用说明
MCP代理-动态MCP服务器加载
热重新加载MCP服务器,而无需重新启动Claude Code。
一键安装
光标
VS Code
克劳德代码
# Clone the repo first
git clone https://github.com/lizTheDeveloper/mcp_proxy.git
cd mcp_proxy
pip install -r requirements.txt
# Then add to Claude Code (run from parent directory of mcp_proxy)
claude mcp add mcp-proxy -- python -m mcp_proxy.servers.proxy_server
Manual Installation
步骤1:克隆存储库
git clone https://github.com/lizTheDeveloper/mcp_proxy.git
pip install -r mcp_proxy/requirements.txt
步骤2:添加到MCP配置
克劳德代码 (~/.claude.json 或项目 .mcp.json):
{
"mcpServers": {
"mcp-proxy": {
"command": "python",
"args": ["-m", "mcp_proxy.servers.proxy_server"],
"cwd": "/path/to/mcp_proxy",
"env": {
"PYTHONPATH": "/path/to/parent/of/mcp_proxy"
}
}
}
}
光标 (~/.cursor/mcp.json):
{
"mcpServers": {
"mcp-proxy": {
"command": "python",
"args": ["-m", "mcp_proxy.servers.proxy_server"],
"cwd": "/path/to/mcp_proxy",
"env": {
"PYTHONPATH": "/path/to/parent/of/mcp_proxy"
}
}
}
}
备注:替换 /path/to/parent/of/mcp_proxy 与实际的父目录。例如,如果您克隆到 /Users/me/src/mcp_proxy,使用 /Users/me/src.
特性
- 热重新加载:无需重新启动即可加载和重新加载MCP服务器
- 动态安装:从git存储库安装服务器
- 程序化编排:在循环和工作流中动态调用工具
- 上下文节省:仅加载所需的工具
快速开始
1.安装
git clone https://github.com/lizTheDeveloper/mcp_proxy.git
cd mcp_proxy
pip install -r requirements.txt
2.配置
添加到您的项目 .mcp.json:
{
"mcpServers": {
"mcp-proxy": {
"command": "python",
"args": ["-m", "mcp_proxy.servers.proxy_server"],
"cwd": "/path/to/mcp_proxy",
"env": {
"PYTHONPATH": "/path/to/parent/of/mcp_proxy"
}
}
}
}
重要: PYTHONPATH 应该指向 父目录 你克隆的地方 mcp_proxy,而不是mcp_proxy目录本身。例如,如果您克隆到 /Users/me/src/mcp_proxy,set PYTHONPATH 到 /Users/me/src.
3.使用
重新启动Claude Code一次以加载代理后,您可以:
# Load any MCP server dynamically (no restart!)
load_mcp_server_dynamically("my-server")
# Call tools on loaded servers
call_dynamic_server_tool("my-server", "tool_name", {"param": "value"})
# Install and load from git in one step
install_and_load_mcp_server("https://github.com/user/mcp-server")
可用工具(共13个)
| 工具 | 说明 |
|---|---|
| 动态加载 | |
load_mcp_server_dynamically |
从.mcp.json加载服务器 |
call_dynamic_server_tool |
调用已加载服务器上的任何工具 |
get_loaded_servers |
列出当前加载的服务器 |
reload_mcp_server |
重新加载服务器以获取更改 |
unload_mcp_server |
停止并卸载服务器 |
list_available_servers |
列出所有已配置的服务器 |
| 安装 | |
install_mcp_server_from_git |
从git仓库安装 |
install_and_load_mcp_server |
一步完成安装和装载 |
list_installed_mcp_servers |
列出所有已安装的服务器 |
uninstall_mcp_server |
删除服务器 |
| 工具搜索 | |
search_tools |
跨加载服务器的自然语言搜索 |
list_all_tools |
列出所有已加载服务器中的所有工具 |
get_tool_info |
获取特定工具的详细信息 |
运作原理
Claude Code
|
v
MCP Proxy Server (meta-tools)
|
v
Dynamic Server Loader (subprocess manager)
|
v
Individual MCP Servers (spawned on-demand)
代理将MCP服务器作为子进程生成,并通过stdin/stdout使用MCP JSON-RPC协议与它们通信。
使用模式
开发过程中的热重载
# Load your server
load_mcp_server_dynamically("my-dev-server")
# Test it
call_dynamic_server_tool("my-dev-server", "my_feature", {})
# Make code changes...
# Reload with new code
reload_mcp_server("my-dev-server")
# Test again - no restart needed!
call_dynamic_server_tool("my-dev-server", "my_feature", {})
程序化工作流程
# Load the server
load_mcp_server_dynamically("user-management")
# Programmatic workflow
users = call_dynamic_server_tool("user-management", "list_users", {"limit": 100})
for user in users["data"]:
if user["needs_activation"]:
call_dynamic_server_tool("user-management", "activate_user", {
"user_id": user["id"]
})
多服务器编排
# Load multiple servers
for server in ["database", "stripe", "email"]:
load_mcp_server_dynamically(server)
# Orchestrate across servers
customer = call_dynamic_server_tool("database", "get_customer", {"id": 123})
payment = call_dynamic_server_tool("stripe", "charge", {"amount": 2999})
call_dynamic_server_tool("email", "send_receipt", {"to": customer["email"]})
创建自定义服务器
创建FastMCP服务器并将其添加到 .mcp.json:
# my_server.py
from fastmcp import FastMCP
mcp = FastMCP("my-server")
@mcp.tool()
def my_tool(param: str) -> dict:
"""Tool description"""
return {"success": True, "result": param}
if __name__ == "__main__":
mcp.run()
{
"mcpServers": {
"my-server": {
"command": "python",
"args": ["my_server.py"],
"cwd": "/path/to/server"
}
}
}
然后动态加载:
load_mcp_server_dynamically("my-server")
call_dynamic_server_tool("my-server", "my_tool", {"param": "hello"})
许可证
麻省理工学院
