anythingllm-mcp
Click on "Deploy 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., "@anythingllm-mcpask my workspace about the quarterly financial report"
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.
AnythingLLM MCP Server
Complete MCP (Model Context Protocol) server for AnythingLLM - the all-in-one AI document chat platform.
Features
Zero human interaction. Just set your API key and go.
Tools (15 total)
System
check_token- Validate API tokengenerate_api_key- Generate new API key (admin)
Workspaces
list_workspaces- List all workspacesget_workspace- Get workspace detailscreate_workspace- Create new workspaceupdate_workspace- Update workspace settingsdelete_workspace- Delete a workspace
Chat
chat- Send chat message (chat/query mode)stream_chat- Stream chat response
Documents
upload_document- Upload document to workspaceupdate_embeddings- Manage workspace embeddingslist_workspace_documents- List workspace documents
Threads
list_threads- List workspace threadsget_thread- Get thread detailsdelete_thread- Delete a thread
System & Compatible
get_system_env- Get system configurationopenai_chat_completion- OpenAI-compatible endpoint
Related MCP server: AnythingLLM MCP Server
Quick Start
1. Install
npm install -g anythingllm-mcp2. Set API Key
Get your API key from AnythingLLM: Settings > Developer API
export ANYTHING_LLM_API_KEY="your-api-key-here"
export ANYTHING_LLM_BASE="http://localhost:3001/api/v1" # optional, default3. Add to OpenCode
Add to your opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"anythingllm": {
"type": "local",
"command": ["anythingllm-mcp"],
"environment": {
"ANYTHING_LLM_API_KEY": "your-api-key-here",
"ANYTHING_LLM_BASE": "http://localhost:3001/api/v1"
},
"enabled": true
}
}
}4. Use in Any Session
The tools are now available. Example:
> Use the chat tool to ask AnythingLLM about my documentsDevelopment
git clone https://github.com/moliv/anythingllm-mcp.git
cd anythingllm-mcp
npm install
npm run buildRequirements
AnythingLLM running (local or remote)
Valid API key from AnythingLLM
Node.js 18+
License
MIT
Available Tools
17 toolschatC
Send a chat message to a workspace (mode: chat or query)
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | ||
| message | Yes | ||
| mode | No | ||
| userId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states action without disclosing side effects, authentication needs, or return behavior. For a message-sending tool, critical details like response or error handling are missing.
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?
Single sentence is concise but lacks necessary details. It is front-loaded but incomplete, sacrificing completeness 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?
With no output schema, no annotations, and 4 parameters, the description is insufficient. It fails to explain return values, error conditions, or mode semantics, leaving agents underinformed.
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% and description only mentions 'mode' enum. No explanation for workspace, message, or userId beyond their existence. The description adds minimal value over 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?
Description clearly states the tool sends a chat message to a workspace, with modes 'chat' or 'query'. It specifies a verb and resource, but does not differentiate from sibling tools like 'openai_chat_completion' or 'stream_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 on when to use this tool versus alternatives. Lacks context on appropriate mode selection or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_tokenA
Validate the current API token
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided; the description merely says 'validate' without specifying outcomes, such as whether it returns a boolean or throws an error. This lacks sufficient 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, clear sentence with no unnecessary words. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (no parameters, no output schema), the description is minimally adequate but lacks details on validation behavior or error handling.
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?
There are zero parameters, and schema coverage is 100%. The description adds no parameter info, but baseline for no parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates an API token, using a specific verb and resource. It distinguishes itself from sibling tools like generate_api_key or 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 implies usage for checking token validity, but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workspaceC
Create a new workspace
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slug | No | ||
| openAiTemp | No | ||
| openAiHistory | No | ||
| similarityThreshold | No | ||
| topN | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action. It lacks disclosure of side effects, required permissions, or constraints (e.g., uniqueness of slug). The agent gets no behavioral context beyond the obvious.
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. It is brief but underspecified—conciseness at the expense of completeness.
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 complexity (6 parameters, no output schema), the description is severely incomplete. It omits return value, parameter constraints, and any operational context, leaving the agent with insufficient information.
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 should compensate but does not explain any of the 6 parameters (e.g., slug, openAiTemp). The agent cannot infer parameter meaning from the description alone.
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 'Create' and resource 'workspace', distinguishing it from sibling tools like 'update_workspace' and 'delete_workspace' by the action. However, it does not elaborate on scope or nuances.
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 such as 'update_workspace'. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_threadC
Delete a thread from a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | ||
| threadSlug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'delete' without disclosing permanence, reversibility, required 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?
Single sentence, concise, but lacks detail; could include usage context 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?
Given no annotations, no output schema, and minimal description, the tool definition provides insufficient context for an agent to invoke it correctly or handle responses.
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 has 0% description coverage; description does not explain 'workspace' or 'threadSlug' (e.g., format, source). Agent cannot infer 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?
Description clearly states action 'Delete' and resource 'thread from a workspace', distinct from sibling 'delete_workspace' which deletes entire workspaces.
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, no prerequisites mentioned (e.g., thread existence, permissions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workspaceC
Delete a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Delete operations are destructive, but the description does not disclose that deletion is irreversible or what happens to associated data. With no annotations, the description should provide this context but fails to.
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 too short (only 4 words) and lacks essential detail. It sacrifices completeness for conciseness, making it insufficient for accurate tool invocation.
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 incomplete. It does not describe return values, error conditions, or required permissions, leaving critical gaps.
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%, and the description does not explain the 'slug' parameter, leaving the agent to infer its meaning. Additional context like value format or examples would help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb and resource: 'Delete a workspace'. It effectively distinguishes from sibling tools like create_workspace, update_workspace, and get_workspace.
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 archiving or disabling. Also missing prerequisites or consequences (e.g., irreversible action).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_api_keyB
Generate a new API key (admin)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It only states the action but does not disclose side effects (e.g., invalidates old keys), authentication requirements, or rate limits. Minimal information about the tool's 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?
Single sentence, front-loaded with verb and resource, no extraneous words. Ideal conciseness for a simple tool.
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 parameters and no output schema, the description is minimal but adequate for a straightforward action. However, it lacks details on expected output or behavioral context that would make it fully self-contained.
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 zero parameters and schema coverage at 100%, baseline is 3. The description adds no parameter-specific information beyond what the empty schema already conveys.
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 'Generate' and the resource 'API key', and indicates admin scope. It distinguishes from sibling tools like chat or check_token, which have different purposes.
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 guidelines on when to use this tool vs alternatives. With siblings like check_token and list_workspaces, the agent needs context on when generating an API key is appropriate, which is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_envB
Get system environment configuration
| 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 must disclose behavioral traits. It only states 'Get', hinting at read-only, but does not confirm safety, authentication needs, or response nature.
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 wasted words. It is appropriately sized for a simple tool, though could include more context without losing 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 no parameters and no output schema, the description is minimal. It provides the gist but lacks detail on return format or use cases, leaving some ambiguity for an agent.
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?
There are no parameters, so schema coverage is 100%. The description adds no parameter info, but none is needed. Baseline score of 4 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 tool's action ('Get') and resource ('system environment configuration'). It distinctly differs from sibling tools focused on workspace, thread, or chat 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?
No guidance is provided on when to use this tool versus alternatives. The description lacks explicit context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threadC
Get details of a specific thread
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | ||
| threadSlug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only says 'Get details', which implies a read operation. It fails to disclose behavioral traits like authentication requirements, error behaviors, or any side effects. Essential context is missing.
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. However, it is too brief and lacks structure, missing critical details that would justify its length.
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 two required parameters, no output schema, and no annotations, the description should at least outline what 'details' include. It fails to provide sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no information about the parameters 'workspace' and 'threadSlug' beyond their names. It doesn't explain their format, purpose, or how to obtain them.
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 details of a specific thread' clearly states the action (get) and resource (thread), with 'specific' implying a single thread by identifier. It differentiates from siblings like list_threads (listing) and delete_thread (mutation) without explicit mention.
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 like list_threads or delete_thread. The description implies you need a thread identifier but doesn't state prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspaceB
Get details of a specific workspace
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It states 'Get details' implying a read operation, but fails to disclose permissions, rate limits, or what exactly 'details' entails. Minimal transparency beyond the obvious.
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?
One sentence of 5 words with no filler. Front-loaded and efficient, earning 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 single-parameter get tool, the description minimally covers purpose but omits return details (no output schema) and behavioral context. Adequate but not thorough.
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 only parameter 'slug' is mentioned in schema but not explained in description. Schema description coverage is 0%, yet the description adds no semantic context about slug format, examples, or how it identifies the workspace. Marginal value over 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 'Get details of a specific workspace' clearly indicates the verb (Get) and resource (workspace), differentiating it from sibling tools like list_workspaces, create_workspace, update_workspace, and delete_workspace.
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, such as list_workspaces for all workspaces or get_thread for threads. No when-not or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_threadsC
List all threads in a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose behavioral details like output format, pagination, ordering, or any side effects for this read-only 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?
A single sentence is concise but too sparse; it lacks structural elements like bullet points or separate sections for details, though it front-loads the core 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?
For a simple list tool with one parameter and no output schema or annotations, the description omits return value information and potential constraints, leaving the agent with insufficient context to fully understand 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 0%; the description only implies the 'workspace' parameter identifies a workspace but doesn't explain valid values, format, or how to obtain 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 'list all threads in a workspace' clearly specifies the action (list), resource (threads), and scope (workspace), distinguishing it from sibling tools like 'get_thread' and 'list_workspace_documents'.
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_thread' for a single thread, or any prerequisites like requiring a workspace ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspace_documentsC
List all documents in a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must communicate behavior. It states 'List all documents' but omits whether the operation is read-only, returns full documents or metadata, or has pagination. 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 short sentence with no superfluous detail, but it is too sparse to be useful. Adequate length for the content, but lacks necessary 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?
With no output schema and no annotations, the description should clarify return type, behavior, or limitations. It provides none, leaving the agent uncertain about the tool's output or side effects.
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 single parameter 'slug' has 0% schema description coverage. The description does not explain what 'slug' represents (likely workspace identifier), adding no value 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?
The description states 'List all documents in a workspace', which clearly indicates a verb (list) and resource (documents in a workspace). It distinguishes from sibling tools like list_threads or list_workspaces, but doesn't specify the workspace identifier scope.
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. Sibling tools include list_threads, list_workspaces, and chat, but no contextual hints about selecting this tool for document listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesB
List all workspaces
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It only states 'List all workspaces' without detailing pagination, return format, whether archived workspaces are included, or any access requirements. This lack of detail does not inform the agent about what to expect beyond the minimal action.
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 redundant words. It conveys the essential purpose without any filler. This is appropriately concise for a tool with no parameters.
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, but the description omits what a 'list all' operation returns (e.g., a list of workspace objects vs. names, pagination behavior). Given there is no output schema or annotations, the description is not enough for an agent to understand the full context of the invocation and response. More information on the return structure would provide 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 input schema has zero parameters, and schema description coverage is 100% (vacuously, as there are no properties). Since there are no parameters, the baseline is 4, and the description adds nothing that detracts from this. It correctly implies no filtering or options.
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 workspaces' clearly states the action (list) and the resource (workspaces). It uses a specific verb and resource, distinguishing it from sibling tools like 'get_workspace' which implies retrieving a single workspace.
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 mention when to use this tool versus alternatives such as 'get_workspace' for a single workspace or 'list_collections' for a different resource type. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openai_chat_completionC
OpenAI-compatible chat completion endpoint (use workspace as model)
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| messages | Yes | ||
| stream | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should carry the full burden. It notes 'OpenAI-compatible' but does not disclose behavioral traits such as rate limits, authentication requirements, or the meaning of 'use workspace as model'. This lack of transparency hinders correct invocation.
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 a parenthetical hint, making it concise. However, the brevity sacrifices clarity, as the meaning of 'use workspace as model' is ambiguous.
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 three parameters, no output schema, and no annotations, the description falls short. It does not explain return values, error conditions, or behavioral nuances, leaving significant gaps.
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 add meaning. The phrase 'use workspace as model' adds context for the model parameter, but messages and stream are left unexplained. Insufficient compensation for the documented parameters.
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 it as an OpenAI-compatible chat completion endpoint, specifying the verb and resource. However, it fails to distinguish it from siblings like 'chat' and 'stream_chat', which may overlap in purpose.
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 does not mention prerequisites, use cases, or exclusions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stream_chatC
Stream a chat message to a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | ||
| message | Yes | ||
| mode | No | ||
| userId | No | ||
| threadSlug | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does not disclose behavioral traits such as streaming behavior, rate limits, or authentication requirements. The description is too brief to be informative.
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 no wasted words. However, it is under-specified for a tool with five parameters, making it less effective despite its 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?
Given the complexity (5 parameters, streaming behavior, no output schema or annotations), the description is extremely incomplete. It does not explain the return format, streaming mechanics, or parameter purposes, leaving major gaps.
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%, requiring the description to add meaning beyond the schema. However, the description provides no parameter semantics, leaving five parameters (including one with an enum) unexplained.
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 'Stream a chat message to a workspace' clearly states the verb and resource. However, it does not differentiate from sibling tools like 'chat' or 'openai_chat_completion', which may have similar 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 like 'chat' or 'openai_chat_completion'. There are no exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_embeddingsC
Add or remove documents from workspace embeddings
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | ||
| adds | No | ||
| deletes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. Only states mutation (add/remove) but no details on idempotency, side effects, or required state.
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?
One short sentence is concise but lacks structure. Could include separate statements for add vs remove or parameter 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?
Given 3 parameters, no output schema, and no annotations, the description is insufficient. Missing info on return values, error handling, and operational semantics.
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 has 0% description coverage and description does not explain what the parameters represent (e.g., whether adds/deletes are document IDs or names). Completely relies on parameter names.
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 action (add or remove) and resource (documents from workspace embeddings). It is specific and distinct from sibling tools like upload_document or update_workspace.
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, or when to add vs remove. Lacks context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workspaceD
Update workspace settings
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| name | No | ||
| openAiTemp | No | ||
| openAiHistory | No | ||
| systemPrompt | No | ||
| similarityThreshold | No | ||
| topN | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose any behavioral traits such as side effects, authorization requirements, reversibility of changes, or rate limits. As a mutation tool (update), transparency about these aspects is critical, and the description provides nothing beyond the action verb.
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 (3 words) but at the expense of useful content. It is under-specified rather than efficiently conveying essential information. While brevity is generally positive, here it fails to serve the tool's complexity.
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 complexity (7 parameters, no output schema, no annotations), the description is severely incomplete. It omits any information about return values, error handling, side effects, or parameter constraints, making it inadequate for an agent to use the 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?
The input schema has 0% description coverage for its 7 parameters, and the description does not explain any parameter beyond the schema's type and required status. For example, the meaning of 'openAiTemp', 'similarityThreshold', or 'systemPrompt' is left unstated, requiring the agent to infer from context.
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 'Update workspace settings' is a near-verbatim restatement of the tool name 'update_workspace', providing no additional specificity. It fails to distinguish the tool from other sibling tools like create_workspace or delete_workspace beyond the verb 'update', and does not elaborate on which settings are affected.
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 such as create_workspace, delete_workspace, or get_workspace. There is no mention of prerequisites, conditions, or exclusions, leaving the agent to infer usage context entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_documentC
Upload a document to a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | ||
| filePath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, so the description must carry the full burden. It only states 'Upload a document' without disclosing whether documents can be overwritten, what happens on success (e.g., returns document ID), or required permissions. This is insufficient for an agent to understand 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 one sentence, which is concise but overly minimal. It does not waste words, but it fails to provide essential details, making it less effective.
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 schema coverage, lack of output schema, and two required parameters, the description is severely incomplete. It omits critical context like file size limits, overwrite behavior, and return value, leaving the agent uncertain about usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter ('workspace' or 'filePath'). The agent has no clue about expected formats, such as file path syntax or workspace identifier type.
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 the verb ('Upload') and resource ('document to a workspace'), making the basic action clear. However, it does not differentiate from sibling tools like 'list_workspace_documents' or 'create_workspace', leaving ambiguity about scope.
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 (e.g., 'list_workspace_documents' for reading). There is no mention of prerequisites like workspace existence or file constraints.
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.
17 tool updates
v1.0.0- First observed
chat - First observed
check_token - First observed
create_workspace - First observed
delete_thread - First observed
delete_workspace - First observed
generate_api_key - First observed
get_system_env - First observed
get_thread - First observed
get_workspace - First observed
list_threads - First observed
list_workspace_documents - First observed
list_workspaces - First observed
openai_chat_completion - First observed
stream_chat - First observed
update_embeddings - First observed
update_workspace - First observed
upload_document
TDQS
Scored across 17 tools
All tools target distinct operations: chat, workspace, thread, document, and admin functions. Chat variants (chat, stream_chat, openai_chat_completion) differ by mode, and workspace/thread/document tools have clear boundaries.
Most tools follow verb_noun pattern in snake_case (e.g., create_workspace, list_threads). A few like 'chat' and 'openai_chat_completion' deviate slightly, but overall naming is predictable.
17 tools cover workspace, document, thread, chat, and admin operations without feeling excessive. The scope matches the server's purpose well.
CRUD operations are present for workspaces and threads (though thread creation is implicit via chat). Document management includes upload, listing, and embedding updates. Missing explicit delete document but covered via update_embeddings.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that provides tools to interact with the LiteLLM proxy API, enabling LLM completions, embeddings, image generation, and admin operations.7 npmMIT
- AlicenseAqualityDmaintenanceEnables MCP-compatible clients to interact with AnythingLLM, providing tools for workspace management, chat and thread operations, document operations, vector search, and system inspection.346MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for Rocket.Chat, enabling AI agents to interact with Rocket.Chat workspaces via tools like listing users, sending messages, and managing channels.2-
- AlicenseAqualityBmaintenanceEnables managing and controlling AnythingLLM instances through MCP, providing tools to list, create, and delete workspaces, retrieve system environment settings, and get vector counts.51MIT