Tools Reference
The Tandem Engine tool registry currently exposes the following tools.
File Operations
read: Read file contents.- Input:
path(string)
- Input:
write: Write file contents (overwrites).- Input:
path(string),content(string)
- Input:
edit: String replacement in a file.- Input:
path(string),old(string),new(string)
- Input:
glob: Find files by pattern.- Input:
pattern(string, e.g.,src/**/*.rs)
- Input:
For coding tasks, agents usually read first, use edit for narrow replacements, write for new or rewritten files, and apply_patch when the change is easier to review as a unified diff.
Search
grep: Regex search in files.- Input:
pattern(string),path(string, root directory)
- Input:
websearch: Search the web (powered by Exa.ai).- Input:
query(string),limit(integer)
- Input:
codesearch: Semantic code search (if configured).memory_list: List stored memory records/chunks from the current session, project, or global scope.- Input: optional scope controls such as
tier,session_id,project_id,limit,allow_global
- Input: optional scope controls such as
memory_search: Search memory by query across the current session, project, or global scope.- Input:
queryplus optional scope controls such astier,session_id,project_id,limit,allow_global
- Input:
memory_store: Persist content into session, project, or global memory.- Input:
contentplus optional scope and metadata such astier,session_id,project_id,source,metadata,allow_global
- Input:
memory_delete: Delete a stored memory record/chunk within the current allowed scope.- Input:
chunk_id(orid) plus optional scope controls such astier,session_id,project_id,allow_global
- Input:
Web
webfetch: Fetch URL and return structured Markdown/JSON output.- Input:
url(string), optionalmode,return,max_bytes,timeout_ms,max_redirects
- Input:
webfetch_html: Fetch URL and return raw HTML text.- Input:
url(string), optionalmax_bytes,timeout_ms,max_redirects
- Input:
System
bash: Run shell commands (PowerShell on Windows, Bash on Linux/Mac).- Input:
command(string)
- Input:
mcp_list: List the configured and connected MCP servers and their discovered tools.- Input: none
- Use this first when an agent needs to discover MCP access.
- It returns a structured inventory in one result, which keeps the agent from carrying a full MCP tool dump in context unless it actually needs one.
- If the needed server or tool is missing, stop and tell the user to add or connect the MCP instead of inventing a capability.
- If a workflow request depends on an unavailable MCP, the right response is to ask for that MCP, not to silently switch to a different tool.
mcp_list_catalog: List the embedded MCP catalog with connection overlay for gap analysis.- Input: none
- Use this after
mcp_listwhen you need to distinguish connected, cataloged, disabled, and uncataloged servers.
mcp_request_capability: Request human approval for an MCP capability gap without attempting to connect or execute it directly.- Input:
agent_id(string),mcp_name(string), optionalcatalog_slug(string),rationale(string), optionalrequested_tools(array of strings), optionalcontext(object), optionalexpires_at_ms(integer) - Use this to file an approval request when the required MCP is not connected or is uncataloged.
- Edition note: this keeps the same tool name in OSS builds, but can return an explicit premium-feature error when managed governance is unavailable.
- Input:
mcp_debug: Call an MCP tool directly by URL.- Input:
url(string),tool(string), optionalargs(object),headers(object),timeout_ms(integer),max_bytes(integer) - Use this when you already know the MCP server URL and the tool name you want to invoke.
- This tool does not discover tools or search the registry; it only calls a named MCP tool.
- Input:
todo_write: Update the Todo/task list.- Aliases:
todowrite,update_todo_list
- Aliases:
task: Update the current task status.question: Ask a structured question to the user and wait for input.spawn_agent: Spawn an agent-team worker instance (runtime/policy gated).- Input: mission/spawn payload (e.g.,
missionID,role,templateID,source)
- Input: mission/spawn payload (e.g.,
teamcreate: Create/register an agent-team context for coordinated teammate tasks.- Input: team metadata (e.g.,
team_name,description,agent_type)
- Input: team metadata (e.g.,
taskcreate: Create teammate task records in a team context.- Input: task payload (e.g.,
team_name,name,description)
- Input: task payload (e.g.,
taskupdate: Update teammate task status/notes/progress in a team context.- Input: task update payload (e.g.,
team_name,task_id,status,notes)
- Input: task update payload (e.g.,
tasklist: List tasks for a team context.- Input: optional filters (e.g.,
team_name, status filter)
- Input: optional filters (e.g.,
sendmessage: Send mailbox-style message/task prompt to one or more teammates.- Input: message payload (e.g.,
team_name,to,content,summary)
- Input: message payload (e.g.,
MCP Discovery Endpoints
These are HTTP endpoints, not engine tools:
mcp_list- Engine tool that returns the current MCP inventory snapshot.GET /mcp/tools- List discovered tools from connected MCP servers.GET /tool/ids- List all engine tool IDs, including built-ins and MCP tools.
If you need to find a tool by keyword, fetch one of those lists and filter locally. Tandem does not provide a separate public “search the installed registry” endpoint, but mcp_list does give the agent a structured inventory of connected servers and tools, which is the lower-context first step before selecting a specific MCP tool.
Specialized
skill: Execute a skill.apply_patch: Apply a unified diff patch.batch: Execute multiple tools in a batch.lsp: Interact with the Language Server Protocol.