ima-mcp-server
ima-mcp-server
给你的自建智能体接上 IMA 的「大脑」
将 IMA 知识库 的核心能力——RAG 语义检索 + 知识图谱推理 + LLM 生成——通过标准 MCP 协议暴露出来,让任何个人开发的 AI Agent 都能直接调用。
核心亮点:ask_knowledge_base
这是整个项目的灵魂工具。一句话:把你的知识库变成一个可对话的专家。
用户输入问题
↓
ask_knowledge_base 自动完成:
① 语义检索 → 在知识库中找到最相关的文档片段
② 知识图谱 → 关联实体、概念,补全上下文
③ LLM 生成 → 基于检索结果生成带引用的回答
④ 引用增强 → 自动下载前 3 条引用文件的完整内容
↓
返回:结构化答案 + 引用来源 + 文件内容这本质上就是 IMA 产品内部的完整 RAG 管线,通过 MCP 协议直接接入到你自己的 Agent 中。你的自建智能体不再只是一个"聊天机器人",而是真正拥有了一个能检索、能推理、能引用的知识后台。
适用场景
🤖 个人知识助手:把自己积累的文档/笔记/网页变成可问答的知识库
🏭 企业内部知识库:将 SOP、产品文档、技术规范接入 Agent,实现智能问答
📚 学习与研究:论文、教材、课程笔记导入后,随时提问和交叉检索
🔧 开发者工具链:API 文档、设计规范、代码仓库接入,让 Coding Agent 直接查阅
项目亮点一览
亮点 | 说明 |
🧠 完整 RAG 管线 | 不是简单关键词搜索,而是语义检索 + 知识图谱 + LLM 生成的完整链路 |
🔌 标准 MCP 协议 | 基于 stdio 传输,兼容 Claude Desktop、Cursor、Cline、WorkBuddy 等主流 Agent 平台 |
🔐 双认证体系 | OpenAPI 凭证(基础读写)+ IMA Cookie(解锁完整 RAG),按需配置 |
📎 引用自动增强 | ask_knowledge_base 返回引用后,自动下载前 3 条文件并解析内容(Excel→表格、文本→截取) |
🔄 Token 自动刷新 | Cookie 过期时自动解析 refresh token 换取新 token,无需重启 |
📦 零外部依赖 | 纯 Node.js 内置模块(crypto、https、fs),不依赖第三方 COS SDK |
📝 10 个工具全覆盖 | 从问答、读取、笔记管理到网页导入、文件上传,覆盖知识库全流程 |
入口文件
项目提供两个等效的入口文件:
文件 | 说明 |
| JavaScript 入口, |
| ES Module 入口, |
两个文件内容完全一致,任选其一即可。
运行方式:本地 stdio
本项目是一个命令行 MCP 服务器,通过 stdin/stdout 与 MCP 客户端通信。它不是网络服务——不需要启动端口、不需要远程访问,在你的 MCP 客户端配置中指定 node server.js(或 node server.mjs)即可。
你的 Agent 平台(如 Claude Desktop、Cursor)
│
│ 启动子进程:node server.js
│ 通过 stdin 发送 JSON-RPC 请求
│ 通过 stdout 接收 JSON-RPC 响应
▼
┌─────────────────────────────────┐
│ ima-mcp-server (Node.js) │
│ ├─ OpenAPI 认证 → ima.qq.com │
│ └─ Cookie 认证 → ima.qq.com │
└─────────────────────────────────┘优点:无需公网 IP、无需部署服务器、凭证不出本地机器。
快速开始
1. 前置要求
Node.js ≥ 18(内置 fetch,无需额外安装)
IMA 账号(用 QQ/微信登录 https://ima.qq.com)
2. 安装
git clone https://github.com/qqpp13465/ima-mcp-server.git
cd ima-mcp-server
npm install3. 获取凭证
项目需要两类凭证,按你使用的工具选择配置:
凭证 | 环境变量 | 适用工具 | 获取难度 |
OpenAPI |
| get_media_info、import_urls、upload_file 等 8 个读写工具 | 简单(网页一键获取) |
Cookie |
| ask_knowledge_base、list_knowledge_bases_full(完整 RAG) | 中等(浏览器开发者工具) |
获取 OpenAPI 凭证(必须)
浏览器打开 https://ima.qq.com → 登录你的 QQ/微信账号
点击「创建凭证」,复制
Client ID和API Key
获取 IMA_COOKIE(如需 RAG 问答)
只有
ask_knowledge_base和list_knowledge_bases_full需要 Cookie 认证。如果只需要文件读写,只配 OpenAPI 凭证就够了。
浏览器打开 https://ima.qq.com ,登录你的 QQ/微信账号
按
F12打开开发者工具,切换到 Network(网络) 标签在 IMA 页面中点击任意知识库,进行一次提问
在 Network 中找到发往
/cgi-bin/assistant/qa的请求,点击查看详情在 Request Headers 中找到
x-ima-cookie字段,复制完整值将复制的内容作为
IMA_COOKIE环境变量
⚠️ Cookie 会过期。如果某次调用返回 600001 错误(登录过期),项目会自动尝试用 refresh token 续期。如果自动续期也失败,需重新按上述步骤获取 Cookie。
4. 配置 MCP 客户端
以 Claude Desktop 为例,编辑 claude_desktop_config.json:
{
"mcpServers": {
"ima": {
"command": "node",
"args": ["C:\\Users\\你的用户名\\ima-mcp-server\\server.js"],
"env": {
"IMA_CLIENT_ID": "你的_client_id",
"IMA_API_KEY": "你的_api_key",
"IMA_COOKIE": "你的_x-ima-cookie值"
}
}
}
}注意:Windows 路径用
\\(JSON 转义),macOS/Linux 用/。
.jsvs.mjs:如果你的 MCP 客户端不支持.mjs扩展名(部分国产 Agent 平台有此限制),只需将server.js换成server.mjs即可,内容完全一致。
5. 验证
重启 MCP 客户端后,对 Agent 说:
"列出我的所有知识库"
返回知识库列表即配置成功。
可用工具
工具 | 认证 | 功能 |
⭐ | Cookie | 核心工具:知识库 RAG 问答(语义检索 + LLM 生成),返回答案 + 引用文件,自动下载前 3 条引用内容 |
| Cookie | 列出所有知识库,返回 Cookie ID + OpenAPI ID,供后续工具调用 |
| OpenAPI | 获取条目原文/下载链接;笔记类自动返回正文 |
| OpenAPI | 读取笔记正文(纯文本) |
| OpenAPI | 获取可添加内容的知识库列表 |
| OpenAPI | 将网页/微信文章添加到知识库 |
| OpenAPI | 创建 IMA 笔记(支持 Markdown) |
| OpenAPI | 将笔记添加到知识库 |
| OpenAPI | 检查知识库中是否已存在同名文件 |
| OpenAPI | 上传本地文件到知识库 |
📌 关于已删除的工具:本项目移除了 IMA 官方 OpenAPI 中的
search_knowledge_base、get_knowledge_base、get_knowledge_list三个读取工具,因为它们的功能已被ask_knowledge_base(RAG 语义检索 + 知识图谱 + LLM 生成)完全覆盖且体验更好。如果你仍需要原生的关键字搜索或列表分页功能,可参考 IMA 官方 API 文档 自行在server.js中添加。
所有 MCP 客户端配置参考
以下配置请将路径和凭证替换为实际值。
Claude Desktop
配置文件:%APPDATA%\Claude\claude_desktop_config.json (Windows) / ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
Cursor
配置文件:~/.cursor/mcp.json(全局)或项目内 .cursor/mcp.json
Cline (VS Code)
在 Cline 设置 → MCP Servers → 添加
WorkBuddy
编辑 ~/.workbuddy/mcp.json,在 mcpServers 中添加 ima 条目 → 连接器管理页面点击「Trust」
通用配置模板
{
"mcpServers": {
"ima": {
"command": "node",
"args": ["/path/to/ima-mcp-server/server.js"],
"env": {
"IMA_CLIENT_ID": "你的_client_id",
"IMA_API_KEY": "你的_api_key",
"IMA_COOKIE": "你的_x-ima-cookie值(可选,用于 RAG 问答)"
}
}
}
}局限性
坦率列出当前版本的限制,帮助你判断是否适用:
限制 | 说明 |
🖥️ 仅本地 stdio 运行 | 不支持 HTTP/SSE 远程连接,必须和 MCP 客户端在同一台机器上。无法部署为云服务 |
⏱️ Cookie 有时效 | IMA Cookie 会过期(通常几小时到一天),需定期重新获取。虽然有自动刷新机制但不保证 100% 成功 |
📋 单知识库问答 |
|
🔢 结果数量有限 | 单次 RAG 问答最多返回 IMA 服务端限制数量的结果,不适合超大规模全文检索 |
🚫 无流式输出 | 当前返回完整回答,不支持 SSE 流式逐字输出(MCP 协议限制) |
📦 仅支持 JavaScript | 目前只有 Node.js 实现,无 Python/Go 版本 |
故障排查
问题 | 解决方案 |
| 检查环境变量是否正确设置;确认 MCP 客户端配置中 |
| 通常是参数范围超出限制,检查传入的值是否在允许范围内 |
| Cookie 已失效。项目会自动尝试刷新,如失败需重新获取 IMA_COOKIE |
| 已修复(v4.2.1),确保使用最新版本 |
MCP 客户端未显示工具 | 重启客户端;检查 JSON 格式、路径是否存在;确保 Node.js ≥ 18 |
Windows 路径问题 | JSON 中 |
安全说明
凭证不出本地:所有凭证仅通过 HTTP 头发送至
ima.qq.com,不发送到任何第三方容器化你的凭证:建议在 MCP 客户端配置中通过
env传入凭证,不要在代码中硬编码git 安全:
.gitignore已配置忽略node_modules/、日志文件和 IDE 配置,不会意外提交敏感信息
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qqpp13465/ima-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server