Additive, non-destructive operations. Supported operations: create_element, import_element, addEntry, verify_challenge, beetlejuice_beetlejuice_beetlejuice, record_execution_step, install_collection_content, submit_collection_content, init_portfolio, sync_portfolio, portfolio_element_manager, se...
Single-target operation
Part of the DollhouseMCP MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.
AI agents use mcp_aql_create to create or modify resources in DollhouseMCP. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.
Without a policy, an AI agent could call mcp_aql_create repeatedly, creating or modifying resources faster than any human could review. Intercept's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach DollhouseMCP.
Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.
tools:
mcp_aql_create:
rules:
- action: allow
rate_limit:
max: 30
window: 60 See the full DollhouseMCP policy for all 5 tools.
Agents calling write-class tools like mcp_aql_create have been implicated in these attack patterns. Read the full case and prevention policy for each:
Other tools in the Write risk category across the catalogue. The same policy patterns (rate-limit, validate) apply to each.
Additive, non-destructive operations. Supported operations: create_element, import_element, addEntry, verify_challenge, beetlejuice_beetlejuice_beetlejuice, record_execution_step, install_collection_content, submit_collection_content, init_portfolio, sync_portfolio, portfolio_element_manager, setup_github_auth, configure_oauth, import_persona Element types: persona, skill, template, agent, memory, ensemble These operations add new data without removing or overwriting existing content. Quick start examples: { operation: "create_element", element_type: "persona", params: { element_name: "MyPersona", description: "A helpful assistant", instructions: "You ARE a helpful assistant. ALWAYS provide clear, accurate responses." } } { operation: "create_element", element_type: "agent", params: { element_name: "MyAgent", description: "Task executor", instructions: "Execute goals methodically. Report progress at each step.", goal: { template: "Complete: {objective}", parameters: [{ name: "objective", type: "string", required: true }] } } } { operation: "create_element", element_type: "memory", params: { element_name: "session-notes", description: "Session context and notes" } } { operation: "create_element", element_type: "ensemble", params: { element_name: "my-ensemble", description: "Combined element set", metadata: { elements: [{ element_name: "expert", element_type: "persona", role: "primary" }, { element_name: "analysis", element_type: "skill", role: "support" }] } } } Valid ensemble roles: primary, support, override, monitor, core { operation: "addEntry", params: { element_name: "session-notes", content: "Remember this fact", tags: ["important"] } } Note: addEntry content supports markdown (headers, lists, bold, tables, code blocks). Ensure markdown content is properly JSON-escaped — use \n for newlines, \" for quotes, and \\ for backslashes within the JSON string value. Execution lifecycle — record agent progress (appends step records, like addEntry): { operation: "record_execution_step", params: { element_name: "code-reviewer", stepDescription: "Analyzed files", outcome: "success", findings: "Found 3 issues" } } Response flow: record_execution_step returns { autonomy: { continue, factors, notifications? } }. Check autonomy.continue to decide whether to proceed. Check autonomy.notifications for permission_pending (gatekeeper blocks), autonomy_pause, or danger_zone alerts to relay to human operators. Import & portfolio: { operation: "import_element", element_type: "skill", params: { element_name: "code-formatter", data: "..." } } { operation: "import_persona", params: { source: "/path/to/persona.md" } } { operation: "install_collection_content", params: { element_type: "persona", element_name: "Creative-Writer" } } { operation: "submit_collection_content", params: { element_type: "skill", element_name: "code-formatter" } } { operation: "init_portfolio" } { operation: "sync_portfolio" } { operation: "portfolio_element_manager", params: { action: "push", element_type: "persona", element_name: "Tech-Writer" } } Auth & verification: { operation: "setup_github_auth" } { operation: "configure_oauth", params: { client_id: "your-client-id" } } { operation: "verify_challenge", params: { code: "ABC123" } } { operation: "beetlejuice_beetlejuice_beetlejuice" } Batch operations: Use the operations array to execute multiple operations sequentially in a single request. { operations: [{ operation: "addEntry", params: { element_name: "log", content: "Step 1" } }, { operation: "addEntry", params: { element_name: "log", content: "Step 2" } }] } Discover required parameters — use mcp_aql_read: { operation: "introspect", params: { query: "operations", name: "create_element" } } Discover element format specs (required fields, syntax, examples) — use mcp_aql_read: { operation: "introspect", params: { query: "format", name: "template" } }. It is categorised as a Write tool in the DollhouseMCP MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
Add a rule in your Intercept YAML policy under the tools section for mcp_aql_create. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the DollhouseMCP MCP server.
mcp_aql_create is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the mcp_aql_create rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the Intercept policy for mcp_aql_create. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
mcp_aql_create is provided by the DollhouseMCP MCP server (@dollhousemcp/mcp-server). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Open source. One binary. Zero dependencies.
npx -y @policylayer/intercept