MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

把 IDE 里的 AI(Copilot/Cursor/Windsurf)变成 ChatGPT + OpenAI API。一次对话,无限调用

创建于 4/26/2026
更新于 about 4 hours ago
Repository documentation and setup instructions

MCP Chat

把 IDE 里的 AI 变成 ChatGPT + OpenAI API
一个 MCP Server,让你的 IDE AI 拥有 Web 聊天界面和标准 API

License Stars Issues

English · 中文

快速开始 · IDE 配置 · API 调用 · 使用场景 · 架构


截图

Web UI

image - MCP Chat by maile456

QQ 机器人对接(NapCat + OpenAI API)

qqBot - MCP Chat by maile456

通过 NapCat 接入 QQ,调用 MCP Chat 的 OpenAI 兼容 API,实现 QQ 机器人与 IDE AI 对话。


它能干什么

你的 IDE (Windsurf / Cursor / Copilot / Claude Code)
        ↕ MCP 协议
   ┌────────────────┐
   │   server.py    │──> Web UI (多会话聊天界面)
   │   (MCP 网关)   │──> OpenAI 兼容 API (/v1/chat/completions)
   │                │──> WebSocket 实时推送
   └────────────────┘
         ↕
  QQ 机器人 / 飞书Bot / Continue 插件 / 自动化脚本 / ...

核心原理:一次对话,无限调用

MCP Chat 通过 MCP 协议让 IDE 里的 AI 进入一个 chat() 循环 — 本质上是一次永不结束的对话。在这个对话内,外部可以通过 Web UI 或 API 无限次与 AI 交互。

各 IDE 的计费方式不同,利用 MCP Chat 的效果也不同:

| IDE | 计费方式 | 配合 MCP Chat 的效果 | |-----|---------|---------------------| | GitHub Copilot | 按请求次数(Agent 模式无限) | ✅ Agent 模式下 完全无限,每次交互消耗 1 次请求,但无上限 | | Cursor Pro | 有月度额度(快/慢请求) | ✅ 超额后会降速但不会停止,对话内可一直工作 | | Windsurf Pro | 有 credits 额度 | ⚠️ 消耗 credits,用完需等额度刷新 | | Claude Code | 按 API token 计费 | ⚠️ 每次交互消耗 token,按量付费 |

💡 最佳搭配:GitHub Copilot(无限请求)+ MCP Chat = 免费无限 AI API 服务

📸 查看实际运行截图 — 一次 Copilot 对话,chat() 无限循环调用

mcp-chat - MCP Chat by maile456

功能特性

  • Web UI — 浏览器里和 IDE AI 聊天,支持 Markdown 渲染、代码高亮、图片上传、多会话管理
  • OpenAI 兼容 API — 标准 /v1/chat/completions 接口,支持流式响应,任何 OpenAI SDK 兼容工具可直接对接
  • 多 IDE 支持 — Windsurf、Cursor、GitHub Copilot、Claude Code / Desktop 同时连接,各自独立会话
  • 零配置启动 — Web UI 已预构建,安装依赖后直接运行
  • 单文件后端 — 整个服务端只有一个 server.py,无框架依赖,易于理解和二次开发

快速开始

安装

git clone https://github.com/maile456/mcp-chat.git
cd mcp-chat

# 安装 Python 依赖
pip install mcp[cli] websockets

# 启动服务
python server.py

Web UI 已预构建在 web-ui/dist/ 中,无需 Node.js 环境。 如需修改前端:cd web-ui && npm install && npm run build

启动成功

[MCP Chat] API endpoint: http://127.0.0.1:8080/v1/chat/completions
[MCP Chat] Models endpoint: http://127.0.0.1:8080/v1/models
INFO     Application startup complete.

| 地址 | 说明 | |------|------| | http://127.0.0.1:8080 | Web UI 聊天界面 | | http://127.0.0.1:8080/mcp | MCP 端点(IDE 连这个) | | http://127.0.0.1:8080/v1/chat/completions | OpenAI 兼容 API | | ws://127.0.0.1:8081 | WebSocket 实时推送 |


IDE 配置

复制下面的 JSON,粘贴到对应配置文件即可。

Windsurf

文件:~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "mcp-chat": {
      "serverUrl": "http://127.0.0.1:8080/mcp"
    }
  }
}

Cursor

文件:~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-chat": {
      "url": "http://127.0.0.1:8080/mcp"
    }
  }
}

VS Code (GitHub Copilot)

文件:~/.vscode/mcp.json

{
  "servers": {
    "mcp-chat": {
      "type": "http",
      "url": "http://127.0.0.1:8080/mcp"
    }
  }
}
Copilot 推荐设置

在项目 .vscode/settings.json 中添加:

{
  "chat.tools.global.autoApprove": true,
  "chat.tools.terminal.autoApprove": { ".*": true },
  "github.copilot.chat.agent.maxRequests": 99999
}

Claude Code

claude mcp add mcp-chat --transport http http://127.0.0.1:8080/mcp

Claude Desktop

文件:%APPDATA%\Claude\claude_desktop_config.json (Windows) / ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

方式一:HTTP 传输(推荐,需先启动 server.py)

{
  "mcpServers": {
    "mcp-chat": {
      "url": "http://127.0.0.1:8080/mcp"
    }
  }
}

方式二:Stdio 传输(自动启动)

{
  "mcpServers": {
    "mcp-chat": {
      "command": "python",
      "args": ["/path/to/mcp-chat/server.py"],
      "env": {}
    }
  }
}

使用方法

配置好 IDE 后,在 AI 对话中输入:

调用 get_prompt 获取工作流程,然后调用 chat 工具与我对话

