ima-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ima-mcp-server列出我的所有知识库"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ima-mcp-server
将 IMA 知识库 官方 OpenAPI 封装为标准 MCP(Model Context Protocol) 服务器,可在任何支持 MCP 的 agent 软件中检索、浏览、读取知识库内容。
特性
✅ 标准 MCP 协议(stdio 传输),兼容所有 MCP 客户端
✅ 9 个知识库工具:搜索、浏览、读取原文、读取笔记正文、添加网页、上传本地文件
✅ 凭证灵活配置(环境变量 / 配置文件)
✅ 零外部服务依赖,纯 Node.js 运行
Related MCP server: agentdocs-mcp
可用工具
工具 | 功能 |
| 搜索知识库列表(空 query 返回全部,含订阅库) |
| 获取知识库详情(描述、推荐问题) |
| 浏览知识库内容(根目录/文件夹,分页) |
| 在知识库内按关键词搜索文档 |
| 获取条目原文/下载链接;笔记类自动返回正文( |
| 读取笔记正文(纯文本),传入 note_id |
| 获取可添加内容的知识库列表 |
| 将网页/微信文章添加到知识库 |
| 上传本地文件到知识库(PDF/Word/PPT/Excel/Markdown/图片/TXT/XMind/音频/HTML 等),内部含 COS 直传与重名处理 |
笔记读取说明:IMA 笔记正文通过
openapi/note/v1/get_doc_content读取。get_media_info命中笔记(media_id以note_开头)时会自动附带note_content字段;也可用get_note_content传 note_id 直读。微信文章/网页/文件类则返回可访问 URL。
前置要求
Node.js ≥ 18(内置 fetch)
IMA OpenAPI 凭证:在 https://ima.qq.com/agent-interface 获取 Client ID 和 API Key
安装
git clone <repo> ima-mcp-server
cd ima-mcp-server
npm install或直接将 server.mjs + package.json 拷贝到本地后 npm install。
快速安装使用(AI 指令)
下面两种方式任选其一,都能在 1 分钟内把本库装好并接进 MCP 客户端。
方式一:复制命令直接跑
把下面整段粘进终端(或交给任意 AI 编码助手执行),记得替换你的 client_id / api_key:
# 1. 拉代码 + 装依赖
git clone https://github.com/rowanlin-dev/ima-mcp-server.git ima-mcp-server
cd ima-mcp-server
npm install
# 2. 写凭证(配置文件方式,最省心)
mkdir -p ~/.config/ima
printf '%s' "你的_client_id" > ~/.config/ima/client_id
printf '%s' "你的_api_key" > ~/.config/ima/api_key
chmod 600 ~/.config/ima/client_id ~/.config/ima/api_key
# 3. 验证:应列出 9 个工具(含 upload_file)
node test-protocol.mjs方式二:把这段指令直接丢给你的 AI
请帮我本地安装并配置 ima-mcp-server(IMA 知识库的 MCP 服务器):
git clone https://github.com/rowanlin-dev/ima-mcp-server.git ima-mcp-server后npm install;把 IMA 的 Client ID / API Key 写入
~/.config/ima/client_id和~/.config/ima/api_key,权限设 600;在我的 MCP 客户端(Claude Desktop / Cursor / Cline / WorkBuddy 等)配置里加一个
imaserver:command: node,args: ["<绝对路径>/ima-mcp-server/server.mjs"];跑
node test-protocol.mjs确认输出 9 个工具后,告诉我怎么在对话里验证(例如说“列出我的所有知识库”)。 凭证我去 https://ima.qq.com/agent-interface 取,不要写进任何仓库或日志。
各客户端的完整 JSON 配置见下文「各 MCP 客户端配置」。
凭证配置(三选一)
方式 A:环境变量(推荐,配置在 MCP 客户端中)
IMA_CLIENT_ID=你的_client_id
IMA_API_KEY=你的_api_key方式 B:兼容 ima-skill 的环境变量名
IMA_OPENAPI_CLIENTID=你的_client_id
IMA_OPENAPI_APIKEY=你的_api_key方式 C:配置文件
mkdir -p ~/.config/ima
echo "你的_client_id" > ~/.config/ima/client_id
echo "你的_api_key" > ~/.config/ima/api_key优先级:方式 A > 方式 B > 方式 C
各 MCP 客户端配置
以下配置中的路径请替换为你的实际路径。
Claude Desktop
配置文件位置:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"ima": {
"command": "node",
"args": ["C:\\Users\\你的用户名\\ima-mcp-server\\server.mjs"],
"env": {
"IMA_CLIENT_ID": "你的_client_id",
"IMA_API_KEY": "你的_api_key"
}
}
}
}Cursor
配置文件:~/.cursor/mcp.json(全局)或项目内 .cursor/mcp.json
{
"mcpServers": {
"ima": {
"command": "node",
"args": ["/Users/你的用户名/ima-mcp-server/server.mjs"],
"env": {
"IMA_CLIENT_ID": "你的_client_id",
"IMA_API_KEY": "你的_api_key"
}
}
}
}Cline (VS Code)
在 Cline 设置 → MCP Servers → 添加:
{
"ima": {
"command": "node",
"args": ["/path/to/ima-mcp-server/server.mjs"],
"env": {
"IMA_CLIENT_ID": "你的_client_id",
"IMA_API_KEY": "你的_api_key"
},
"disabled": false,
"autoApprove": []
}
}VS Code Copilot / Continue
{
"mcpServers": {
"ima": {
"command": "node",
"args": ["/path/to/ima-mcp-server/server.mjs"],
"env": {
"IMA_CLIENT_ID": "你的_client_id",
"IMA_API_KEY": "你的_api_key"
}
}
}
}WorkBuddy
编辑 ~/.workbuddy/mcp.json,在 mcpServers 中添加上述 ima 条目,然后在连接器管理页面点击「Trust」启用。
验证
配置完成后,在 agent 软件中尝试:
"列出我的所有知识库"
如果返回知识库列表,说明配置成功。
也可手动测试协议:
node test-protocol.mjs故障排查
问题 | 解决方案 |
| 检查环境变量或配置文件是否正确设置 |
| 查看 msg 内容;常见为凭证无效或权限不足 |
Claude Desktop 未显示工具 | 重启 Claude Desktop;检查 |
Windows 路径需双反斜杠 | JSON 中 |
Node 版本不足 | 升级到 18+, |
与 ima-skill 的关系
维度 | ima-mcp-server(本项目) | ima-skill(WorkBuddy 内置) |
协议 | 标准 MCP,跨 agent 通用 | WorkBuddy skill 格式 |
适用范围 | Claude Desktop、Cursor、Cline 等 | 仅 WorkBuddy 生态 |
认证 | OpenAPI clientId/apiKey | 同(或 WorkBuddy OAuth 连接器) |
功能范围 | 9 个知识库工具(读取 + 笔记正文 + 添加网页 + 上传本地文件) | 完整(含文件上传、笔记管理) |
传输 | stdio | 脚本调用 |
本项目现已补齐本地文件上传(upload_file),功能与 ima-skill 基本对齐;如需笔记的创建/编辑等写操作或 WorkBuddy 免配置 OAuth 连接器,仍可使用 ima-skill;如需在其它 agent 软件中使用标准 MCP,用本项目。
安全说明
凭证仅作为 HTTP 头发送至
ima.qq.com,不发送至任何其它域名凭证不会被记录到日志或文件
import_urls的 URL 由 IMA 服务端抓取,本地不发送文件内容upload_file的文件字节仅直传至 IMA 托管的腾讯云 COS(由create_media返回的临时凭证授权),不经由任何第三方
License
MIT
Available Tools
9 toolsget_addable_knowledge_base_listA
获取当前用户有权限添加内容的知识库列表。仅在未指定目标知识库时使用。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回数量上限,1-50。 | |
| cursor | No | 分页游标,首次传空字符串。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the list is filtered by user permissions (当前用户有权限添加内容), which is useful behavioral context. However, it does not explicitly state that this is a read-only operation or mention potential edge cases like empty results or authentication requirements, beyond what the tool name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences that deliver the purpose and usage condition without any filler. Every word contributes to the agent's understanding, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 2 optional parameters and no output schema, the description covers the essential aspects: what it returns (knowledge base list) and the specific filter (user with add permission). It doesn't detail the return item structure or pagination beyond schema-provided cursor info, but that's acceptable given the tool's simplicity. Slightly more context about the returned list format could improve it, hence 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for both parameters (limit and cursor) with descriptions, so the baseline is 3. The description adds no additional parameter information, but it doesn't need to since the schema already documents the pagination semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: '获取当前用户有权限添加内容的知识库列表' (get the list of knowledge bases the current user can add content to). It uses a specific verb (获取) and resource (知识库列表), and adds a usage scope ('仅在未指定目标知识库时使用') that distinguishes it from sibling tools like get_knowledge_base and search_knowledge_base.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool: '仅在未指定目标知识库时使用' (only when no target knowledge base is specified). This provides clear context and an implicit exclusion (when a target is specified), but it does not name alternative tools explicitly, which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_baseB
获取知识库详情(描述、推荐问题等)。支持一次查询 1-20 个知识库。
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | 知识库 ID 列表,1-20 个,不可重复。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It does mention the batch limit, but does not describe return format, error handling, permissions, or behavior with invalid/duplicate IDs. This is minimal for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first identifies the action and resource, the second states the batch limit. No filler or redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one fully-documented parameter and no output schema. The description conveys purpose and batch capability, but lacks sibling differentiation and behavioral details. Adequate but with clear gaps given the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the ids parameter is well-documented (array, 1-20 items, no duplicates). The description adds only the batch size, which duplicates schema info, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('获取' / retrieve) and resource ('知识库详情' / knowledge base details), listing example fields like description and recommended questions. This distinguishes it from get_knowledge_list, which likely lists knowledge bases, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings such as get_knowledge_list or search_knowledge_base. It only states that it supports querying 1-20 knowledge bases, which is a capability, not a selection criterion or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_listA
浏览知识库内容列表(根目录或指定文件夹),分页返回文件与子文件夹。操作根目录时省略 folder_id。folder_id 以 folder_ 前缀开头。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回数量上限,1-50。 | |
| cursor | No | 分页游标,首次传空字符串。 | |
| folder_id | No | 文件夹 ID(folder_ 前缀)。省略则浏览根目录。 | |
| knowledge_base_id | Yes | 知识库 ID。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: pagination, return of files and subfolders, and the folder_id prefix requirement. It implies a read-only 'browse' action. Missing details like error handling or authentication are not critical for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, and no unnecessary words. Every clause adds value: root vs folder behavior, pagination, and prefix rule.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 parameters, the description explains the main return types (files/subfolders) and pagination, which covers the core function. Lacks mention of sorting or response structure, but these are not critical for a listing tool with schema-documented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds a small semantic detail (omit folder_id for root) and restates the folder_ prefix already in the schema. This elevates slightly above baseline but does not substantially compensate beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses knowledge base content lists at root or specified folders, returns files and subfolders, and mentions pagination. This distinguishes it from search sibling tools like search_knowledge_base and get-like tools such as get_knowledge_base.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use (browsing root or specific folder) and includes a specific rule for omitting folder_id when operating at root. Lacks explicit comparison to alternatives or when-not-to-use statements, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_infoA
获取知识库条目的原文内容或下载链接。传入 media_id(来自 get_knowledge_list 或 search_knowledge 的返回)。对微信文章/网页/文件类,返回可访问 URL;对笔记类(media_id 以 note_ 开头),会自动拉取并返回笔记正文(note_content 字段,纯文本)。
| Name | Required | Description | Default |
|---|---|---|---|
| media_id | Yes | 媒体条目 ID。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. It transparently explains the distinct behaviors for different media types: returns URL for WeChat/articles/web/files, and auto-pulls plain text note_content for note_ prefixed IDs. It lacks error-case or permission details, but provides essential behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, front-loaded with purpose, then provides source and type-dependent behavior in logical order. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no annotations, the description is complete: it covers what it does, where the input comes from, and what output to expect for all mentioned cases. It fully enables an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema only says media_id is a media entry ID. Description adds meaningful context: the ID comes from specific source tools and that note_ prefix triggers different behavior. This enriches parameter understanding beyond the schema, justifying a higher score despite high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets original content or download link for a knowledge base entry, using a specific verb and resource. It distinguishes from sibling tools by detailing type-dependent behavior (URL for articles/web pages/files, note_content for notes), making its unique function explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to pass media_id from the return of get_knowledge_list or search_knowledge, providing clear context on when to use this tool. However, it does not explicitly state when not to use it or mention alternatives like get_note_content, though the description implicitly covers note handling within this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_note_contentA
读取笔记正文(纯文本)。传入 note_id(笔记的数字 ID,即 get_media_info 返回的 notebook_id,或笔记搜索接口返回的 doc_id)。这是读取 IMA 笔记原文的专用接口。
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | 笔记数字 ID。 | |
| target_content_format | No | 内容格式:0=纯文本(推荐)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool reads note content as plain text and that it is a dedicated read interface, which implies no side effects. However, it does not disclose details about error handling, permissions, rate limits, or return structure beyond the plain-text nature, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded. It consists of two sentences: the first states the core purpose, and the second explains how to obtain the required parameter. Every sentence contributes essential information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 params, no output schema, no annotations), the description is relatively complete. It covers the main purpose, the input parameter semantics, and notes the output format (plain text). It could mention what happens if the note_id is invalid or the note does not exist, but for a simple retrieval tool, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds valuable semantic context by clarifying that note_id is the numeric ID from get_media_info or search results, which is not explicitly in the schema. It also reinforces the meaning of target_content_format by mentioning plain text. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reading note content as plain text. It specifies the exact resource (IMA note) and differentiates itself by being a dedicated interface for reading original note content, distinguishing it from search or knowledge base tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this tool when you need the actual note text, and it explains where to obtain the required note_id (from get_media_info or search APIs). It does not explicitly mention when not to use it or name alternative tools, but the context is sufficient for an agent to understand the appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_urlsA
将网页或微信文章 URL 添加到知识库(1-10 个 URL)。添加到根目录时省略 folder_id。
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | URL 列表,1-10 个。 | |
| folder_id | No | 目标文件夹 ID(folder_ 前缀)。省略则添加到根目录。 | |
| knowledge_base_id | Yes | 目标知识库 ID。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden; it reveals the action (add) and the optional folder behavior. However, it does not disclose potential side effects, duplicate handling, or failure behavior, leaving some uncertainty for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one concise Chinese sentence that front-loads the purpose ('将网页或微信文章 URL 添加到知识库') followed by the key exception ('添加到根目录时省略 folder_id'), with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema, the description covers the core operation, the input limits, and the folder_id semantics. It would benefit from mentioning return behavior or error conditions, but it is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all 3 parameters with full descriptions (100% coverage), so the baseline is 3. The description adds value by clarifying when to omit folder_id, which is not explicit in the schema alone, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add web page or WeChat article URLs to the knowledge base' and specifies the 1-10 URL range, making the tool's purpose distinct from sibling read/search tools and the file upload tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use the tool (importing URLs) and provides a concrete conditional rule: omit folder_id when adding to the root directory. While it doesn't explicitly name alternatives, the purpose and constraints effectively guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_knowledgeB
在指定知识库中按关键词搜索内容(含文件和文件夹),返回命中的标题、摘要片段。这是知识库内容检索的核心接口。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词。 | |
| cursor | No | 分页游标,首次传空字符串。 | |
| knowledge_base_id | Yes | 目标知识库 ID。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses scope (specified knowledge base), coverage (files and folders), and return type (titles and snippets), which gives basic clarity. However, it does not mention pagination behavior, cursor use, content depth (full-text vs metadata), or whether it is read-only, leaving some behavioral traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of two short, front-loaded sentences that state the core function and output. No unnecessary words or repetition; every sentence contributes meaningful information. This is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 3 parameters and no output schema, the description covers purpose, scope, and return type. However, it lacks pagination/cursor handling details and does not address the sibling tool overlap, which are relevant contextual gaps. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented. The description adds only the context that searching is by keyword and returns titles/snippets, which maps to the 'query' and 'knowledge_base_id' parameters but does not enrich the meaning of 'cursor' or provide format details. This stays at the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches content by keyword in a specified knowledge base, including files and folders, and returns titles and summary snippets. This specifies the verb, resource, and result. However, it does not differentiate from the sibling tool search_knowledge_base, so it lacks explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says it is the 'core interface' for knowledge base content retrieval, but provides no explicit guidance on when to use this tool versus alternatives like search_knowledge_base. There are no conditions, exclusions, or alternative recommendations, leaving the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_knowledge_baseA
搜索知识库列表。query 传空字符串时返回当前账号下所有可见知识库(含自建与订阅)。知道知识库名称但不知道 ID 时用此接口。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回数量上限,1-20。 | |
| query | No | 知识库名称关键词。传空字符串返回全部知识库。 | |
| cursor | No | 分页游标,首次传空字符串。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the operation returns visible knowledge bases under the current account, including self-created and subscribed ones, which is helpful context about access scope. It also implies read-only behavior via 'search/list'. It doesn't detail pagination or response format, but the schema covers parameters and the operation is inherently non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the core purpose ('搜索知识库列表'), then gives the key behavior and use case. Every sentence is informative with no wasted words, making it an exemplar of concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (3 params, no output schema), and the description explains what it does and when to use it. It states it returns a list and implies the inclusion of IDs from the use-case sentence. While it doesn't explicitly enumerate return fields, the information is sufficient given the straightforward nature of the tool. A 4 reflects slight room for mentioning the response structure directly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters (query, limit, cursor). The description adds the use-case context for the query parameter (knowing name but not ID) and the empty-query behavior, which marginally enriches meaning. However, it doesn't add syntax or formatting details beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb '搜索' (search) with resource '知识库列表' (knowledge base list), clearly stating it's a search/list operation. It distinguishes itself from siblings like get_knowledge_base by explicitly noting it is for when the name is known but not the ID, and clarifies it returns all visible knowledge bases with empty query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear when-to-use: '知道知识库名称但不知道 ID 时用此接口' (use when you know the name but not the ID). It also explains the empty-query behavior for listing all visible knowledge bases. However, it does not explicitly name alternatives or state when not to use it, making the guidance useful but not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileA
将本地文件上传到指定知识库(支持 PDF / Word / PPT / Excel / Markdown / 图片 / TXT / XMind / 音频 / HTML 等)。内部流程:类型与大小预检 → 重名检测(命中自动追加时间戳)→ create_media 获取 COS 临时凭证 → 上传 COS → add_knowledge 正式入库。视频文件(.mp4 等)不支持,请改用 import_urls 以 URL 方式添加。verify=true 时仅上传到 COS 不入库,便于验证凭证与网络。
| Name | Required | Description | Default |
|---|---|---|---|
| verify | No | 仅 true 时只上传到 COS 不调用 add_knowledge(用于验证凭证/网络),默认 false。 | |
| file_path | Yes | 待上传文件的本地绝对路径(或相对路径,将按进程工作目录解析)。 | |
| folder_id | No | 目标文件夹 ID(folder_ 前缀)。省略则上传到根目录。 | |
| knowledge_base_id | Yes | 目标知识库 ID。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosure. It reveals the complete internal workflow (precheck, duplicate handling with timestamp, COS credential acquisition, upload, and storage) and the special behavior of verify=true (only uploads to COS, does not store). This is a high level of transparency about side effects and edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose, the second explains the internal flow, the third handles the video exception, and the fourth clarifies the verify parameter. No redundant or filler text; each sentence contributes unique, useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description provides robust context: supported formats, internal steps, unsupported cases, and parameter behavior. It lacks explicit return-value details, but for an upload operation this is minor and the description is otherwise comprehensive for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for all 4 parameters (100% coverage), so the baseline is 3. The description adds value by explaining how parameters fit into the pipeline (e.g., verify=true skips the final add_knowledge step) and by noting that folder_id defaults to root via behavior rather than just schema. This extra context raises it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear action: '将本地文件上传到指定知识库' (upload local files to specified knowledge base), listing supported formats. It distinguishes from siblings by explicitly stating that video files are not supported and directing to 'import_urls' instead, making the tool's scope specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides an alternative for unsupported video files ('请改用 import_urls 以 URL 方式添加') and explains the purpose of verify=true ('用于验证凭证与网络'). This gives clear guidance on when to use this tool versus alternatives and when to use a specific parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
get_addable_knowledge_base_list - First observed
get_knowledge_base - First observed
get_knowledge_list - First observed
get_media_info - First observed
get_note_content - First observed
import_urls - First observed
search_knowledge - First observed
search_knowledge_base - First observed
upload_file
TDQS
Most tools have distinct purposes (search vs list vs get, etc.), but get_media_info and get_note_content both handle note retrieval, and search_knowledge_base and get_knowledge_base both deal with KB metadata. Descriptions help clarify which to use, so confusion is limited.
All tool names follow a consistent verb_noun pattern (get_, search_, import_, upload_). The naming is uniform and predictable, with no mixed casing or irregular verb styles.
9 tools is well within the ideal 3-15 range. Each tool serves a clear purpose in the knowledge base workflow, and the set feels neither bloated nor sparse.
The tool set covers the core workflow well: finding KBs, browsing content, searching, retrieving full content, and adding content via URL or file upload. Missing update/delete operations, but these may be outside the intended scope for this server.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
Make your knowledge agent-ready. One MCP endpoint, 5 connectors, 3 search modes.
Knowledge coverage map and health score. Ingest docs into a governed knowledge graph via MCP.
- FalconerOAuthcom.falconer
Search, read, create, update, and organize company knowledge in Falconer.
Related MCP Servers
FlicenseNot gradedqualityDmaintenanceEnables AI clients to interact with eGain Knowledge, supporting portal browsing, article reading, knowledge search, and AI-powered answers through MCP.191-- AlicenseAqualityAmaintenanceEnables MCP clients to read, search, create, update, and share collaborative documentation pages on the AgentDocs platform.192211MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with the Innovaas Knowledge Management System through MCP, providing multi-modal search, RAG-powered chat with intelligent token management, and document access.MIT
- AlicenseNot gradedqualityFmaintenancePrivate knowledge base with Markdown pages and assets, exposed via MCP for agent access.32MIT
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/rowanlin-dev/ima-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server