DollhouseMCP
Server Quality Checklist
Latest release: v2.0.41
- Disambiguation4/5
The five top-level tool names create/read/update/delete/execute map to clearly distinct CRUD-style actions, so misselection between tools is generally unlikely. However, mcp_aql_read is not truly read-only (it includes activate_element, deactivate_element, open_portfolio_browser, and permission_prompt), and mcp_aql_create bundles auth and deadlock operations, creating minor boundary ambiguity.
Naming Consistency4/5Tool names follow a highly consistent mcp_aql_<verb> pattern, and most sub-operations use verb_noun snake_case. The pattern is not perfect because a few operations like addEntry, portfolio_element_manager, and beetlejuice_beetlejuice_beetlejuice break convention.
Tool Count4/5Five tools is a reasonable surface size and maps neatly to a CRUD-plus-execution lifecycle. The count is slightly coarse for the server's actual breadth because each tool is a mega-router exposing dozens of operations, especially mcp_aql_read.
Completeness4/5The set covers element CRUD, execution lifecycle, auth/OAuth, collections, portfolio, logs/metrics, and self-discovery, so most workflows have a path. Minor lifecycle edges such as explicitly removing from a portfolio/collection or listing all executions are not clearly surfaced, but they are not critical dead ends.
Average 4.6/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 1 community issues answered or closed in the last 6 months
- 146 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under AGPL 3.0.
This repository includes a README.md file.
Tools from this server were used 2 times in the last 30 days.
This repository includes a glama.json configuration file.
This server has been verified by its author.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive behavior, and the description adds specificity: 'potentially overwriting previous values' and the memory append-only constraint. This tells the agent what is at risk and for which element types the operation is unsafe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The summary is front-loaded and information-dense. The quick-start examples are numerous but each demonstrates a different element type or operation, and every section has a clear purpose. Slightly longer than minimal, but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition covers operation types, element types, limitations, examples, and discovery. It doesn't define upgrade_element beyond its name or describe batch execution, but the input schema handles the batch property and the introspection pointer compensates for per-operation requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema description coverage is 100%, the schema descriptions are generic. The tool description adds concrete operation values, element types, and multiple nested-parameter examples, and it recommends introspection to discover required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a clear modifying/overwrite action, and the supported operations and element types are enumerated. It is plainly differentiated from siblings by being the update tool, and the memory note even routes CREATE operations away.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells agents not to use edit_element on memories and points to addEntry (CREATE) as the correct alternative. It also instructs agents to use mcp_aql_read for introspecting required parameters. It doesn't spell out all create/delete routing, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint=false and destructiveHint=false. The description adds substantial behavioral detail: operations are non-destructive and additive; record_execution_step appends records and returns an autonomy object with continue, factors, and notifications; batch operations execute sequentially; and markdown content must be JSON-escaped. This goes well beyond the annotations and is consistent with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well organized into clear sections: core scope, element types, quick start examples, execution lifecycle, import/portfolio, auth, batch operations, and introspection. It is front-loaded with the most important semantic constraint. Some examples could be trimmed, but the length is largely justified for a multi-operation facade tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex polymorphic tool with a thin schema, no output schema, and a large set of operations. The description covers operation categories, element types, parameter discovery, batch behavior, and the response flow for the lifecycle operation. It does not explain return shapes for most operations, but given the breadth and the explicit pointer to mcp_aql_read for discovering formats, the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, but the descriptions are generic ('Operation parameters', 'Operation name to execute'). The tool description compensates by listing valid operation names, giving concrete params examples for create_element, addEntry, record_execution_step, and portfolio operations, and explaining the operations array for batch execution. It does not document every operation's full parameter set, but it explicitly directs the agent to use mcp_aql_read for introspection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Additive, non-destructive operations' and immediately enumerates the supported operations and element types. It clearly states that these operations add new data without removing or overwriting existing content, which differentiates this tool from its update/delete/execute siblings even without seeing their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong usage context: it distinguishes additive operations from non-additive ones, provides examples for common operation classes, and explicitly directs the agent to mcp_aql_read for discovering required parameters and element format specs. It also frames record_execution_step as the expected follow-up after mcp_aql_execute. It does not enumerate every 'when not to use' scenario relative to siblings, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint=true annotation, the description adds substantial behavioral context: the operations remove data, should be gated by human approval, and should not be auto-allowed. The security warning about bypassing the per-operation confirmation gate is exactly the kind of risk disclosure that helps an agent invoke this tool safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and lists supported operations and element types before moving to caution and examples. There is minor redundancy ('Destructive operations that remove data' vs 'These operations remove data'), and the security warning is long, but it is important and all sections serve a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-operation destructive tool with no output schema, the description covers scope, examples, security expectations, and a clear path to discover required parameters via mcp_aql_read. It doesn't describe return values or every operation's exact parameters, but the introspection instruction fills the most important gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% property description coverage, but the description adds value by showing concrete payloads like { operation: 'delete_element', element_type: 'persona', params: { element_name: 'Old-Persona' } } and by instructing the agent to introspect for per-operation parameters. It does not enumerate every operation's required params, but the discovery mechanism compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description is explicit: 'Destructive operations that remove data' names the verb and resource, then enumerates supported operations (delete_element, clear, clear_github_auth) and element types. This clearly distinguishes it from the sibling create/read/update/execute tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear when this tool applies: when data must be removed, with caution and explicit human approval. It points to mcp_aql_read for discovering required parameters, but it doesn't explicitly state when to prefer non-destructive sibling tools like mcp_aql_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a firm read-only guarantee beyond the annotations and provides useful contextual guidance, such as reusing element_name for execution-state reads and retrying with the same agent name rather than inventing a new one. However, some listed operations (activate_element, deactivate_element, permission_prompt) sound like state changes or side effects, and the description does not clarify why they are safe/read-only, which creates mild ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, but the tool genuinely supports many operations, and the length is justified by sectioned examples and quick-start templates. It front-loads the key safety property and then organizes content into logical categories. Some repetition across quick-start and element-operation examples could be trimmed, but it remains navigable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-operation read facade with no output schema, the description is remarkably complete: it covers all operation categories, gives representative examples, names supported element types, explains retry behavior, and even includes memory-specific tag filtering and convert_skill_format examples. An agent has enough information to select and invoke the right operation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only generic descriptions ('Operation parameters', 'Operation name to execute'), but the description supplies concrete parameter shapes for dozens of operations, including nested params like filters, variables, goalId, type, and query. This goes far beyond the schema and materially helps an agent construct valid invocations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Safe, read-only operations' and explicitly catalogues the full set of supported operations, element types, and categories. It clearly identifies this as the read-only tool among the create/update/delete/execute siblings, so an agent can distinguish it at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly frames when to use the tool: any read-only query or inspection, with the explicit statement 'These queries only read data and never modify server state.' It does not explicitly name sibling tools or say 'for writes use mcp_aql_create', but the read-only framing gives clear context without being misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description goes far beyond that by disclosing that executions are potentially destructive, non-idempotent, and require human approval. It even warns against auto-allowing the endpoint in Claude Code settings, preserving a security checkpoint that is not inferable from annotations. It also discloses execute_agent's return fields and abort semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but appropriately structured for the complexity: purpose, supported operations, security warning, canonical loop, and quick-start examples. Each section contributes non-redundant information an agent cannot get from annotations or the schema. Important constraints like 'continue_execution is not the normal next call' are front-loaded in the workflow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given eight operations, a destructive/non-idempotent profile, nested params, and no output schema, the description is remarkably complete. It covers the full lifecycle, gatekeeper approval flow, CLI permission approval, handoff serialization and validation, abort behavior, and the exact return fields of execute_agent. It also tells the agent where to look for remaining parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for top-level parameters, so the baseline is 3. The description adds meaningful per-operation parametrization through concrete examples (element_name, parameters, objective, outcome, request_id, decision, handoff_block, previousStepResult). It does not exhaustively document every nested param, but it tells the agent to use mcp_aql_read introspect to discover required parameters, which is an acceptable complement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific, accurate statement: 'Execution lifecycle operations for executable elements (agents, workflows, pipelines).' It enumerates all eight supported operations and explicitly contrasts Execute operations with the CRUD siblings, so an agent can distinguish mcp_aql_execute from mcp_aql_create/read/update/delete without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The canonical loop provides a precise execution sequence: execute_agent first, then record_execution_step via mcp_aql_create, then continue or complete. It explicitly warns that continue_execution is not the normal next call after execute_agent and should only be used when resuming a paused goal with the same parameters. It also points to mcp_aql_read for introspecting required parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/DollhouseMCP/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server