人工控制MCP服务器

一个允许用户通过网页界面实时响应Claude请求的模型上下文协议服务器,适用于需要人工干预的决策、查询和搜索场景。

  • by lardratboy
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 lardratboy/human_mcp

使用说明

人工控制的MCP服务器 🎮

一个模型上下文协议(MCP)服务器,其中 你 他们是后端!克劳德(Claude)发出请求,而你通过一个漂亮的网页界面实时作出回应。

这个是做什么的?

这个MCP服务器并没有将Claude连接到API、数据库或自动化工具,而是将Claude连接到了 你当克劳德需要信息、想要做出决策或需要人类判断时,它会向您的网页仪表盘发送请求,您可以在那里进行回应。

特点/功能

  • 🌐 代表互联网或全球网络的符号,可直接译为“🌐(互联网/全球网络)”。不过,在具体语境中,也可以根据需要选择更贴切的表述,如“🌐(表示互联网或全球网络)”。但通常,直接使用🌐加解释性文字或保持符号原样即可。 网页界面美观的单页仪表板,用于查看和响应Claude的请求
  • ⚡(闪电符号,无特定中文含义,可直译为“闪电”或根据上下文保留原样) 实时请求会立即显示在您的浏览器中
  • 🎨 表示“艺术”或“绘画”的意思,可以翻译为“🎨(艺术/绘画)”。不过,在实际语境中,这个表情符号通常不需要翻译,直接使用即可表达其含义。如果非要翻译,可以简单地说它代表“艺术”或“绘画”的概念。 简洁的用户界面现代、响应式的界面,无需任何框架
  • 🔧(扳手) 多种工具提出问题,请求搜索,或从人类那里获取决策
  • ⏱️(倒计时/时间流逝) 超时处理待处理请求的自动5分钟超时设置

建筑学

Claude Desktop
    ↓ (MCP Protocol)
Python MCP Server
    ↓ (HTTP)
Web Interface (You!)

设置说明

1. 安装依赖项

pip install -r requirements.txt

2. 配置Claude桌面版

编辑您的Claude Desktop配置文件:

macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

添加此配置:

{
  "mcpServers": {
    "human-controlled": {
      "command": "python",
      "args": [
        "/absolute/path/to/human_mcp_server.py"
      ]
    }
  }
}

重要的替换 /absolute/path/to/human_mcp_server.py 以及Python文件的实际完整路径。

3. 启动服务器

您有两个选择:

选项A:通过Claude桌面版 (推荐)

  • 配置完成后,只需重启Claude桌面版即可
  • 当Claude Desktop启动时,服务器会自动启动
  • 打开你的浏览器,访问 http://localhost:5001

选项B:独立测试

python human_mcp_server.py

然后通过Claude桌面版进行连接,或者使用MCP客户端进行测试。

4. 打开网页界面

导航至: http://localhost:5001 翻译为中文是:“本地主机上的5001端口”。不过,通常我们不会直接这样翻译网址,而是会根据上下文或用途来解释其意义,比如“这是运行在本地计算机上的一个Web服务的地址,监听5001端口”。但直接翻译网址本身,上述表述是准确的

你会看到“人类MCP控制面板”,在那里你可以回应克劳德的请求。

使用

在Claude Desktop中

一旦配置完成,Claude 将能够访问三种工具:

  1. 询问人类问你一个问题
  2. 人工搜索请您搜索相关信息
  3. 人为决策请你做出决定

示例对话

你“克劳德,你能问我晚餐想吃什么吗?”

克劳德: 使用ask_human工具

[您的网页界面显示]:

Tool: ask_human
Parameters:
{
  "question": "What would you like for dinner tonight?",
  "context": "The user asked me to ask them this question."
}

你: 在网页界面中输入“我想吃意大利面配玛琳娜拉酱”,然后点击提交

克劳德“根据你的回答,你今晚晚餐想吃意大利面配玛琳娜拉酱!”

可用工具

1. 询问人类

向人工操作员提出任何问题。

参数:

  • question (必填):要提出的问题
  • context (可选):额外上下文

示例用法“你的电子邮箱地址是什么?”“你批准这个变更吗?”“你对这个方法有什么看法?”

2. 人工搜索

请人类搜索信息。

参数:

  • query (必填):要搜索的内容
  • sources (可选):查看位置

示例用法“你能帮我查一下关于人工智能的最新新闻吗?”“查一下我们公司第三季度的收入数据。”

3. 人为决策

请人类做出决定。

参数:

  • decision_needed (必填):需要决定的内容
  • options (必需):可用选项
  • recommendation (可选):AI的建议

示例用法“我们应该用方法A还是B来实现这个功能?”“你更喜欢哪种设计?”

技术细节

  • 协议;规程通过标准输入输出(stdio)的模型上下文协议(MCP)
  • 服务器使用Flask的Python进行网页界面开发
  • 交通MCP的标准输入/输出,以及用于网页用户界面的HTTP
  • 超时每个请求5分钟
  • 端口5001(网页界面)

故障排除

服务器无法启动

  • 检查端口5001是否已被占用
  • 验证Python依赖项是否已安装: pip list | grep -E "flask|mcp"

克劳德无法连接

  • 验证路径中的(内容/设置等) claude_desktop_config.json 是绝对且正确的
  • 配置更改后重启Claude桌面版
  • 检查Claude Desktop的日志以查找错误

网页界面无法访问

  • 确保服务器正在运行: lsof -i :5001
  • 尝试访问 http://127.0.0.1:5001 而不是 localhost
  • 检查您的防火墙设置

请求超时

  • 默认超时时间为5分钟 - 增加 max_wait 在代码中如需时
  • 确保您的网页界面已打开并正在进行轮询

定制化

更改端口

编辑 app.run() 在代码中:

app.run(host='0.0.0.0', port=8080, debug=False, use_reloader=False)

添加更多工具

在(此处)添加新工具 handle_list_tools() 遵循MCP工具规范的功能。

修改超时时间

改变 max_wait 在……中 handle_call_tool() 函数(当前为300秒)。

自定义用户界面

编辑该 HTML_TEMPLATE 字符串 - 它是一个单一的、自包含的HTML文件,内嵌了CSS和JavaScript。

安全注意事项

  • 这个服务器绑定到 0.0.0.0,使其在您的局域网中可访问
  • 对于仅限本地主机访问,请更改为 host='127.0.0.1'
  • 如果通过网络暴露,需添加身份验证
  • 响应仅存储在内存中(非持久性)

用例

  • 个人助理克劳德询问你的日程安排、偏好或决定
  • 研究助手克劳德请求你查询它无法访问的信息
  • 代码审查克劳德征求你对代码更改的批准或意见
  • 创意合作克劳德征求你的创意贡献或指导
  • 教学工具演示MCP服务器如何与手动响应协同工作

致谢/鸣谢

构建于:

许可证

MIT 许可证 - 欢迎随意修改和使用!