WeKnora MCP Dispatch
This server is a multi-user MCP gateway for WeKnora, providing per-request API key authentication and tenant isolation, with optional read‑only operation.
Tenant Management: Create and list tenants (spaces).
Knowledge Base Management: Create, list, retrieve, delete, and hybrid search (vector + keyword) knowledge bases.
Knowledge Management: Ingest knowledge from files, URLs, or plain text; list, retrieve, and delete knowledge items.
Chunk Management: List and delete individual chunks within a knowledge item.
Model Management: Register, list, and inspect models for QA, embeddings, and reranking.
Session Management: Create, list, retrieve, and delete chat sessions, with configurable conversation rounds, query rewriting, and fallback responses.
Chat: Perform RAG‑based chat (retrieve relevant chunks and answer with an LLM) or agentic chat for autonomous multi‑step reasoning with tool use (knowledge search, web search, SQL, etc.).
Agent Management: List available agents and inspect their configurations, including knowledge base selection mode.
Wiki Features: Full‑text search across wiki pages, read a page by slug, and browse a structured index by page type (entities, concepts, summaries, etc.).
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., "@WeKnora MCP DispatchFind documents about MCP authentication in my knowledge base"
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.
WeKnora MCP Dispatch
这是面向 WeKnora v0.7.2 的多用户 MCP 网关,基于官方 MCP Server 1.1.1 (MCP Python SDK 2.x 高层 API)改造。一个 Streamable HTTP 服务实例可以接收 多个客户端请求,并以每个客户端提交的 WeKnora API Key 决定其可访问的空间和知识库。
定制能力
MCP_AUTH_MODE=weknora_api_key:将 Bearer Token 作为 WeKnora API Key 验证。API Key 仅绑定到当前 MCP 请求上下文,异步任务和同步工具工作线程均保持租户隔离。
动态 Key 模式不会回退到服务端静态
WEKNORA_API_KEY,上下文丢失时失败关闭。验证缓存只保存 SHA-256 指纹;缓存容量、TTL 和验证并发均有上限。
MCP_READ_ONLY=true:从 MCP 2.x 工具注册表移除写入、会话和聊天工具。保留上游
shared_secret和 stdio 模式,便于兼容原有部署。
请求链路:
MCP client
├─ 可选:外层网关鉴权请求头
└─ Authorization: Bearer <WeKnora API Key>
↓
WeKnora MCP Dispatch
├─ GET /knowledge-bases 验证 Key
├─ 绑定当前请求身份
└─ X-API-Key 转发至 WeKnora APIRelated MCP server: mcp-streamable-http-bridge
生产 Docker 配置
使用本仓库构建镜像,并参考
production.request-scoped.override.yml
覆盖 WeKnora 官方 Compose 的 mcp 服务。请求级模式下应保持
WEKNORA_API_KEY 和 MCP_SERVER_AUTH_TOKEN 为空。
docker build -t local/weknora-mcp-dispatch:v0.7.2 .关键环境变量:
变量 | 推荐值 | 说明 |
|
| WeKnora API 地址 |
|
| 启用请求级空间 Key |
|
| 仅暴露知识查询工具 |
|
| Streamable HTTP 路径 |
|
| 验证缓存 TTL |
|
| 最大缓存指纹数 |
|
| 最大并发验证数 |
WorkBuddy 配置示例
写入用户级 ~/.workbuddy/mcp.json 或项目级 .workbuddy/mcp.json:
{
"mcpServers": {
"weknora": {
"type": "http",
"url": "https://kb.example.com/mcp",
"headers": {
"Authorization": "Bearer ${WEKNORA_SPACE_API_KEY}",
"CF-Access-Client-Id": "${CF_ACCESS_CLIENT_ID}",
"CF-Access-Client-Secret": "${CF_ACCESS_CLIENT_SECRET}"
}
}
}
}如果入口没有 Cloudflare Access,删除两个 CF-Access-* 请求头即可。
Codex 配置示例
在 ~/.codex/config.toml 中加入:
[mcp_servers.weknora]
url = "https://kb.example.com/mcp"
bearer_token_env_var = "WEKNORA_SPACE_API_KEY"
env_http_headers = { "CF-Access-Client-Id" = "CF_ACCESS_CLIENT_ID", "CF-Access-Client-Secret" = "CF_ACCESS_CLIENT_SECRET" }如果入口没有 Cloudflare Access,删除 env_http_headers。不要把 WeKnora API Key
或外层网关 Secret 明文提交到配置仓库。
快速开始
推荐直接参考 MCP配置说明,无需进行以下操作。 本节沿用上游 stdio/静态 Key 用法;多用户 HTTP 生产部署请使用上面的请求级配置。
1. 安装依赖
pip install -r requirements.txt2. 配置环境变量
# Linux/macOS
export WEKNORA_BASE_URL="http://localhost:8080/api/v1"
export WEKNORA_API_KEY="your_api_key_here"
# Windows PowerShell
$env:WEKNORA_BASE_URL="http://localhost:8080/api/v1"
$env:WEKNORA_API_KEY="your_api_key_here"
# Windows CMD
set WEKNORA_BASE_URL=http://localhost:8080/api/v1
set WEKNORA_API_KEY=your_api_key_here3. 运行服务器
推荐方式 - 使用主入口点:
python main.py其他运行方式:
# 使用原始启动脚本
python run_server.py
# 使用便捷脚本
python run.py
# 直接运行服务器模块
python weknora_mcp_server.py
# 作为 Python 模块运行
python -m weknora_mcp_server4. 命令行选项
python main.py --help # 显示帮助信息
python main.py --check-only # 仅检查环境配置
python main.py --verbose # 启用详细日志
python main.py --version # 显示版本信息安装为 Python 包
从 PyPI 安装
pip install tencent-weknora-mcp
# 或使用 uvx 直接运行(无需预安装)
uvx --from tencent-weknora-mcp weknora-mcp-server官方 PyPI 包名为
tencent-weknora-mcp(Tencent/WeKnora 维护,Trusted Publishing 发布)。 旧社区包weknora-mcp请不要再使用。 安装后命令行入口仍为weknora-mcp-server/weknora-server。 官方 PyPI 包不包含本仓库的请求级多用户派发功能;生产部署该功能时应构建本仓库。
开发模式安装
pip install -e .安装后可以使用命令行工具:
weknora-mcp-server
# 或
weknora-server生产模式安装
pip install .构建分发包
# 使用 setuptools
python setup.py sdist bdist_wheel
# 使用现代构建工具
pip install build
python -m build测试模组
运行测试脚本验证模组是否正常工作:
python test_module.py
pytest -q tests功能特性
该 MCP 服务器提供以下工具:
空间管理
create_tenant- 创建新空间list_tenants- 列出所有空间
知识库管理
create_knowledge_base- 创建知识库list_knowledge_bases- 列出知识库get_knowledge_base- 获取知识库详情delete_knowledge_base- 删除知识库hybrid_search- 混合搜索
知识管理
create_knowledge_from_file- 从本地文件创建知识create_knowledge_from_url- 从 URL 创建知识create_knowledge_from_text- 从文本创建知识list_knowledge- 列出知识get_knowledge- 获取知识详情delete_knowledge- 删除知识
模型管理
create_model- 创建模型list_models- 列出模型get_model- 获取模型详情
会话管理
create_session- 创建聊天会话get_session- 获取会话详情list_sessions- 列出会话delete_session- 删除会话
聊天功能
chat- 发送聊天消息
块管理
list_chunks- 列出知识块delete_chunk- 删除知识块
故障排除
如果遇到导入错误,请确保:
已安装所有必需的依赖包
Python 版本兼容(推荐 3.10+)
没有文件名冲突(避免使用
mcp.py作为文件名)
调用效果
Available Tools
28 toolsagent_chatA
Agentic pipeline chat: the agent autonomously calls tools (knowledge_search, web_search, SQL, etc.) to answer the query. Use this for complex multi-step questions or comparative analysis. REQUIRED: agent_id (name or UUID) — use list_agents to discover agents. IMPORTANT: many agents have KBSelectionMode=none and NO built-in knowledge bases. In that case you MUST pass knowledge_base_ids, otherwise the agent will fail with 'no search targets available'. Use get_agent to inspect an agent's kb_selection_mode and knowledge_bases before calling. If kb_selection_mode is 'none' or 'selected' with an empty list, always provide knowledge_base_ids.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | User query | |
| agent_id | Yes | REQUIRED. Custom agent UUID or name. Use list_agents to discover agents. Use get_agent to check its kb_selection_mode. | |
| session_id | Yes | Session ID (from create_session or list_sessions) | |
| knowledge_base_ids | No | Names or UUIDs of knowledge bases to search. REQUIRED when the agent's kb_selection_mode is 'none' or 'selected' with no built-in KBs. Use list_knowledge_bases to find them. | |
| web_search_enabled | No | Enable web search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose key behaviors: the agent autonomously calls tools, can fail if no knowledge bases are available, and the failure mode 'no search targets available'. It also explains the need to check agent configuration. Missing details like return format and other side effects, but the core behavioral traits are well covered.
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 well-structured with a clear purpose, REQUIRED, and IMPORTANT sections. It is front-loaded with the core idea and every sentence adds value. However, there is some redundancy in the instructions about passing knowledge_base_ids, making it slightly longer than necessary.
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 complex tool with no output schema and no annotations, the description is quite complete. It covers the tool's purpose, usage prerequisites, and failure conditions. A brief mention of the response format or return value would improve completeness, but it otherwise provides enough context.
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 has 100% coverage, but the description adds significant value beyond schema for agent_id and knowledge_base_ids, explaining their interplay and specific conditions for use. It ties parameters to agent configuration, which the schema alone does not convey.
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 identifies the tool as an agentic pipeline chat that autonomously calls tools to answer queries, and specifies it is for complex multi-step questions or comparative analysis. This distinguishes it from the sibling 'chat' tool and other knowledge 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?
Explicitly states when to use it for complex multi-step questions or comparative analysis. Provides detailed prerequisites: use list_agents to discover agents, inspect an agent's kb_selection_mode with get_agent, and pass knowledge_base_ids when required, giving clear alternatives to prevent failure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chatA
RAG pipeline chat: retrieve relevant chunks from knowledge bases, then summarise with LLM. ALWAYS provide knowledge_base_ids (names like 'my-knowledge-base' or UUIDs) so retrieval can run — without them the answer is based on LLM knowledge only. Use list_knowledge_bases to discover available knowledge bases. For multi-step reasoning or tool-calling use agent_chat instead.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | User query | |
| session_id | Yes | Session ID (from create_session or list_sessions) | |
| knowledge_base_ids | No | Knowledge base names OR UUIDs to search. Strongly recommended for RAG — without them the answer falls back to LLM knowledge only. E.g. ['my-knowledge-base'] or ['a1b2c3d4-...']. Use list_knowledge_bases to find them. | |
| web_search_enabled | No | Enable web search alongside KB retrieval. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the internal pipeline (retrieve chunks, then summarise), and the critical fallback behavior ('without them the answer is based on LLM knowledge only'). It does not disclose the return format or potential side effects, but the described process and fallback are meaningful behavioral traits that go beyond mere purpose.
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 three sentences of dense, valuable information. It front-loads the core purpose, then adds critical usage guidance and a sibling alternative. There is zero fluff; every sentence earns its place.
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 four parameters, no annotations, and no output schema, the description covers the essential ground: purpose, usage, and key parameter insights. It lacks an explicit statement about return values or error conditions, but the tool is a chat interface and the described behavior is sufficiently complete for an agent to select and invoke it correctly. It earns a 4 rather than a 5 due to the absence of any return-format hint or mention of web_search_enabled behavior.
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 baseline is 3. The description adds significant semantic value for knowledge_base_ids by explaining why to provide them, the consequences of not providing them, and pointing to list_knowledge_bases for discovery. It does not add detail for web_search_enabled, but the schema already covers it; the added emphasis and practical context for the key parameter justify 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 opens with a clear, specific verb-resource pair: 'RAG pipeline chat: retrieve relevant chunks from knowledge bases, then summarise with LLM.' It explicitly distinguishes itself from sibling tools by naming agent_chat for multi-step reasoning, and list_knowledge_bases for discovery, making the tool's unique role unmistakable.
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 explicit usage guidance: 'ALWAYS provide knowledge_base_ids' and explains the alternative 'For multi-step reasoning or tool-calling use agent_chat instead.' It also tells the agent to use list_knowledge_bases to discover available bases, giving both when-to-use and when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_knowledge_baseC
Create a new knowledge base
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Knowledge base name | |
| description | Yes | Knowledge base description | |
| summary_model_id | No | Summary model ID | |
| embedding_model_id | No | Embedding model ID |
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 of behavioral disclosure. The description only restates the tool's name and provides no information about side effects, required permissions, idempotency, or return behavior. It is effectively tautological.
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 short and front-loaded, but it earns its place poorly because it merely repeats the tool name. It lacks useful detail that would justify its presence, falling into under-specification rather than effective conciseness.
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 that there is no output schema, no annotations, and no usage guidance, the description is incomplete. It does not explain what the tool returns, what side effects occur, or how this creation tool relates to other knowledge base tools. The schema covers parameter names but not runtime behavior or outcomes.
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 the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides, but the schema itself fully documents all four parameters, including required ones like name and description.
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 action and resource: 'Create a new knowledge base.' It is unambiguous and distinct from creating models, sessions, or tenants, though it does not differentiate from sibling tools like create_knowledge_from_file or create_knowledge_from_url.
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 provided on when to use this tool versus alternatives such as create_knowledge_from_file or create_knowledge_from_url. There is no mention of prerequisites, typical scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_knowledge_from_fileA
Create knowledge from a local file on the server filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| kb_id | Yes | Knowledge base ID | |
| file_path | Yes | Absolute path to the local file on the server | |
| enable_multimodel | No | Enable multimodal processing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action without mentioning prerequisites, side effects, supported file types, or what happens on success. This is a significant gap for a creation 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 description is a single, well-structured sentence with no wasted words. It is front-loaded and immediately clear about the tool's purpose.
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 description is minimally viable but lacks details on usage context, return values, or prerequisites. With no output schema and no annotations, it does not fully cover the operational context, though the parameter schema is 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% with meaningful descriptions for each parameter. The tool description adds no additional parameter semantics beyond what the schema already provides, so the baseline of 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 a specific verb ('Create knowledge') and identifies the resource as 'a local file on the server filesystem', clearly distinguishing it from the sibling tool create_knowledge_from_url. This directly states what the tool does.
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 clearly implies this tool is for local server files, providing context for when to use it versus the URL-based alternative. However, it does not explicitly name alternatives or provide exclusion criteria, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_knowledge_from_urlD
Create knowledge from URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to create knowledge from | |
| kb_id | Yes | Knowledge base ID | |
| enable_multimodel | No | Enable multimodal processing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It simply states 'Create knowledge', which implies mutation but provides no details about side effects, permission requirements, idempotency, return values, or whether the operation is asynchronous. This is a significant transparency gap for a creation 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 description is extremely short, but it is under-specified rather than concise. It merely repeats the tool name and does not earn its place by conveying useful information. Every word is redundant, as the name already communicates the same idea.
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 tool's moderate complexity (3 parameters, no output schema, no annotations), the description is woefully incomplete. It fails to explain the expected behavior, the nature of the returned data, or any prerequisites. An AI agent would have insufficient context to invoke this tool correctly or interpret its results.
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% for all three parameters (url, kb_id, enable_multimodal), so the input schema already documents parameter meanings. The tool description adds no extra semantic value on top of the schema, so the baseline score of 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 'Create knowledge from URL' is essentially a restatement of the tool name 'create_knowledge_from_url'. It does not add any detailed explanation of what 'knowledge' means or what the creation process entails. While it mentions the source (URL), it fails to distinguish itself from siblings beyond that single word, offering no additional scope or purpose clarity.
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 no guidance on when to use this tool versus alternatives. There is no mention of when to choose URL-based creation over file-based creation (sibling create_knowledge_from_file) or any other context. No exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_modelC
Create a new model
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Model name | |
| type | Yes | Model type (KnowledgeQA, Embedding, Rerank) | |
| source | No | Model source | local |
| api_key | No | Model API key | |
| base_url | No | Model API base URL | |
| is_default | No | Set as default model | |
| description | Yes | Model description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It merely states that it creates a model, but does not disclose side effects (e.g., whether duplicate names cause errors), authorization requirements, return behavior, or any constraints, which is insufficient 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 description is a single short sentence that is front-loaded, but it is under-specified rather than concise. It adds no value beyond the tool name, so it fails the criterion that every sentence should earn its place.
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 7 parameters, no output schema, and no annotations, this description is inadequate. It does not explain what a model is, when to create one, what the response is, or any operational context, making it incomplete for an agent to invoke 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?
All 7 parameters have descriptions in the input schema, so schema coverage is 100%. The description adds no additional parameter context, but the baseline of 3 is appropriate since the schema already documents each parameter meaning.
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 'Create a new model' is essentially a restatement of the tool name 'create_model'. It provides a verb and resource but does not differentiate from sibling tools or clarify what a model is in this context, making it a tautology.
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 offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or how it relates to other model-related tools like list_models or get_model.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sessionC
Create a new chat session with conversation strategy for a knowledge base
| Name | Required | Description | Default |
|---|---|---|---|
| kb_id | Yes | Knowledge base ID | |
| title | No | Session title (optional) | |
| max_rounds | No | Maximum conversation rounds | |
| description | No | Session description (optional) | |
| enable_rewrite | No | Enable query rewriting | |
| summary_model_id | No | Model ID for response summarization (optional) | |
| fallback_response | No | Fallback response when no answer found | Sorry, I cannot answer this question. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention side effects, permissions, return values, or what 'conversation strategy' entails. For a creation tool, this is a significant gap.
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 a single, concise sentence of 12 words. It is front-loaded with the primary action and resource, and every word earns its place without unnecessary detail.
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 tool has 7 parameters and no output schema, the description is incomplete. It does not explain what constitutes a session, how it relates to the knowledge base, any prerequisites, or what the return value represents. Users would need additional information to use this tool effectively.
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 the baseline is 3. The description adds minimal value by referencing 'conversation strategy' but does not map this to parameters like max_rounds or enable_rewrite. The schema already provides thorough parameter descriptions, so no additional meaning is needed.
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 creates a new chat session, with the verb 'Create' and resource 'chat session'. The phrase 'with conversation strategy for a knowledge base' adds context, though it is somewhat vague. It distinguishes from sibling tools like get_session and list_sessions, but not explicit alternatives like chat or agent_chat.
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 provided on when to use this tool versus alternatives such as chat or agent_chat. The description simply states what it does without any contextual cues, exclusions, or references to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tenantB
Create a new tenant in WeKnora
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tenant name | |
| business | Yes | Business type | |
| description | Yes | Tenant description | |
| retriever_engines | No | Retriever engine configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure, but it only says 'create' with no detail on side effects, permissions, idempotency, or response behavior. It adds no insight beyond the tool name.
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?
A single sentence conveys the core purpose efficiently with no filler. It is front-loaded and directly states the action, making it easy to parse quickly.
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?
Although the schema details parameters, the description lacks essential context for a creation tool with a nested object and no output schema. It does not explain how retriever_engines should be configured, what happens on success, or any constraints, leaving significant gaps for an agent to invoke it 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 description coverage is 100%, so parameters are already well-documented. The description does not add any extra parameter information, but the schema fully covers the meaning of name, description, business, and retriever_engines, resulting in a baseline score of 3.
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 'Create a new tenant in WeKnora' uses a specific verb (create) and resource (tenant), clearly distinguishing it from siblings like list_tenants and other creation tools. It is unambiguous and immediately understandable.
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 about when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or exclusions. The description simply states the action without contextualizing it among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_chunkC
Delete a chunk
| Name | Required | Description | Default |
|---|---|---|---|
| chunk_id | Yes | Chunk ID | |
| knowledge_id | Yes | Knowledge ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only repeats the action 'Delete' without any information about side effects, permanence, permissions, or impact on related data. It adds no value beyond the tool name.
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 a single, front-loaded sentence with no wasted words. It is appropriately concise for a simple tool, though it sacrifices substance for brevity.
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 a simple delete operation with two well-described parameters and no output schema. While the minimal description covers the basic action, it omits critical context such as whether the deletion is irreversible, whether related data (e.g., knowledge base) is affected, and any required permissions. This is a significant gap for a mutation tool with no 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?
The input schema already provides descriptions for both parameters (Chunk ID and Knowledge ID) with 100% coverage. The description adds no further parameter meaning, so the baseline score of 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 clearly states the action (Delete) and the resource (chunk), making it unambiguous. However, it does not distinguish this tool from sibling delete tools like delete_knowledge or delete_knowledge_base, so it misses the opportunity to differentiate.
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 provided on when to use this tool versus alternatives, nor are any prerequisites or contextual conditions mentioned. The agent is left to infer usage entirely from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledgeD
Delete knowledge
| Name | Required | Description | Default |
|---|---|---|---|
| knowledge_id | Yes | Knowledge ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It fails to mention whether deletion is permanent, whether it cascades to related data, or whether any permissions are required. The description is purely action-oriented with no behavioral context.
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 terse, but this is under-specification rather than conciseness. It provides no useful information beyond the tool name, similar to the 'Process' example in the calibration guide.
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 deletion tool with no annotations, no output schema, and a single parameter, the description should explain consequences, reversibility, and typical use cases. The current description is wholly inadequate for an agent to understand the tool's impact.
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 provides 100% coverage for the single parameter knowledge_id with description 'Knowledge ID'. Per the rubric, high schema coverage yields a baseline of 3. The description adds no additional parameter meaning but is not required to compensate.
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 'Delete knowledge' is essentially a tautology of the tool name. It states a verb and resource but does not clarify what 'knowledge' refers to (e.g., a document, chunk, or knowledge base entry). It does not distinguish from sibling tools like delete_knowledge_base or delete_chunk.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention scenarios, prerequisites, or differences from related delete tools such as delete_session or delete_chunk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledge_baseC
Delete a knowledge base
| Name | Required | Description | Default |
|---|---|---|---|
| kb_id | Yes | Knowledge base ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full responsibility for behavioral disclosure. It only states the action 'Delete' but does not mention permanence, cascading effects, required permissions, or any other consequences. This is a significant transparency gap for a destructive 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?
The description is a single, focused sentence with no unnecessary words. It is appropriately sized for the tool's simple purpose and well-structured.
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 tool is destructive, has no annotations, and no output schema, the description is insufficiently complete. It does not explain the effects of deletion, what the agent should expect in response, or any edge cases. The minimal complexity does not excuse this lack of essential context.
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%: the parameter 'kb_id' is fully described as 'Knowledge base ID'. The description adds no additional meaning to the parameter, so the baseline of 3 applies per the rubric.
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 states a clear verb + resource: 'Delete a knowledge base'. It is unambiguous in what it does. However, it does not differentiate from the sibling 'delete_knowledge', so it misses the explicit sibling distinction needed for a 5.
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 no guidance on when to use this tool vs alternatives, no prerequisites, no mention of irreversibility, and no distinction from similar tools like 'delete_knowledge'. This is a complete absence of usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sessionC
Delete a session
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action 'Delete' without disclosing whether deletion is permanent, what happens to associated data, error handling, or authentication requirements. The word 'delete' implies destructiveness but adds no further behavioral context.
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 a single sentence, but it is under-specified and duplicates the tool name. It does not earn its place as it provides no additional information beyond the name. This is not meaningful conciseness but rather under-specification, similar to the 'Process' example.
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 one-parameter delete tool, the description plus schema allow basic invocation, but there is no information about return values, success/failure behavior, or side effects. Given no output schema or annotations, the description is incomplete and leaves the agent uncertain about what happens when the tool is invoked.
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 description does not address the session_id parameter, but the input schema provides 100% coverage with a description 'Session ID'. Therefore, the schema already documents the parameter, and the description adds no extra meaning beyond what the schema provides. The baseline of 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 'Delete a session' simply restates the tool name 'delete_session' with no additional specificity about scope, permanence, or effect. It does distinguish from sibling tools like create_session/get_session, but provides no value beyond the name itself, making it a tautology.
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 usage guidelines are provided. The description offers no context on when to use this tool versus other delete tools (e.g., delete_knowledge), no prerequisites, and no mention of alternatives. It simply states the action without any situational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentA
Get full configuration of a single agent by UUID or name. Check kb_selection_mode and knowledge_bases fields: if kb_selection_mode is 'none' or 'selected' with an empty knowledge_bases list, you MUST pass knowledge_base_ids when calling agent_chat.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Agent UUID or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not explicitly state whether the operation is read-only or has side effects, though the verb 'get' implies a read. It adds useful behavioral context by naming fields to inspect, but lacks deeper details like permissions or error behavior.
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 then actionable guidance. No redundant or extraneous content.
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 read tool with no output schema, the description covers the essential purpose and provides critical follow-up steps for agent_chat. It does not describe the full return shape, but 'full configuration' implies the object structure and is adequate 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?
Schema coverage is 100% and the single parameter agent_id is already described as 'Agent UUID or name'. The description repeats this, adding no new semantic meaning beyond the 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?
Clearly states the tool retrieves the full configuration of a single agent by UUID or name. This distinguishes it from sibling list_agents, which presumably lists all agents.
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 explicit downstream guidance: after fetching the config, check kb_selection_mode and knowledge_bases and pass knowledge_base_ids to agent_chat under specific conditions. It does not explicitly exclude alternatives, but the instructions make the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledgeC
Get knowledge details
| Name | Required | Description | Default |
|---|---|---|---|
| knowledge_id | Yes | Knowledge ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only indicates a read operation ('get') and does not describe response format, permissions, error behavior, or what 'details' means. This is minimal and insufficient for a tool with no structured behavioral metadata.
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 very concise (three words), but it borders on tautology with the tool name. It is not verbose, yet it sacrifices substance. Every word is concise but not every word adds value beyond a minimal statement.
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 tool has no output schema and no annotations, the description should clarify what 'details' includes. It does not. It also lacks any context about how this relates to sibling operations. For a simple get tool, it is incomplete.
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 provides 100% coverage for the single parameter knowledge_id with a description. The tool description adds no additional meaning beyond the schema, but since the schema is complete, the baseline 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 'Get knowledge details' clearly identifies the operation as a retrieval of knowledge-related data using a specific verb and resource. However, it does not explicitly differentiate from sibling tools like get_knowledge_base or list_knowledge, so it's clear but lacks sibling scoping.
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 provided on when to use this tool versus alternatives. The description only states what it does, with no mention of conditions, prerequisites, or exclusions. This leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_baseC
Get knowledge base details
| Name | Required | Description | Default |
|---|---|---|---|
| kb_id | Yes | Knowledge base ID |
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 of behavioral disclosure. It only says 'Get knowledge base details' without explaining any side effects, return format, required permissions, or whether the operation is read-only. This is minimal disclosure beyond what the 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 a single concise sentence with no fluff, front-loading the key action and object. It is not verbose, but it could be slightly more informative without becoming unwieldy, such as specifying the scope of '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?
For a simple read tool with one parameter and no output schema, the description is incomplete. It fails to disambiguate from sibling tools like 'get_knowledge', and does not explain what 'details' includes. An agent may not know when to use this tool or what to expect in the response.
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 covers the only parameter 'kb_id' with a description 'Knowledge base ID', providing 100% schema description coverage. The description adds no additional meaning about the parameter, so the baseline score of 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 clearly states the verb 'Get' and resource 'knowledge base details', indicating a read operation on a knowledge base. However, it does not distinguish this from the sibling tool 'get_knowledge', which may cause confusion about which tool to use.
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?
There is no guidance on when to use this tool versus alternatives like 'get_knowledge' or 'list_knowledge_bases'. The description provides no context about typical use cases, prerequisites, or scenarios where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_modelC
Get model details
| Name | Required | Description | Default |
|---|---|---|---|
| model_id | Yes | Model ID |
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 of behavioral disclosure. It only states that model details are retrieved, but does not mention what fields are returned, whether the operation is read-only, or any potential errors. This is a minimal disclosure for a tool with no annotation support.
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 with a single sentence and no filler. It is front-loaded and easy to parse, although its brevity means it adds little information beyond the tool name.
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 (one required parameter, no output schema), the description is minimally viable but lacks context about return values or behavior. For a simple retrieval tool this may be acceptable, but it does not fully compensate for the absence of annotations and output schema.
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 covers 100% of the parameter, describing model_id as 'Model ID'. The description adds no additional meaning beyond the schema, so the baseline 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 'Get model details' uses a specific verb and resource, clearly identifying this as a retrieval operation for a single model. It is distinguishable from sibling tools like list_models and get_agent by name, though the description itself does not explicitly differentiate them.
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?
There is no guidance on when to use this tool versus alternatives such as list_models or get_agent. The description provides no context about intended usage scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessionC
Get session details
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behaviors. It simply restates the tool's function without mentioning error handling, permission requirements, return format, or side effects.
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 only four words and front-loaded, but it is under-specified, essentially mirroring the tool name. It does not waste words but also doesn't earn its place with additional value.
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 read tool, the description might suffice if an output schema existed, but without one, the expected return value ('session details') is undefined. The context signals show no output schema, so the description should clarify what 'details' includes.
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 fully documents session_id with the description 'Session ID', and the tool description adds no further semantic nuance such as format constraints or usage examples. Baseline of 3 is appropriate given 100% 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 uses the specific verb 'get' and resource 'session', clearly indicating a read operation. However, 'details' is vague and does not specify that the operation fetches by session_id, though the schema implies a single-session lookup.
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 provided on when to use get_session versus list_sessions or delete_session. The description lacks any mention of use cases, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hybrid_searchC
Perform hybrid search in knowledge base
| Name | Required | Description | Default |
|---|---|---|---|
| kb_id | Yes | Knowledge base UUID (e.g. 'a1b2c3d4-e5f6-7890-abcd-ef1234567890') OR name (e.g. 'my-knowledge-base'). Use list_knowledge_bases to discover available knowledge bases. | |
| query | Yes | Search query | |
| match_count | No | Number of results to return | |
| vector_threshold | No | Vector similarity threshold | |
| keyword_threshold | No | Keyword match threshold |
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 does not state whether the search is read-only, how the hybrid mechanism combines vector and keyword matching, or how thresholds affect results. This is a significant gap for a tool with five parameters.
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 a single concise sentence with the action verb front-loaded. However, it is so brief that it sacrifices substantive content, making it merely acceptable rather than exemplary.
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?
With no output schema and no annotations, the description is the only source of contextual information. It does not explain what the search returns, how to interpret the thresholds, or any usage constraints, making it incomplete for a tool of this complexity.
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 complete descriptions for all five parameters, including defaults for match_count and thresholds. The description adds no additional parameter semantics beyond what the schema already documents, so the baseline score of 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 identifies the tool as performing a hybrid search on a knowledge base, which is more specific than a tautology but still vague. It does not explain what 'hybrid' means or how this tool differs from related search tools like wiki_search or get_knowledge.
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 provided on when to use this tool versus alternatives. The description lacks any context about suitable use cases, prerequisites, or situations where other tools should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsA
List all custom agents available to the current tenant. Use this to discover agent IDs, names, and their KB selection mode before calling agent_chat.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| page_size | No | Page size |
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 lists 'all custom agents available to the current tenant' and references 'KB selection mode' in the response, offering some scoping. However, it does not mention pagination behavior, permissions, or whether the list is ordered, though the schema implies pagination.
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 concise sentences, front-loaded with the purpose and followed by a clear usage directive. Every word earns its place, with no filler or repetition.
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 two optional pagination parameters and no output schema, the description provides a clear purpose, usage context, and a hint of the response fields (agent IDs, names, KB selection mode). It is mostly sufficient, though it could explicitly state that the response is an array of agent objects.
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?
Both parameters (page and page_size) are fully described in the schema with default values, yielding 100% coverage. The description adds no parameter-specific information beyond that baseline, so a score of 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 a specific verb ('List') and identifies the resource ('custom agents available to the current tenant'). It further clarifies the intent by stating it is used to discover agent IDs, names, and KB selection mode before calling agent_chat, which distinguishes it from siblings like get_agent and agent_chat.
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 advises using this tool before agent_chat to discover agent identifiers and settings. It provides clear context for when to use it, but it does not mention alternatives like get_agent for retrieving a single agent's details or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chunksC
List chunks of knowledge
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| page_size | No | Page size | |
| knowledge_id | Yes | Knowledge ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning read-only nature, return format, pagination behavior, or any side effects. This is minimal disclosure.
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 a single, concise sentence with no redundancy. It is front-loaded and easy to parse, though it is very brief and adds little beyond the tool name.
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 description is inadequate for the tool's complexity. It does not explain that chunks belong to a specific knowledge_id, what constitutes a chunk, or what the response contains. No output schema or annotations exist, so the agent lacks critical context.
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 descriptions for all three parameters (knowledge_id, page, page_size), so the baseline is 3. The description adds no additional meaning about how the parameters relate to the tool's function.
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 action 'List chunks of knowledge' with a specific verb and resource. However, it does not explicitly differentiate from sibling tools like list_knowledge or list_knowledge_bases, nor does it mention that chunks are scoped to a knowledge_id.
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 usage guidance is provided. The description does not state when to use this tool over alternatives, what prerequisites exist (e.g., a valid knowledge_id), or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledgeC
List knowledge in a knowledge base
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| kb_id | Yes | Knowledge base ID | |
| page_size | No | Page size |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only states 'List' without detailing pagination behavior, return format, ordering, or the meaning of 'knowledge'. The schema reveals page/page_size but the description adds no behavioral context beyond the basic 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?
The description is a single sentence with six words, front-loaded with the verb and clear resource. It is efficiently sized with no wasted words, though its brevity leaves out potentially useful detail.
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 lack of output schema and annotations, the description should provide more context about what is returned, how pagination works, and what constitutes 'knowledge'. It only says the action and scope, leaving the agent without enough information to fully anticipate the tool's behavior.
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 the schema fully documents parameters (kb_id, page, page_size) with their types and defaults. The description adds no parameter-level meaning beyond what's already in the schema, matching the baseline for 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?
The description 'List knowledge in a knowledge base' uses a specific verb and resource, clearly indicating a listing operation scoped to a knowledge base. It distinguishes from sibling tools like 'get_knowledge' (retrieving a single item) and 'list_knowledge_bases' (listing base objects), though it doesn't explicitly call out these differences.
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 provided on when to use this tool versus alternatives such as 'get_knowledge' or 'hybrid_search'. The description gives no context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledge_basesB
List all knowledge bases
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. 'List all knowledge bases' implies a read-only operation returning a collection, but it does not state whether this is safe/non-destructive (though implied), whether pagination is involved, or whether the scope is limited to the current tenant. The behavior is straightforward enough that a score above 2 is warranted, but the lack of any context about response shape or filtering limits it to a 3.
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 a single, grammatically complete sentence: 'List all knowledge bases'. It is maximally concise, contains no filler, and is front-loaded with the action verb. Every word earns its place.
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 no parameters, the description is nearly sufficient, but it lacks context about the return value (e.g., what fields are included for each knowledge base) and whether 'all' means across all tenants or the current scope. Since there is no output schema, the agent must infer the response format. This gap prevents a higher score, but the tool's simplicity keeps it at a minimally adequate 3.
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 tool has 0 parameters and schema coverage is 100%, so there are no parameter details to explain. Per the rubric, a 0-parameter tool receives a baseline of 4, and the description does not need to add parameter semantics. It correctly implies no inputs are required.
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 'List all knowledge bases' clearly states the action (list) and resource (knowledge bases), with 'all' indicating scope. While it distinguishes from siblings like get_knowledge_base and delete_knowledge_base by name, it does not explicitly distinguish from the similarly named list_knowledge, leaving slight ambiguity about whether it covers bases versus individual knowledge items.
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 no guidance on when to use this tool versus alternatives. It does not mention that it is the appropriate tool for simply enumerating knowledge bases, nor does it reference other list tools like list_models or list_sessions, or contrast with get_knowledge_base for retrieving specific details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsA
List all models
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It merely states 'List all models' without revealing expected behavior such as return format, pagination, ordering, or any side effects. This is insufficient for a tool with zero annotation coverage.
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 a single, front-loaded sentence with zero redundant words. It efficiently states the action and target resource.
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 zero-parameter list tool, the description is mostly complete, but with no output schema, it fails to specify what 'list models' returns (e.g., full objects or just IDs). The sibling context implies models exist, but the return structure is unidentified, leaving a minor gap.
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 tool has zero parameters, so the baseline is 4. The description's 'all' scope aligns with the empty schema, adding no conflicting information. No additional parameter semantics are needed.
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 'List all models' uses a specific verb 'List' and resource 'models', with 'all' clarifying the scope. It distinguishes from sibling tools like get_model (single) and create_model (create).
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 phrase 'List all models' clearly indicates when to use the tool: to retrieve all models. It does not explicitly exclude alternatives or mention when not to use it, but the context is unambiguous for a zero-parameter list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sessionsC
List chat sessions
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| page_size | No | Page size |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden for behavioral disclosure. It only states 'List chat sessions', which implies a read operation, but does not describe return format, pagination behavior, sorting, or any other behavioral traits. This is the minimum statement of function with no added context.
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 one short sentence, front-loaded with the verb and resource, and contains no wasted words. It is appropriately concise for a simple list operation, though it could be slightly more informative without sacrificing brevity.
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 and the schema covers pagination parameters, but the description does not mention what the response contains (e.g., session IDs, titles, timestamps) or that results are paginated. Given no output schema and no annotations, the description leaves gaps that an agent might need to infer.
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% with 'page' and 'page_size' both documented. The description adds no additional meaning beyond the schema, so the baseline score of 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 a specific verb ('List') and resource ('chat sessions'), clearly identifying the tool's purpose. It distinguishes from sibling tools like get_session, create_session, and delete_session by the resource and operation, though it doesn't differentiate among other list_* tools beyond the resource name.
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 provided on when to use this tool versus alternatives, or on any prerequisites or exclusions. The description simply states 'List chat sessions' without mentioning pagination or relationship to get/create/delete session tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tenantsB
List all tenants
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'List all tenants', which adds little beyond the tool name. It does not mention whether the operation is read-only, what the return format is, or any pagination/limiting behavior.
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 a single sentence and is very concise. It earns the words it uses, though it under-specifies by not adding any additional detail. For a simple list tool, this length is acceptable.
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 no annotations, the description is the sole source of information. It fails to mention what the response contains, any usage context, or behavior, leaving the agent with only the name and a one-line description, which is insufficient for full completeness.
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 tool has zero parameters, and schema coverage is 100% vacuously. Per the rubric, a baseline of 4 is appropriate for 0 parameters. The description adds no parameter information, but none is needed.
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 lists all tenants using the verb 'list' and resource 'tenants', making its purpose clear. However, it doesn't explicitly distinguish itself from sibling tools like 'create_tenant' or other list tools, and could benefit from noting the scope of what 'all' entails.
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 no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. For a list operation, it is implied that it should be used when you need to see all tenants, but this is not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_index_viewA
Get a structured wiki index with per-type directory groups. Returns an overview of all wiki pages organized by type (entity, concept, summary, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| kb_id | Yes | Knowledge base ID | |
| limit | No | Maximum items per type group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It describes the return format (overview organized by type) but does not disclose potential side effects, permissions, pagination behavior, or whether it is read-only. 'Get' hints at a safe read operation, but explicit behavioral details are lacking.
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, front-loaded with the core purpose, and contains no redundant or extraneous information. Every word earns its place.
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 listing tool with no output schema, the description adequately explains what is returned (overview organized by type) and the grouping concept. It could specify the structure of entries or mention how to navigate the index, but it is largely complete for its simplicity.
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 the baseline is 3. The description adds context about the return format (per-type groups) but does not add meaning beyond what the input schema already provides for kb_id and limit.
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 purpose with a specific verb ('Get') and resource ('structured wiki index'), and differentiates it from sibling tools like wiki_search and wiki_read_page by emphasizing per-type directory groups and an overview of all wiki pages.
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 implies the tool is for obtaining an overview of wiki pages, but it does not explicitly state when to use it over alternatives or mention any exclusions. Sibling tools exist but are not referenced, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_read_pageA
Read a wiki page by its slug. Returns full markdown content, metadata, inbound/outbound links, and source references.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Page slug (e.g. 'entity/acme-corp', 'concept/rag') | |
| kb_id | Yes | Knowledge base ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states what the tool returns (full markdown, metadata, links, source references), which is valuable for a read operation. However, it does not mention error behavior or permission requirements, leaving some room for interpretation.
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 with the action verb. Two sentences contain all essential information without superfluous words. Every sentence adds value, making it an exemplar of efficient writing.
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 read tool with two well-documented parameters, the description specifies return values (markdown, metadata, links, references) even though no output schema exists. It lacks only minor details like error handling or response shape nuances, but overall it is sufficiently complete 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 input schema already provides full coverage (100%) with descriptions for both parameters, including an example for slug. The description adds no additional parameter-level meaning beyond what the schema already states, so the baseline score of 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 clearly states the action (read) and resource (wiki page) with a specific identifier (slug). It distinguishes itself from sibling tools like wiki_search (which finds pages) and wiki_index_view (which views index) by focusing on reading a single page's full content.
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 context implies use when you have a slug and want page content, but there is no explicit guidance on when to use this versus alternatives like wiki_search. No exclusions or prerequisites are mentioned, leaving usage inferable but not clearly directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_searchA
Search wiki pages by full-text query. Returns matching wiki pages with title, slug, summary, and content snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| kb_id | Yes | Knowledge base ID | |
| limit | No | Maximum number of results to return | |
| query | Yes | Search query text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that results include title, slug, summary, and content snippets, which is useful. However, it does not mention pagination, sorting, or the read-only nature beyond the implied 'search' verb, leaving some behavioral details unspecified.
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 a single, front-loaded sentence: search action first, then the resource and return format. Every word adds value, and there is no redundancy or filler.
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 three-parameter search tool with no output schema, the description adequately explains what the tool does and what it returns. It doesn't include example queries or result ordering, but the information is sufficient for basic correct 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 input schema already documents all three parameters (kb_id, limit, query) with clear descriptions, so schema coverage is 100%. The description adds no parameter-level detail beyond the 'full-text query' phrasing, which aligns with the existing 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 uses a specific verb and resource: 'Search wiki pages by full-text query'. It clearly distinguishes from sibling tools like wiki_read_page (specific page lookup) and hybrid_search (search across multiple resource types), making the tool's scope 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 clearly implies usage for full-text searching of wiki pages. It provides context but doesn't explicitly mention when not to use it or compare it to alternatives like hybrid_search. Still, the intended use case is evident from the phrasing.
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.
28 tool updates
v0.1.0- First observed
agent_chat - First observed
chat - First observed
create_knowledge_base - First observed
create_knowledge_from_file - First observed
create_knowledge_from_url - First observed
create_model - First observed
create_session - First observed
create_tenant - First observed
delete_chunk - First observed
delete_knowledge - First observed
delete_knowledge_base - First observed
delete_session - First observed
get_agent - First observed
get_knowledge - First observed
get_knowledge_base - First observed
get_model - First observed
get_session - First observed
hybrid_search - First observed
list_agents - First observed
list_chunks - First observed
list_knowledge - First observed
list_knowledge_bases - First observed
list_models - First observed
list_sessions - First observed
list_tenants - First observed
wiki_index_view - First observed
wiki_read_page - First observed
wiki_search
TDQS
Most tools target distinct resources (knowledge bases, knowledge items, sessions, agents, models, wiki). The only real overlap is list_knowledge vs list_chunks and possibly chat vs agent_chat, but the descriptions help differentiate these.
The majority follow a verb_noun snake_case pattern (get_, create_, delete_, list_). Minor deviations like chat, agent_chat, and wiki_index_view are still readable and do not break the overall consistency.
With 28 tools, the set exceeds the recommended 25-tool threshold and feels heavy. While the broader domain (knowledge, chat, agents, wiki, models, tenants) justifies some size, the number is still unwieldy for an agent to navigate efficiently.
The surface covers core CRUD for knowledge bases and knowledge items, but lacks update operations for most resources (e.g., update_knowledge, update_model, update_agent). Agent management includes only inspection, and wiki lacks editing capabilities, leaving notable gaps.
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
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA minimal, containerized MCP server that exposes a Streamable HTTP transport with API key authentication, allowing secure access to MCP endpoints.-
- FlicenseNot gradedqualityBmaintenanceBridges stdio Model Context Protocol (MCP) servers to MCP Streamable HTTP behind a single gateway, enabling multi-tenant, multi-user deployment with per-tenant environment variables via HTTP headers.-
- FlicenseNot gradedqualityCmaintenanceStateless MCP adapter for the LKPlanWise Go REST API, enabling AI agents to call curated financial tools via Streamable HTTP while forwarding bearer credentials.-
- AlicenseAqualityBmaintenanceA thin stdio gateway to Nodus's Streamable HTTP MCP server, exposing a curated allowlist of tools for the Research Workbench. It enables secure, bearer-authenticated interactions with Nodus without graph logic or caching.1MIT
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/mwe-support/weknora-mcp-dispatch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server