MCP Server for AnythingLLM - Workspace, Chat, Document, and System management
The server implements 15 tools with explicit schema registration via the MCP SDK. Most tools have descriptions and parameter schemas present. However, several tools lack comprehensive parameter documentation, output schemas are not explicitly documented, and error handling guidance is minimal. The server follows basic naming conventions (verb_noun) and includes tool annotations. Main weaknesses: parameter descriptions are often generic or missing ('slug' is described minimally); output schemas are undocumented; error responses don't guide recovery; no pagination guidance for list tools; no confirmation step for destructive operations.
Add documents to a workspace by providing URLs or raw content.
Send a message to a workspace and get a response, optionally specifying chat mode and thread.
Verify that the API key is valid and AnythingLLM is reachable.
Create a new workspace.
Permanently delete a thread and all its messages.
Permanently delete a workspace. This action cannot be undone.
Output schemas are not documented. Tools return JSON responses via _json_response() without explicit schema declarations. LLMs cannot plan downstream tool calls or extract structured data reliably.
Destructive tools (anythingllm_delete_workspace, anythingllm_delete_thread) lack confirmation/dry-run mechanisms. No guidance in descriptions that these are irreversible. Agents can accidentally delete resources without safeguards.
List tools (anythingllm_list_workspaces, anythingllm_list_documents, anythingllm_list_threads) lack pagination parameters (limit, offset/cursor). No guidance on result limits or handling large datasets. Responses could blow context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Retrieve system-wide settings (LLM provider, embedding model, version, etc.).
Get detailed information about a specific thread.
Get detailed information about a specific workspace.
List all documents in a workspace.
List all threads (conversations) in a workspace.
List all workspaces in the AnythingLLM instance with their slugs, settings, and thread info.
Remove a document from a workspace.
Update system settings. Only fields provided are updated.
Update workspace settings (name, temperature, prompt, similarity threshold, etc.).
Parameter descriptions are minimal. 'slug' is described as 'Workspace slug (e.g. papers, lands)' but LLMs don't know: is this required? case-sensitive? alphanumeric-only? Example values in descriptions risk literal reuse.
Error handling returns generic error messages without recovery guidance. E.g., 'Error: Request timed out' doesn't tell the LLM whether to retry, check configuration, or ask the user. No categorization of retryable vs fatal errors.
The 'openAiHistory' parameter in anythingllm_update_workspace is poorly named and described. Does it mean 'number of previous messages' or 'token count'? Description says '0-100' but unclear what unit. LLMs will guess.
anythingllm_add_documents accepts either 'urls' or 'content' but doesn't enforce that at least one is provided. Neither is marked required, but logically both can't be empty. Parameter relationship not documented.