把 IDE 里的 AI(Copilot/Cursor/Windsurf)变成 ChatGPT + OpenAI API。一次对话,无限调用
Overview
把 IDE 里的 AI 变成 ChatGPT + OpenAI API 一个 MCP Server,让你的 IDE AI 拥有 Web 聊天界面和标准 API 通过 NapCat 接入 QQ,调用 MCP Chat 的 OpenAI 兼容 API,实现 QQ 机器人与 IDE AI 对话。 MCP Chat 通过 MCP 协议让 IDE 里的 AI 进入一个 — 本质上是一次永不结束的对话。在这个对话内,外部可以通过 Web UI 或 API 无限次与 AI 交互。 📸 查看实际运行截图 — 一次 Copilot 对话,chat() 无限循环调用 - — 浏览器里和 IDE AI 聊天,支持 Markdown 渲染、代码高亮、图片上传、多会话管理 - — 支持 /v1/chat/completions、/v1/responses、/v1/messages,支持流式响应,可对接 OpenAI SDK 与 Anthropic SDK - — Windsurf、Cursor、GitHub Copilot、Claude Code / Desktop 同时连接,各自独立会话 - — Web UI 已预构建,安装依赖后直接运行 - — 整个服务端只有一个 server.py,无框架依赖,易于理解和二次开发 Web UI 已预构建在 web-ui/dist/ 中,无需 Node.js 环境。 如需修改前端:cd web-ui && npm install && npm run build 文件:%APPDATA%\Claude\claude_desktop_config.json (Windows) / ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) IDE 中的 AI 进入 chat() 循环后,你可以通过标准 OpenAI API 与它交互。
README
MCP Chat
把 IDE 里的 AI 变成 ChatGPT + OpenAI API 一个 MCP Server,让你的 IDE AI 拥有 Web 聊天界面和标准 API
English · 中文
快速开始 · IDE 配置 · API 调用 · 使用场景 · 架构
截图
Web UI
QQ 机器人对接(NapCat + OpenAI API)
通过 NapCat 接入 QQ,调用 MCP Chat 的 OpenAI 兼容 API,实现 QQ 机器人与 IDE AI 对话。
它能干什么
你的 IDE (Windsurf / Cursor / Copilot / Claude Code)
↕ MCP 协议
┌────────────────┐
│ server.py │──> Web UI (多会话聊天界面)
│ (MCP 网关) │──> OpenAI / Anthropic 兼容 API (/v1/chat/completions · /v1/responses · /v1/messages)
│ │──> 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 服务
功能特性
- Web UI — 浏览器里和 IDE AI 聊天,支持 Markdown 渲染、代码高亮、图片上传、多会话管理
- OpenAI / Anthropic 兼容 API — 支持
/v1/chat/completions、/v1/responses、/v1/messages,支持流式响应,可对接 OpenAI SDK 与 Anthropic 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] Responses endpoint: http://127.0.0.1:8080/v1/responses
[MCP Chat] Anthropic endpoint: http://127.0.0.1:8080/v1/messages
[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 |
| http://127.0.0.1:8080/v1/responses | OpenAI Responses API |
| http://127.0.0.1:8080/v1/messages | Anthropic Messages 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"
}
}
}
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 / Anthropic 兼容 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":"你好"}]}'
# OpenAI Responses
curl http://127.0.0.1:8080/v1/responses \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.3-codex","input":"你好"}'
# Anthropic Messages
curl http://127.0.0.1:8080/v1/messages \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-20250514","max_tokens":1024,"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 |
| POST | /v1/responses |
OpenAI 兼容 Responses API |
| POST | /v1/messages |
Anthropic 兼容 Messages API |
| GET | /v1/models |
模型列表 |
| POST | /mcp |
MCP Streamable HTTP 端点 |
| GET | /poll |
长轮询状态更新 |
| POST | /submit |
提交用户回复 |
| GET | /history |
获取会话历史 |
常见问题 & 原理
Contributing
欢迎提交 Issue 和 Pull Request!
# 开发前端
cd web-ui && npm install && npm run dev
# 后端
python server.py
⭐ Star
如果这个项目对你有帮助,请给个 Star ⭐ 支持一下!
License
Install
This server does not publish a one-line install command.
Open the repository installation guideConfiguration
{
"mcpServers": {
"mcp-chat": {
"serverUrl": "http://127.0.0.1:8080/mcp"
}
}
}