Skip to main content
Glama

mcp_aql_read

Read-only

Query personas, skills, templates, agents, and memories with safe read-only operations. Inspect collections, portfolio, execution state, logs, metrics, and permissions without altering server state.

Instructions

Safe, read-only operations.

Supported operations: activate_element, open_portfolio_browser, open_logs, open_metrics, open_permissions, open_setup, permission_prompt, evaluate_permission, get_effective_cli_policies, get_permission_authority, get_pending_cli_approvals, search, list_elements, get_element, get_element_details, search_elements, query_elements, get_active_elements, validate_element, render, export_element, deactivate_element, introspect, get_capabilities, get_execution_state, get_gathered_data, browse_collection, search_collection, search_collection_enhanced, get_collection_content, get_collection_cache_health, portfolio_status, portfolio_config, search_portfolio, search_all, check_github_auth, oauth_helper_status, dollhouse_config, convert_skill_format, get_build_info, get_cache_budget_report, query_logs, query_metrics, find_similar_elements, get_element_relationships, search_by_verb, get_relationship_stats

Element types: persona, skill, template, agent, memory, ensemble

These queries only read data and never modify server state.

Quick start examples: { operation: "list_elements", element_type: "persona" } { operation: "get_active_elements", element_type: "persona" } { operation: "search_elements", params: { query: "creative" } } { operation: "get_element", element_type: "memory", params: { element_name: "session-notes" } }

Element operations: { operation: "activate_element", element_type: "persona", params: { element_name: "Default" } } { operation: "deactivate_element", element_type: "persona", params: { element_name: "Default" } } { operation: "get_element_details", element_type: "skill", params: { element_name: "code-review" } } { operation: "query_elements", element_type: "persona", params: { filters: { category: "creative" } } } { operation: "validate_element", element_type: "agent", params: { element_name: "task-planner" } } { operation: "render", params: { element_name: "meeting-notes", variables: { date: "2026-03-03" } } } { operation: "export_element", element_type: "persona", params: { element_name: "Tech-Writer" } } { operation: "open_portfolio_browser" } { operation: "open_logs" } { operation: "open_metrics" } { operation: "open_permissions" } { operation: "open_setup" }

Memory-specific search (filter by tags): { operation: "search", params: { query: "*", type: "memory", filters: { tags: ["important"] } } }

Execution lifecycle — read-only queries: { operation: "get_execution_state", params: { element_name: "code-reviewer" } } { operation: "get_gathered_data", params: { element_name: "code-reviewer", goalId: "goal-id" } } For execution-state reads, reuse the same element_name you passed to execute_agent. If element_name is missing, retry with the same agent name rather than inventing a new one.

Collection: { operation: "browse_collection", params: { section: "personas" } } { operation: "search_collection", params: { query: "creative" } } { operation: "search_collection_enhanced", params: { query: "creative", page: 1 } } { operation: "get_collection_content", params: { element_type: "persona", element_name: "Creative-Writer" } } { operation: "get_collection_cache_health" }

Portfolio: { operation: "portfolio_status" } { operation: "portfolio_config" } { operation: "search_portfolio", params: { query: "creative" } } { operation: "search_all", params: { query: "creative" } }

System: { operation: "dollhouse_config" } { operation: "get_build_info" } { operation: "get_cache_budget_report" } { operation: "query_logs", params: { level: "error", limit: 10 } } { operation: "query_metrics" } { operation: "query_metrics", params: { names: ["system.memory.*"], type: "gauge" } } { operation: "convert_skill_format", params: { direction: "agent_to_dollhouse", agent_skill: { "SKILL.md": "---\nname: my-skill\ndescription: test\n---\n\nUse this skill." } } } { operation: "convert_skill_format", params: { direction: "agent_to_dollhouse", security_mode: "warn", path_mode: "lossless", agent_skill: { "SKILL.md": "---\nname: my-skill\ndescription: test\n---\n\nUse this skill." } } } { operation: "convert_skill_format", params: { direction: "dollhouse_to_agent", path_mode: "lossless", dollhouse_markdown: "---\nname: my-skill\ndescription: test\ninstructions: Use this skill.\n---\n\n### binaries/logo.png\n(binary link: ./skills/binaries/logo.png)" } }

Auth: { operation: "check_github_auth" } { operation: "oauth_helper_status" }

Gatekeeper & CLI policies: { operation: "permission_prompt", params: { tool: "Bash", prompt: "run npm test" } } { operation: "evaluate_permission", params: { tool_name: "Bash", input: { command: "git status" }, platform: "claude_code" } } { operation: "get_effective_cli_policies" } { operation: "get_pending_cli_approvals" } { operation: "get_permission_authority" } { operation: "get_permission_authority", params: { host: "claude-code" } }

Enhanced index: { operation: "find_similar_elements", params: { element_type: "persona", element_name: "Creative-Writer" } } { operation: "get_element_relationships", params: { element_type: "skill", element_name: "code-review" } } { operation: "search_by_verb", params: { verb: "review" } } { operation: "get_relationship_stats" }

Discover all operations and parameters: { operation: "get_capabilities" } { operation: "get_capabilities", params: { category: "Element Lifecycle" } } { operation: "introspect", params: { query: "operations" } }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsNoOperation parameters
operationYesOperation name to execute
operationsNoArray of operations for batch execution
element_typeNoTarget element type (optional)
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

Install Server

Other Tools

Latest Blog Posts

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