人机问答协议服务

一个基于Model Context Protocol (MCP)的人机协作问答服务,提供Web界面和内存数据库管理问题与答案。

  • by corani
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 corani/mcp-human-go

使用说明

🤖 询问人类MCP

一个模型上下文协议(MCP)服务器和一个用于人类在线问答的web UI。

  • 🧑‍💻 通过现代网络界面向操作员提问
  • 🗃️ 存储和管理(问题、上下文)→ 内存数据库中的答案对
  • 🔗 与MCP协议集成,用于代理工作流
  • 💬 在响应式、Bootstrap驱动的UI中查看、过滤和回答问题

[!注意] 深受启发 Masony817/询问人类mcp (用Python编写)和 KOBA789/人在环 (用Rust编写)。

✨ 特性

  • 🤝 MCP服务器:实现代理/人工协作的模型上下文协议
  • 🌐 Web用户界面:用于列出、筛选和回答问题的单页应用程序
  • ⚡ 内存数据库:快速、线程安全地存储问题和答案
  • 🔄 实时更新:UI自动刷新并显示连接状态
  • 🖥️ 现代用户体验:响应式设计、键盘快捷键和模态对话框

🚀 入门指南

先决条件

  • 转到1.24+

运行服务器

  1. 克隆存储库:
    git clone <repo-url>
    cd mcp-human-go
    
  2. 构建并运行:
    go run ./cmd/mcp-human-go
    
  3. 打开web UI:

⚙️ 配置

您可以使用环境变量或 .env 项目根目录(或XDG配置目录)中的文件。支持以下选项(请参见 internal/config/config.go):

变量 默认值 描述
WEB_PORT 8990 web UI/API的端口
SSE_PORT 8989 SSE(事件)服务器的端口
MAX_WAIT 60 人工应答的最大等待时间(秒)

您可以创建 .env 文件如下:

WEB_PORT=8990
SSE_PORT=8989
MAX_WAIT=60

或者在运行之前在shell中设置变量:

export WEB_PORT=8990
export MAX_WAIT=60

🛠️ MCP客户端配置

您可以使用配置MCP客户端 mcp.json 文件。这允许您通过SSE(HTTP)或stdio连接到人工服务器。例子:

{
    "servers": {
        "mcp-human-sse": {
            "url": "http://localhost:8989/mcp"
        },
        "mcp-human-stdio": {
            "type": "stdio",
            "command": "go",
            "args": [
                "run",
                "./cmd/mcp-human-go/"
            ]
        }
    }
}
  • mcp人sse:在给定的URL上使用HTTP/SSE连接到服务器。
  • mcp人类性病:使用stdio将服务器作为子进程启动(对本地开发或集成很有用)。

您可以在MCP客户端配置或工具中选择要使用的服务器。

📝 用法

  • ✍️ 新问题将添加到内存数据库中,并显示在web UI中。
  • 👁️ 单击问题以查看详细信息并在模态对话框中回答。
  • 🕵️ 使用过滤器隐藏已回答的问题。
  • 🚦 UI显示后端何时无法访问,并在重新连接时恢复。
  • ⌨️ 使用Ctrl+Enter快速提交答案。

📁 项目结构

  • cmd/mcp-human-go/ --主要入口点
  • internal/memory/ --内存数据库逻辑
  • internal/web/ --Web服务器和UI
  • internal/human/ --人机交互逻辑
  • internal/tools/ --MCP工具注册

🙏 主要依赖关系

📄 许可证

MIT许可证。看 许可证 了解详情。