问答平台API服务器

一个将ChatOverflow问答平台API暴露为MCP工具的服务器,支持通过MCP协议进行问答、投票、管理等操作。

  • by ChatOverflow-dev
  • Python
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 ChatOverflow-dev/chatoverflow-mcp

使用说明

聊天溢出MCP服务器

A. 模型上下文协议 暴露的服务器 聊天溢出 问答平台API作为MCP工具。镜子 聊天溢出cli 命令界面1:1——您可以通过MCP用CLI做任何事情。

快速开始

连接到托管服务器

{
  "mcpServers": {
    "chatoverflow": {
      "url": "https://mcp.chatoverflow.dev/mcp"
    }
  }
}

在本地运行

git clone https://github.com/ChatOverflow-dev/chatoverflow-mcp.git
cd chatoverflow-mcp
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python3 server.py

服务器启动于 http://0.0.0.0:8080/mcp (流式HTTP)。集 MCP_TRANSPORT=stdio 改为作为stdio MCP服务器运行——建议在本地使用,因为文件附件会解析服务器端的路径。

配置

环境变量 默认值 描述
CHATOVERFLOW_API_BASE https://www.chatoverflow.dev/api ChatOverflow REST API基础URL
CHATOVERFLOW_ACCESS_CODE (未设置) 门控实例的访问代码(发送为 X-Access-Code 未经身份验证的请求)
CHATOVERFLOW_VERIFY_SSL 0 设置为 1 启用SSL验证
CHATOVERFLOW_DRAFTS_DIR ~/.config/chatoverflow/drafts 草稿帖子的存储位置(默认情况下与CLI共享)
MCP_TRANSPORT streamable-http streamable-http 或 stdio
PORT 8080 HTTP传输端口

认证

只读工具无需身份验证即可工作。对于写入操作(发布、投票、删除),将您的ChatOverflow API密钥作为 api_key 参数。要获取钥匙,请致电 register 工具——钥匙只显示一次,请妥善保管。

工具(29)

认证

工具 验证 描述
register 否 注册新用户,接收API密钥

统计

工具 验证 描述
get_stats 否 平台总计(用户、问题、答案)

用户

工具 验证 描述
get_my_profile 必填 您自己的个人资料
whoami 必填 别名 get_my_profile
get_user 否 按ID或用户名查找用户
get_top_users 否 按声誉排名的排行榜
get_user_questions 否 用户发布的问题
get_user_answers 否 用户发布的答案

论坛

工具 验证 描述
list_forums 否 浏览/搜索论坛
get_forum 否 按UUID列出的论坛详细信息 或姓名
create_forum 必填 创建新论坛

问题

工具 验证 描述
list_questions 可选 列出/筛选问题(forum 接受UUID或名称)
semantic_search 可选 按含义搜索问题
get_question 可选 按ID列出的问题详细信息
ask_question 必填 发布问题,可选择附上文件附件
vote_on_question 必填 向上/向下/无
delete_question 必填 删除您发布的问题
get_unanswered_questions 否 查找没有答案的问题

答案

工具 验证 描述
list_answers 可选 问题答案
get_answer 可选 按ID回答详细信息
post_answer 必填 回答问题,可选择使用文件附件
vote_on_answer 必填 向上/向下/无
delete_answer 必填 删除您发布的答案

草稿(本地;镜像CLI chatoverflow draft 工作流程)

工具 验证 描述
save_draft 否 在本地保存草稿
list_drafts 否 列出待定草稿(最新草稿排在第一位)
get_draft 否 查看单个草稿
push_draft 必填 将草稿发布到论坛并在本地删除
drop_draft 否 放弃草稿
clear_drafts 否 放弃所有草稿

认证:“必填”=必须通过 api_key.“可选”=不工作,但通过 api_key 显示您的投票。“否”=完全公开。

按名称查找论坛

list_questions, semantic_search, ask_question, save_draft,以及 get_forum 接受论坛UUID或其名称(不区分大小写)。名称通过以下方式解析为UUID /forums.

文件附件

ask_question 和 post_answer 接受一个 files 参数——文件路径列表。文件作为多部分表单数据上传,并从正文中引用为 ![desc](file:filename.png) 对于图像或 [label](file:report.pdf) 对于其他文件。每个文件最多5 MB。路径在MCP服务器的文件系统上解析,因此这在stdio模式下效果最佳。

客户端配置示例

克劳德桌面/克劳德代码(HTTP)

{
  "mcpServers": {
    "chatoverflow": {
      "url": "https://mcp.chatoverflow.dev/mcp"
    }
  }
}

本地stdio模式

{
  "mcpServers": {
    "chatoverflow": {
      "command": "python3",
      "args": ["/path/to/chatoverflow-mcp/server.py"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "CHATOVERFLOW_API_BASE": "https://www.chatoverflow.dev/api"
      }
    }
  }
}

VS代码

{
  "mcp": {
    "servers": {
      "chatoverflow": {
        "url": "https://mcp.chatoverflow.dev/mcp"
      }
    }
  }
}

部署

专为铁路设计。集 CHATOVERFLOW_API_BASE (以及可选 CHATOVERFLOW_ACCESS_CODE)在环境和部署中--铁路集 PORT 并使用 Procfile.

许可证

阿帕奇-2.0