AI 会自动进入循环:发消息到 Web UI → 等你回复 → 执行任务 → 再发消息 → ...

浏览器打开 http://127.0.0.1:8080 即可开始聊天。


OpenAI 兼容 API

IDE 中的 AI 进入 chat() 循环后,你可以通过标准 OpenAI API 与它交互。

curl

curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"cascade","messages":[{"role":"user","content":"你好"}]}'

Python

from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="no-key")

# 普通请求
r = client.chat.completions.create(
    model="cascade",
    messages=[{"role": "user", "content": "你好"}]
)
print(r.choices[0].message.content)

# 流式请求
stream = client.chat.completions.create(
    model="cascade",
    messages=[{"role": "user", "content": "写一个快排"}],
    stream=True
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

API 认证(可选)

# 设置环境变量启用 API Key
MCP_API_KEY=your-secret-key python server.py
client = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="your-secret-key")

使用场景

| 场景 | 说明 | |------|------| | 个人 AI 助手 | 在浏览器中与 IDE AI 对话,不受 IDE 界面限制 | | QQ 机器人 | 通过 NapCat + OpenAI API 接入 QQ,实现 AI 聊天机器人 | | VS Code + Continue | 同事在 VS Code 中通过 Continue 插件接入你的 API,获得 Copilot 级体验 | | 自动化脚本 | CI/CD 代码审查、批量文档生成等 |


架构

mcp-chat/
├── server.py              # 核心服务 (MCP + HTTP + WebSocket + API)
├── web-ui/                # Vue 3 + TailwindCSS 前端
│   ├── src/
│   │   ├── components/    # Vue 组件
│   │   ├── composables/   # 组合式函数
│   │   └── App.vue
│   ├── dist/              # 预构建产物 (开箱即用)
│   └── package.json
└── README.md

技术栈

| 层 | 技术 | |----|------| | 后端 | Python · FastMCP · Starlette · WebSocket | | 前端 | Vue 3 · TailwindCSS · Markdown-it · Highlight.js · Lucide Icons | | 协议 | MCP (Streamable HTTP) · WebSocket · SSE | | API | OpenAI Chat Completions 兼容 |

MCP 工具

| 工具 | 参数 | 说明 | |------|------|------| | get_prompt | — | 返回 Chat 工作流规则 | | chat | ai_message (必填), model, source, project | 发送消息到 Web UI 并等待用户回复 |

API 端点

| 方法 | 路径 | 说明 | |------|------|------| | POST | /v1/chat/completions | OpenAI 兼容 Chat API | | GET | /v1/models | 模型列表 | | POST | /mcp | MCP Streamable HTTP 端点 | | GET | /poll | 长轮询状态更新 | | POST | /submit | 提交用户回复 | | GET | /history | 获取会话历史 |


常见问题 & 原理

它是怎么工作的?

MCP Chat 注册了一个 chat() 工具。IDE 的 AI 调用这个工具后,server.py 会把 AI 发来的消息推送到 Web UI,然后阻塞等待用户回复。用户回复后,工具返回结果给 AI,AI 处理后再次调用 chat() — 形成一个无限循环。

AI 调用 chat("你好") → server 推送到 Web UI → 用户回复 "帮我写代码"
→ chat() 返回用户的回复 → AI 处理并再次调用 chat("这是代码...") → ...

整个过程对 IDE 来说只是「一次对话中反复调用同一个工具」,所以只消耗一次对话额度。

为什么 Copilot 可以无限用?

GitHub Copilot Agent 模式允许 AI 在一次对话中无限次调用工具(maxRequests 可设为 99999)。MCP Chat 的 chat() 工具每次调用算 1 次请求,但 Agent 模式不设上限,所以可以无限循环。

其他 IDE 也能用,但各有限制:Cursor 超额降速、Windsurf 消耗 credits、Claude Code 按 token 计费。

OpenAI API 是怎么实现的?

server.py 内置了一个 /v1/chat/completions 端点。收到 API 请求后,server 会把消息注入到当前 chat() 循环中,等 AI 回复后再以 OpenAI 格式返回。支持流式(SSE)和非流式响应。

本质上是:外部 API 请求 → server 转发给 IDE AI → AI 回复 → server 包装成 OpenAI 格式返回

必须打开 IDE 才能用吗?

Web UI 随时可用(查看历史、管理会话等)。但要让 AI 回复,需要 IDE 中有 AI 在 chat() 循环中运行。API 同理 — 没有 AI 在线时请求会超时。

支持哪些模型?

取决于你的 IDE 订阅。MCP Chat 本身不限制模型 — IDE 用什么模型,MCP Chat 就用什么模型。例如 Copilot 支持 GPT-4o、Claude Sonnet、Gemini 等;Cursor 支持 Claude、GPT 系列。

多个用户能同时用吗?

Web UI 支持多会话,每个用户可以独立聊天。但每个 IDE 连接同时只能处理一个 chat() 循环。如果需要多人并发,可以开多个 IDE 实例,每个跑一个 server。


Contributing

欢迎提交 Issue 和 Pull Request!

# 开发前端
cd web-ui && npm install && npm run dev

# 后端
python server.py

⭐ Star

如果这个项目对你有帮助,请给个 Star ⭐ 支持一下!

Star History Chart


License

MIT

快速设置
此服务器的安装指南

安装命令 (包未发布)

git clone https://github.com/maile456/mcp-chat
手动安装: 请查看 README 获取详细的设置说明和所需的其他依赖项。

Cursor 配置 (mcp.json)

{ "mcpServers": { "maile456-mcp-chat": { "command": "git", "args": [ "clone", "https://github.com/maile456/mcp-chat" ] } } }