Tools & MCP Server Reference¶
This page is a complete listing of every built-in tool and MCP server in Quincy, along with their risk levels. Use this as a reference when deciding what each agent — or external client — should be allowed to access.
Risk Levels¶
Every tool has a risk level that determines whether it needs user approval before running:
| Risk Level | Meaning |
|---|---|
| readOnly | Only reads data. Never modifies anything. |
| write | Creates or modifies data (files, configs, API calls). This is the default for tools that don't declare a level. |
| destructive | Irreversible or high-impact changes (deletes, drops, etc.). |
Tool instances (like email and MCP bridges) can have an approval policy — a set of rules that control whether each tool call is allowed automatically, requires user approval, or is blocked entirely. When a call requires approval, you're asked to confirm before it runs.
Built-in Tools¶
These tools are available to every agent unless restricted by its tool policy. For developer documentation on any tool, see the CreatingTools article in the API reference.
Model Management¶
| Tool | Risk Level | What It Does |
|---|---|---|
current_model |
readOnly | Reports which model and provider the agent is currently using |
use_model |
write | Temporarily switches to a different model for the current session (not persisted). Blocked if the agent's model config is locked. Supports cross-provider switching via provider_type or provider slug |
set_default_model |
write | Permanently changes the default model for an agent. Can target other agents by name |
list_models |
readOnly | Lists all models available from all configured providers, grouped by provider type |
Provider Management¶
| Tool | Risk Level | What It Does |
|---|---|---|
list_providers |
readOnly | Lists all configured LLM providers with their name, slug, type, and base URL |
add_provider_strict |
write | Adds a new LLM provider with strict parameter ordering. API keys are collected securely and stored in the Keychain. Validates Anthropic API keys before saving |
add_provider_flexible |
write | Adds a new LLM provider with flexible parameter ordering. Uses a discovery-based flow for provider-specific secrets |
replace_provider |
write | Replaces an existing LLM provider's configuration. Same as add_provider_strict but allows overwriting an existing slug |
Agent Management¶
| Tool | Risk Level | What It Does |
|---|---|---|
list_agents |
readOnly | Lists all registered agents with their names, models, and descriptions |
agent_info |
readOnly | Shows metadata about the current agent (name, identifier, and app name) |
create_agent |
write | Creates a new agent configuration. Supports ephemeral and persistent agents, optional model preferences, pool tool discovery via tags, and conversational/isolated/stateless flags |
delete_agent |
destructive | Deletes a user-created agent by identifier. Only agents with a user.* prefix can be deleted |
get_agent_prompt |
readOnly | Reads an agent's system prompt. Respects prompt protection settings — locked or hidden prompts are not readable |
set_agent_prompt |
write | Updates and re-signs an agent's system prompt. Blocked if the agent's prompt protection is locked or hidden |
probe_agent |
readOnly | Lightweight capability check — asks a sibling agent if it can answer a question without executing any tools or full delegation. Used by the research agent during request_assistance dispatch |
Tool Management¶
| Tool | Risk Level | What It Does |
|---|---|---|
list_available_tools |
readOnly | Lists all tools available in the system, grouped by source. Shows built-in tools with their tags, and MCP server tools grouped by server name. Use this before apply_tool_policy to discover exact tool names |
apply_tool_policy |
write | Adds or removes approval policy rules on a tool instance with validation. Rules use glob patterns and can include argument-level predicates and agent scoping. Detects no-op rules (shadowed by more-restrictive existing rules) and rejects them with corrective steps. Changes are persisted and hot-reloaded immediately |
apply_agent_policy |
write | Apply or update an agent-level tool visibility policy |
validate_policy |
readOnly | Check whether a policy configuration is valid |
get_tool_info |
readOnly | Looks up the display name and type for a tool instance by its slug. Used internally to resolve tool identifiers to human-readable names in approval prompts |
Filesystem¶
| Tool | Risk Level | What It Does |
|---|---|---|
list_directory |
readOnly | Lists contents of a directory. Directories are suffixed with /. Skips hidden files |
read_file |
readOnly | Reads the text contents of a file |
Email Account Management¶
| Tool | Risk Level | What It Does |
|---|---|---|
list_email_accounts |
readOnly | Lists all configured email accounts with their connection status, IMAP/SMTP hosts, and display names |
add_email_account |
write | Adds a new email account with DNS SRV autodiscovery of IMAP/SMTP settings, Keychain password storage, and IMAP connection validation. Hot-reloads the MCP server immediately |
update_email_account |
write | Modifies an existing email account's settings. Supports partial updates — only provided fields are changed; others are preserved |
remove_email_account |
destructive | Removes an email account: tears down the MCP server, deletes the config directory, and removes the Keychain entry |
Memory¶
| Tool | Risk Level | What It Does |
|---|---|---|
save_to_memory |
write | Saves information to persistent memory for recall in future sessions. Supports scoping (global, agent, session), tags, source tracking, priority, and optional TTL. Deduplicates by content hash |
search_memory |
readOnly | Searches persistent memory by full-text query. Supports filtering by tags, scope, and result limit (default 10, max 50). Returns matching entries with content, tags, and freshness status |
flag_for_memory |
readOnly | Flags the current conversation moment as worth remembering. Triggers the background memory curator to extract and save noteworthy information. Available to the orchestrator only |
Secret Handling¶
| Tool | Risk Level | What It Does |
|---|---|---|
secure_input |
readOnly | Collects a secret (API key, token, password) from the user without exposing it to the LLM. Returns an opaque handle that other tools can use. If the same slot was already collected, returns the cached handle without re-prompting |
reset_secret |
readOnly | Clears a cached secret so the user is re-prompted on the next tool call that needs it. Use when a previously entered secret was wrong |
Utility¶
| Tool | Risk Level | What It Does |
|---|---|---|
random_number |
readOnly | Generates a random integer within a given range (default 0–1000) |
random_choice |
readOnly | Picks a random item from a list |
random_shuffle |
readOnly | Returns a list in randomized order |
random_string |
readOnly | Generates a random string of a given length. Supports ascii (printable characters, default), alphanumeric, hex, and base64 character sets |
Scheduling¶
| Tool | Risk Level | What It Does |
|---|---|---|
create_job |
write | Creates a scheduled job that runs an agent on a cron schedule. Requires a name, cron expression, and goal (the instruction sent to the agent). Supports optional timeout and enable/disable toggle |
Conversation Control¶
| Tool | Risk Level | What It Does |
|---|---|---|
self_terminate |
readOnly | Lets a conversational sub-agent hand control back to its parent. The agent provides a summary of what it accomplished and the orchestrator resumes. Only available to sub-agents |
request_assistance |
readOnly | Requests help when information is missing. Suspends the agent's ReAct loop, dispatches a transient research agent, and injects the result back into the conversation. Only available to conversational sub-agents |
Sub-agent Delegation (Dynamic)¶
These tools are generated automatically when the orchestrator discovers sub-agents. They are not affected by tool policy — use agent isolation settings to control sub-agent visibility instead.
| Tool Pattern | Risk Level | What It Does |
|---|---|---|
call_<name> |
write | Delegates a query to a non-conversational sub-agent and returns the result |
call_<name> (conversational) |
write | Hands the conversation to a conversational sub-agent. The user interacts with the child directly until it terminates |
Client-Side Context Tools¶
These tools run on the connected client device (Mac, iPhone, CLI), not on the server. The server routes requests to the client, which executes them locally and sends back the result. Available platforms vary by tool.
| Tool | Risk Level | Platforms | What It Does |
|---|---|---|---|
contact_search |
readOnly | CLI, Mac, iOS | Searches contacts by name, email, or phone. Supports field selection (e.g. only phone numbers, only emails) for focused results. Query "me" for your own info stored on the device |
calendar_events |
readOnly | Mac, iOS | Queries calendar events within a date range (up to 25 events). Supports optional text filtering on event title |
reminders |
write | Mac, iOS | Lists, creates, and completes iCloud Reminders. Three actions: list (with optional list filter), create (with title and optional list), complete (by reminder ID) |
device_location |
readOnly | Mac, iOS | Gets the device's current GPS location with reverse geocoding (city, state, country) |
MCP Tool Wrappers (Dynamic)¶
When an agent connects to an MCP server, each exposed tool is wrapped as a Quincy tool. The naming depends on how the tools are registered:
| Wrapper | Name Pattern | When Used |
|---|---|---|
| Individual tool | mcp_<server>_<tool> |
Tool Curator marked it as high-value, or no curation configured |
| Grouped wrapper | mcp_<server> |
Tool Curator grouped secondary tools under a single entry to reduce context usage |
For externally-exposed MCP endpoints, tool names are unprefixed — external clients see the raw tool name without the mcp_<server>_ prefix.
Built-in MCP Servers¶
Quincy ships with built-in MCP servers that run in-process (no external binary or network connection). These are registered automatically at startup.
| Server Name | Display Name | Access | What It Provides |
|---|---|---|---|
quincy-docs |
Quincy Documentation | Read-only | Quincy's public documentation as MCP resources. Exposes a single read_docs tool that retrieves doc pages by topic (pass "list" to see all topics). Also exposes each doc as an MCP resource |
web |
Web Tools | Prompt (default) | Web search and fetch capabilities. Exposes web_search and web_fetch tools with SSRF prevention, rate limiting, and HTML-to-markdown conversion |
Tool Instance MCP Servers¶
Tool instances you create are registered as in-process MCP servers at startup. Each instance gets its own server name matching its configured name.
| Tool Type | Tools Provided | Description |
|---|---|---|
email |
list_mailboxes, get_mailbox, search, get_email, get_headers, move_email, flag_email, create_draft, send_email, delete_email |
IMAP/SMTP email access. Each instance connects to one email account. Passwords are stored securely in the macOS Keychain |
mcp-bridge |
Varies (depends on the bridged server) | Wraps an external MCP server and exposes its tools through the pool. Supports two transports: stdio (spawns a subprocess, communicates via stdin/stdout) and http (connects to a remote server over Streamable HTTP with optional bearer auth). You can control which tools are visible, add tags for pool-based discovery, and set approval policies |
rest-api |
Varies (one tool per API operation) | Wraps an OpenAPI/Swagger spec as a set of MCP tools — one tool per operation. Supports bearer auth (with optional token refresh), custom headers, tool filtering by operation name pattern, and tags for pool-based discovery. Use the Tool Creator to set one up from a URL |
Web Tools MCP Server¶
The built-in web MCP server provides web research capabilities. It runs in-process and is registered automatically at startup.
| Tool | Risk Level | What It Does |
|---|---|---|
web_search |
prompt | Searches the web and returns a list of results with titles, URLs, and snippets |
web_fetch |
prompt | Fetches a URL and converts the HTML to markdown. Includes SSRF prevention (blocks private IPs), per-domain rate limiting, and response size limits |
Both web tools require user approval before execution by default. Agents need to be configured with access to the web server (via pool tags or direct MCP server assignment) to use them.
Built-in MCP servers can also be exposed to external agents through the scoped MCP registry — see Exposing Quincy's Tools as MCP Servers for details.
Tool Policies¶
When an agent calls a tool, Quincy checks two layers of policy. First, agent-level policies control whether the agent can even see the tool. Then, tool-level policies control what happens when the tool is invoked.
flowchart TD
Call[Agent calls tool] --> AgentPolicy{Agent-level policy}
AgentPolicy -->|Hidden| Blocked[Tool not available]
AgentPolicy -->|Visible| ToolPolicy{Tool-level policy}
ToolPolicy -->|Allow| Run[Tool executes]
ToolPolicy -->|Deny| Denied[Call rejected]
ToolPolicy -->|Prompt| Approval{Your decision}
Approval -->|Approve| Run
Approval -->|Deny| Denied
Approval -->|Deny with note| Redo[Agent retries with feedback]
Approval -->|Always allow| Remember[Remembered + executes]
Each agent can have a tool policy that controls which tools it's allowed to use. Policies use pattern-matching rules with three possible effects:
- Allow — the tool runs without asking
- Prompt — the user is asked to approve each call (with rich context showing what the tool wants to do)
- Deny — the tool is blocked entirely
Rules match tool names using glob patterns (e.g., read_* matches read_file, read_docs, etc.) and can include argument-level restrictions — for example, allowing move_email only when the destination is "Archive" or "Trash".
When multiple rules match, the most restrictive one wins: deny beats prompt, prompt beats allow. If no rules match, a default effect applies.
When a tool call requires approval, you can:
- Approve — allow this specific call
- Deny — block this specific call
- Deny with note — deny the tool call and provide instructions; the agent redoes the call incorporating your feedback
- Always allow — approve and remember this decision permanently (persists across sessions and restarts)
Sub-agent delegation tools (like call_tasks) are not affected by tool policies. Use agent isolation settings to control which sub-agents an agent can see.
Exposed MCP Tools¶
The scoped MCP registry controls which tools external agents (like Claude Code or Cursor) can access. Each exposed server has a list of tool name patterns controlling what's visible. Servers not in the registry are completely hidden from external agents. See Exposing Quincy's Tools as MCP Servers for details.