expert-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@expert-mcp-serverdeep search for quantum computing breakthroughs"
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.
expert-mcp-server
MCP server for expert-service knowledge bases. Lets any MCP-compatible agent query beliefs, search documents, and explore reasoning chains.
Install
uv tool install git+https://github.com/benthomasson/expert-mcp-serverRelated MCP server: bedrock-kb-mcp-server
Configure
Create a .expert.toml in your project root:
url = "https://expert.ftl2.com"
project = "your-project-name"
api_key = "your-api-key"Or set environment variables: EXPERT_URL, EXPERT_API_KEY, EXPERT_PROJECT.
Global config can also go in ~/.config/expert/config.toml under [default].
Usage
Claude Code
claude mcp add expert-service -- expert-mcp-serverClaude Desktop / other MCP clients
Add to your MCP config:
{
"mcpServers": {
"expert-service": {
"command": "expert-mcp-server"
}
}
}Or run from source:
{
"mcpServers": {
"expert-service": {
"command": "uvx",
"args": ["--from", "git+https://github.com/benthomasson/expert-mcp-server", "expert-mcp-server"]
}
}
}Tools
Tool | Description |
| Dual-path retrieval across beliefs and source documents with IDF ranking. Sub-second, no LLM call. Start here. |
| LLM-synthesized answer grounded in the knowledge base. |
| Full-text search across beliefs, entries, and source documents. |
| Trace why a belief is IN or OUT through its justification chain. |
| Simulate retracting or asserting a belief to see the cascade. |
| Full details for a specific belief including justifications. |
| List beliefs filtered by status (IN/OUT). |
| List available expert knowledge bases. |
| List analysis entries (reports, findings). |
| Read the full content of an entry. |
All tools accept an optional project parameter. If omitted, the default project from config is used.
License
MIT
Available Tools
10 toolsaskA
Ask a question and get an LLM-synthesized answer grounded in the knowledge base.
Uses the server's LLM to synthesize an answer from beliefs and source documents. Slower than deep_search but returns a ready-to-use answer.
Args: question: The question to ask project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since annotations are absent, the description carries the full burden. It explains that the tool uses the server's LLM to synthesize an answer from beliefs and source documents, and that it is slower. This provides good insight into behavior, though it does not explicitly state whether the operation is read-only or if any side effects exist.
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, with no unnecessary words. It is front-loaded with the main purpose, then provides behavioral context, and finally lists arguments. Every sentence adds value, making it efficient for an AI agent to parse.
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 simplicity (2 parameters, no nested objects) and the presence of an output schema, the description covers the essential aspects. It explains the tool's function, behavior, and sibling differentiation. However, it could mention any prerequisites like active knowledge base or authentication requirements.
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 0%, so the description must compensate. It adds basic semantics for each parameter: 'question: The question to ask' and 'project: Project name or UUID (uses default if empty)'. This is minimal but adequately clarifies the parameters beyond the schema titles.
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: 'Ask a question and get an LLM-synthesized answer grounded in the knowledge base.' It uses a specific verb (ask) and resource (knowledge base answer), and distinguishes itself from sibling 'deep_search' by noting it is slower but returns a ready-to-use answer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear comparison with 'deep_search', stating that 'ask' is slower but returns a ready-to-use answer. This gives implicit guidance on when to use each. However, it does not explicitly mention when not to use 'ask' or compare to other siblings like 'search' or 'get_belief'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_searchA
Search beliefs and source documents with IDF-ranked results. No LLM call, sub-second response.
This is the recommended search tool. It runs dual-path retrieval across the belief network and source document chunks, returning pre-ranked context ready for synthesis. Use this instead of calling search + list_beliefs + get_entry separately.
Args: query: The question or search terms project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses key behavioral traits: no LLM call, sub-second response, dual-path retrieval, and return of pre-ranked context. It doesn't mention side effects or authentication, but for a search tool these are less critical.
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 (3 short paragraphs) with front-loaded summary, clear structure, and no redundant information. Every sentence adds 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?
Given the output schema covers return values, the description adequately explains the search mechanism, usage recommendation, and parameters. It lacks mention of pagination or query constraints, but overall it's fairly complete for a search tool.
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?
With 0% schema description coverage, the description compensates fully by explaining both parameters: query as 'The question or search terms' and project as 'Project name or UUID (uses default if empty)'. Adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches beliefs and source documents with IDF-ranked results, distinguishing itself from sibling tools like 'search' by recommending it over combining multiple separate calls. The verb 'search' combined with specific resources and ranking method provides high 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?
Explicitly says 'This is the recommended search tool' and advises using it instead of calling 'search + list_beliefs + get_entry separately'. This gives clear when-to-use guidance and highlights efficiency benefits like 'No LLM call, sub-second response'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_beliefA
Explain why a belief is IN or OUT by tracing its justification chain.
Shows what supports this belief, what assumptions it rests on, and what would change if it were retracted.
Args: node_id: The belief ID to explain project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains what the tool returns (supports, assumptions, retraction consequences) but does not disclose if read-only, error conditions, or performance implications. Adequate but not thorough.
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?
Very concise: two sentences plus clear Args list. No extraneous information, well-structured, front-loaded.
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 existence of output schema (not shown), description doesn't need to detail return format. It covers main behavior and parameters. Could mention error handling or prerequisites, but complete enough for a simple tool.
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 0%, so description provides all parameter meaning: 'node_id: The belief ID to explain' and 'project: Project name or UUID, uses default if empty.' This fully compensates for schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Explain why a belief is IN or OUT by tracing its justification chain,' specifying the verb (explain) and resource (belief justification). It distinguishes from siblings like get_belief (retrieval) and what_if (hypotheticals).
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 usage context: understanding belief justification, but does not explicitly state when not to use or compare with alternatives like ask or search. The sibling list provides some context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_beliefA
Get full details for a specific belief including justifications and dependents.
Args: node_id: The belief ID project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read-only operation ('get'), but does not disclose any side effects, prerequisites, or error conditions. For a retrieval tool, this is adequate but not exhaustive.
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 with two sentences and parameter annotations. No unnecessary words, and the structure is front-loaded with the main 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?
Given that an output schema exists, the description sufficiently covers input parameters and hints at output content ('including justifications and dependents'). For a simple get operation, this 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 0%, so the description fully compensates. It explains node_id as 'The belief ID' and project as 'Project name or UUID (uses default if empty)', adding clear meaning beyond the schema's titles.
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 'Get full details for a specific belief' with a specific verb and resource, and mentions including justifications and dependents. It distinguishes from siblings like list_beliefs (listing) and explain_belief (explanation), but does not explicitly compare.
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 on when to use this tool versus alternatives. It does not mention exclusions or context for using get_belief over list_beliefs, explain_belief, or other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entryA
Read the full content of an analysis entry.
Args: entry_id: The entry ID project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| entry_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It correctly indicates a read operation ('Read'), but does not disclose any additional behaviors (e.g., authorization requirements, rate limits, or whether the entry must exist). The description is minimal but not misleading.
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 only two short sentences and a compact Args list. Every element serves a purpose, and the key action is front-loaded. Zero unnecessary 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?
Given the tool's simplicity (2 parameters, no nested objects) and the presence of an output schema, the description adequately covers purpose and parameter semantics. However, it omits contextual details like what constitutes an 'analysis entry' or how this differs from 'list_entries' in terms of data returned.
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?
Parameter documentation coverage is 0%, meaning the description must compensate. The 'Args' section adds context beyond the schema (e.g., 'Project name or UUID' and default behavior), but only marginally. The schema already shows defaults and types, so the added value is limited.
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 explicitly states 'Read the full content of an analysis entry,' using a specific verb and resource. It clearly distinguishes from sibling tools like 'list_entries' (which lists entries) and 'get_belief' (which retrieves beliefs).
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 use when the full content of an entry is needed, but provides no explicit guidance on when to use this tool versus alternatives (e.g., when to use 'list_entries' instead). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_beliefsB
List beliefs in the knowledge base.
Args: status: Filter by truth value -- "IN", "OUT", or empty for all project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It only states 'List beliefs' with filters, but does not mention if the operation is read-only, has pagination, ordering, or any side effects. The output format is not described despite output schema existing.
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 short and front-loaded with the main purpose. The argument list is clearly formatted. No extraneous text, but could be slightly more structured with a brief note on return 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?
Lacks information about return format, ordering, or limits. With siblings like deep_search and search, an agent needs more context to choose correctly. Output schema exists but is not referenced.
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 0%, so description adds needed meaning. It explains status filter values ('IN', 'OUT', empty) and project fallback to default. However, it does not clarify what 'IN' and 'OUT' represent in terms of truth values.
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 'List beliefs in the knowledge base', using a specific verb and resource. It distinguishes from siblings like get_belief (single) and search (query-based).
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 explicit when-to-use or when-not-to-use guidance. The description implies listing all beliefs with optional filters, but does not compare with alternatives like search or list_entries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entriesB
List analysis entries (reports, findings, assessments).
Args: topic: Filter by topic slug, or empty for all entries project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It implies a read-only list operation but lacks details on pagination, limits, ordering, or access constraints. The term 'list' suggests non-destructive, but no explicit safety guarantees.
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, front-loads the purpose, and uses a clear argument list structure with two bullet points. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format is covered. The description covers core purpose and parameter usage. However, it lacks guidance on result ordering, empty results, or when to use this over similarly-named siblings like 'search' or 'list_beliefs'.
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?
With 0% schema description coverage, the description compensates by explaining both parameters ('topic' for filtering by slug, 'project' for name/UUID). This adds meaning beyond the bare schema, though examples or format constraints would strengthen it.
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 that the tool lists analysis entries, specifying types (reports, findings, assessments). It distinguishes itself from the sibling 'get_entry' by implying a list operation, but does not explicitly contrast with siblings.
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 on when to use this tool vs alternatives like 'search' or 'get_entry'. The description only states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsA
List all available expert knowledge bases with belief, entry, and source counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It correctly indicates a read-only listing operation. The tool has no parameters, so the behavior is straightforward and no ambiguities exist.
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 that precisely conveys the tool's function and outputs. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete given the tool has no parameters and an output schema exists. It explains what the tool returns (lists of knowledge bases with counts) and is sufficient for an AI agent to understand its purpose.
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?
No parameters are defined, so the baseline score is 4. The description adds no parameter details, but none 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 clearly states the tool lists all available expert knowledge bases and includes belief, entry, and source counts. It is specific and distinct from sibling tools like list_beliefs and list_entries.
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 usage when an overview of knowledge bases is needed. No alternatives or when-not-to-use are provided, but the tool is simple enough that explicit guidelines are not critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchB
Full-text search across beliefs, entries, and source documents.
Returns matching beliefs (with IN/OUT truth values), entry titles, and source chunk snippets.
Args: query: Search terms project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns matching beliefs with truth values, entry titles, and source snippets. With no annotations, it partially carries the burden, but it omits details on side effects, permissions, or rate limits.
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: a one-line purpose, a brief output summary, and a two-line parameter list. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, parameters, and return values adequately. However, it lacks usage context relative to siblings and does not specify the scope of the search (e.g., across all projects or single). The presence of an output schema (not shown) may compensate.
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 0%, but the description includes an 'Args' section that explains both parameters ('query: Search terms', 'project: Project name or UUID'). This adds meaning beyond the schema, though the explanations are minimal.
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 performs full-text search across beliefs, entries, and source documents, listing the specific resources it covers. However, it does not differentiate from sibling tools like 'ask' and 'deep_search', which might have overlapping functionality.
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. It does not mention prerequisites, contexts where it is appropriate, or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
what_ifA
Simulate retracting or asserting a belief without modifying the database.
Shows the cascade: which beliefs would go OUT (retract) or come back IN (assert). Use this to understand the impact of changing a belief.
Args: node_id: The belief ID to simulate action: "retract" or "assert" project: Project name or UUID (uses default if empty)
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | retract | |
| node_id | Yes | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It states the tool is a simulation ('without modifying the database') and describes the output (cascade of beliefs). This gives good insight into behavior, though it could mention permissions or error conditions.
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 with no wasted words: a header line explaining the simulation, a paragraph on what it shows, and a clear Args list. It is well-structured and front-loaded.
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 output schema exists but its content is not provided, the description explains the output (cascade of beliefs) adequately. It covers purpose, parameters, and behavior, making it complete for the tool's functionality.
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 0%, but the description adds full meaning for all three parameters in the Args section: node_id (the belief ID), action ('retract' or 'assert'), and project (name or UUID, default if empty). This compensates completely for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool simulates retracting or asserting a belief without modifying the database, and explains what it shows (cascade of beliefs going out or coming in). This distinguishes it from sibling tools like get_belief and list_beliefs which are read-only operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use this to understand the impact of changing a belief', providing clear usage context. It does not explicitly mention when not to use or list alternatives, but the guidance is sufficient for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools are clearly distinct, but 'ask' and 'deep_search' both involve answering questions, though their descriptions clarify different use cases. Slight overlap is mitigated by clear purpose statements.
Names predominantly follow verb_noun pattern with underscores (e.g., explain_belief, list_entries). Exceptions like 'ask' and 'what_if' are idiomatic but not disruptive.
10 tools cover the core operations for a knowledge base server: searching, retrieving, listing, explaining, and simulating. The count is well-scoped without redundancy.
The tool surface covers querying and simulation comprehensively, but lacks tools for creating or updating beliefs/entries. This may be intentional for a read-only expert server, hence a minor gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
Make your knowledge agent-ready. One MCP endpoint, 5 connectors, 3 search modes.
Agentic search over your Dewey document collections from any MCP-compatible client.
Shared, peer-validated knowledge archive for AI agents — search, contribute, and validate via MCP
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceEnables searching and researching document collections through hybrid semantic search and agentic research queries with grounded, cited answers. It allows users to list collections, scan document sections, and retrieve full Markdown content via MCP-compatible agents.81
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query documents in a Bedrock Knowledge Base through the MCP protocol, with tools for semantic search and agentic retrieval.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query and manage a document knowledge base via MCP, with RAG-powered search and grounded answers with citations.MIT
- FlicenseNot gradedqualityCmaintenanceExposes a provenance-aware knowledge graph to AI agents over MCP, providing tools like get_fact and search_documents that return precise answers with source citations.1
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/benthomasson/expert-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server