Skip to content

Built-in Tools

MindRoom includes 100+ built-in tool integrations organized by category.

File & System

Icon Tool Description Config Required
file Read, write, list, search, and manage local files -
shell Execute shell commands base_dir (optional), extra_env_passthrough (optional), shell_path_prepend (optional)
docker Manage Docker containers and images -
python Execute Python code -
sql Database query and management for SQL databases db_url or db_engine, user, password, host, port, schema, dialect
postgres Query PostgreSQL databases - list tables, describe schemas, run SQL host, port, db_name, user, password
redshift Query Amazon Redshift data warehouse Connection params
neo4j Query Neo4j graph databases with Cypher uri, user, password
duckdb Query data with DuckDB -
pandas Data manipulation with Pandas -
csv CSV file analysis and querying with SQL support -
calculator Mathematical calculations -
reasoning Step-by-step reasoning scratchpad for structured problem solving -
file_generation Generate JSON, CSV, PDF, and text files from data -
visualization Create bar, line, pie charts, scatter plots, and histograms -
coding Advanced code-oriented file operations (precise edits, grep, and discovery) base_dir (optional)
self_config Allow an agent to read and modify its own configuration -
sleep Pause execution -

Web Search & Research

Icon Tool Description Config Required
duckduckgo DuckDuckGo web search -
googlesearch Search Google for web results using the WebSearch backend -
baidusearch Baidu search -
tavily Real-time web search API api_key
exa AI-powered web search and research api_key
serpapi Search API aggregator api_key
serper Google search API api_key
searxng Open source metasearch engine for web, images, news, and more host
linkup Web search via Linkup API for real-time information api_key

Web Scraping & Crawling

Icon Tool Description Config Required
firecrawl Web scraping and crawling api_key
crawl4ai AI-powered web crawling -
browserbase Cloud browser automation api_key
agentql Structured web scraping api_key
spider Web spider/crawler api_key
scrapegraph Extract structured data from webpages using AI and natural language prompts api_key
apify Web scraping platform api_key
brightdata Proxy and scraping api_key
oxylabs Web scraping including SERP, product data, and universal scraping api_key
jina Web content reading and search api_key (optional)
website Web scraping and content extraction from websites -
trafilatura Web content and metadata extraction -
newspaper4k Article extraction -
browser OpenClaw-style browser control (status/start/stop/profiles/tabs/open/focus/close/snapshot/screenshot/navigate/console/pdf/upload/dialog/act) output_dir (optional)
web_browser_tools Open URLs in web browser tabs or windows -

AI & ML APIs

Icon Tool Description Config Required
openai Transcription, image generation, and speech synthesis api_key
gemini Google AI for image and video generation api_key
groq Fast AI inference for audio transcription, translation, and text-to-speech api_key
replicate Generate images and videos using AI models api_key
fal AI media generation (images and videos) api_key
dalle DALL-E image generation api_key
cartesia Text-to-speech and voice localization api_key
eleven_labs Text-to-speech and sound effects api_key
desi_vocal Hindi and Indian language text-to-speech api_key
lumalabs 3D content creation and video generation api_key
modelslabs Generate videos, audio, and GIFs from text api_key

Knowledge & Research

Icon Tool Description Config Required
arxiv Search and read academic papers from ArXiv -
wikipedia Search and retrieve information from Wikipedia -
pubmed Search and retrieve medical and life science literature -
hackernews Get top stories and user details from Hacker News -

Communication & Social

Icon Tool Description Config Required
matrix_message Native Matrix messaging actions (send, reply, thread-reply, react, read, room-threads, thread-list, edit, context) -
thread_tags Tag, untag, and inspect Matrix threads using shared room-state markers (tag_thread, untag_thread, list_thread_tags) -
gmail Read, search, and manage Gmail emails Google OAuth
slack Send messages and manage channels token
discord Interact with Discord channels and servers bot_token
telegram Send messages via Telegram bot token, chat_id
whatsapp WhatsApp Business API messaging access_token, phone_number_id, version (optional), recipient_waid (optional), async_mode (optional)
twilio SMS and voice account_sid, auth_token
webex Webex Teams messaging access_token, enable_send_message (optional), enable_list_rooms (optional)
resend Transactional email api_key
email Generic SMTP email SMTP config
x Post tweets, send DMs, and search X/Twitter bearer_token or OAuth (consumer_key, consumer_secret, access_token, access_token_secret); optional: include_post_metrics, wait_on_rate_limit
reddit Reddit browsing and interaction client_id, client_secret
zoom Video conferencing and meetings account_id, client_id, client_secret

thread_tags

tag_thread adds or updates one tag on the active thread by default. untag_thread removes one tag from the active thread by default. Passing room_id for the current room does not disable that same-room thread fallback for the write operations. list_thread_tags also defaults to the active thread. To list every tagged thread in a room from inside an active thread, pass room_id without thread_id. list_thread_tags(tag=...) returns only the requested tag in both thread-specific and room-wide responses. The predefined blocked payload accepts data.blocked_by as a list of non-empty strings. The predefined waiting payload accepts data.waiting_on as one non-empty string. The predefined priority payload accepts data.level as high, medium, or low. The predefined due payload accepts data.deadline as an ISO-8601 timestamp. All predefined payloads are normalized before they are persisted, and malformed persisted tag payloads are ignored on read. This intentionally replaces the removed experimental thread_resolution tool and does not auto-read old com.mindroom.thread.resolution markers.

Project Management

Icon Tool Description Config Required
github Repository and issue management access_token
bitbucket Bitbucket repository, PR, and issue management username, password or token, workspace, repo_slug
jira Issue tracking and project management server_url, username, password or token
linear Issue tracking and project management api_key
clickup ClickUp task, space, and list management api_key, master_space_id
confluence Retrieve, create, and update wiki pages url, username, password or api_key
notion Create, update, and search pages in Notion databases api_key, database_id
trello Trello boards api_key, api_secret, token
todoist Todoist task management api_token
zendesk Search help center articles username, password, company_name, enable_search_zendesk (optional)

Calendar & Scheduling

Icon Tool Description Config Required
google_calendar View and schedule meetings Google OAuth
cal_com Cal.com scheduling api_key
scheduler Schedule, edit, list, and cancel tasks and reminders -

Data & Business

Icon Tool Description Config Required
google_sheets Read, create, update spreadsheets Google OAuth
yfinance Financial data -
openbb Stock prices, company news, price targets via OpenBB openbb_pat (optional)
shopify Shopify store sales data, products, orders shop_name, access_token
financial_datasets_api Financial datasets api_key

Location & Maps

Icon Tool Description Config Required
google_maps Place search, directions, geocoding, and more via Google Maps key
openweather Weather data api_key

DevOps & Infrastructure

Icon Tool Description Config Required
aws_lambda AWS Lambda functions AWS credentials
aws_ses AWS email service AWS credentials
airflow Apache Airflow DAG file management -
e2b Code execution sandbox api_key
daytona Development environments api_key
claude_agent Persistent Claude coding sessions with tool use and subagents api_key (recommended)
composio Access 1000+ integrations including Gmail, Salesforce, GitHub, and more api_key
google_bigquery Query Google BigQuery - list tables, schemas, run SQL dataset, project, location

Smart Home

Icon Tool Description Config Required
homeassistant Control and monitor smart home devices HOMEASSISTANT_URL, HOMEASSISTANT_TOKEN

Media & Entertainment

Icon Tool Description Config Required
youtube Extract video data, captions, and timestamps -
spotify Search tracks, manage playlists, get recommendations access_token
giphy GIF search api_key
moviepy_video_tools Video processing -
unsplash Search and retrieve royalty-free images access_key
brandfetch Retrieve brand logos, colors, and fonts by domain api_key

Memory & Storage

Icon Tool Description Config Required
memory Explicitly store and search agent memories on demand -
mem0 Persistent memory system api_key (optional for cloud)
zep Conversation memory api_key
attachments List and register context-scoped file attachments (send via matrix_message) (see Attachments) -

Custom & Config

Icon Tool Description Config Required
custom_api Custom API calls Varies
config_manager Build and manage MindRoom agents with expert knowledge of the system -
compact_context Schedule context compaction for the next reply in the current conversation scope, rewriting persisted session history into a summary and deleting the compacted raw runs -
subagents Spawn and communicate with sub-agent sessions -
delegate Delegate tasks to other configured agents -

Tool presets are config-only macros, not runtime tools. For OpenClaw workspace portability, openclaw_compat expands to shell, coding, duckduckgo, website, browser, scheduler, subagents, matrix_message, and attachments. attachments is not directly in the preset — it is implied by matrix_message via the IMPLIED_TOOLS mapping.

Claude Agent Sessions

The claude_agent tool manages long-lived Claude coding sessions on the backend. This allows iterative coding workflows in the same session (including Claude-side tool usage and subagents).

When using the OpenAI-compatible API, set X-Session-Id to keep tool sessions stable across requests. See OpenAI API Compatibility.

Add claude_agent to an agent's tools in config.yaml:

agents:
  code:
    display_name: Code Agent
    role: Coding assistant with persistent Claude sessions
    model: general
    tools:
      - claude_agent

Configure credentials via the dashboard or by writing mindroom_data/credentials/claude_agent_credentials.json:

{
  "api_key": "sk-ant-or-proxy-key",
  "model": "claude-sonnet-4-6",
  "permission_mode": "default",
  "continue_conversation": true,
  "session_ttl_minutes": 60,
  "max_sessions": 200
}

To run through an Anthropic-compatible gateway (for example LiteLLM /v1/messages):

{
  "api_key": "sk-dummy",
  "anthropic_base_url": "http://litellm.local",
  "anthropic_auth_token": "sk-dummy",
  "disable_experimental_betas": true
}

Use the gateway host root for anthropic_base_url (no /v1 suffix), because Claude clients append /v1/messages. Some Anthropic-compatible backends may reject Claude's anthropic-beta headers. Set disable_experimental_betas to true in that case.

Worker-Routed Tools

Some tools default to running in a sandboxed worker container instead of the primary agent process. This is controlled by the default_execution_target metadata field.

The following tools default to worker execution:

Tool Purpose
file File read/write operations
shell Shell command execution
python Python code execution
coding Advanced code editing and discovery

When a sandbox proxy backend is configured, calls to these tools are forwarded to an isolated container. The worker container receives credentials via short-lived leases and inherits the agent's execution scope.

Execution Scopes

Worker routing uses three scope levels configured via worker_scope on an agent:

Scope Isolation Worker Key
shared One worker per agent (all requesters share state) v1:<tenant>:shared:<agent>
user One worker per requester (state shared across agents) v1:<tenant>:user:<requester>
user_agent One worker per requester-agent pair (full isolation) v1:<tenant>:user_agent:<requester>:<agent>

Shared-Only Integrations

Some dashboard integrations are restricted to shared or unscoped execution and cannot be used by agents with user or user_agent worker scope:

google, spotify, homeassistant, gmail, google_calendar, google_sheets

If an agent with an isolating scope tries to use one of these integrations, the tool call is rejected with an error explaining the scope restriction.

Enabling Tools

Add tools to agents in config.yaml — as plain strings or single-key dicts with inline config overrides:

agents:
  assistant:
    display_name: Assistant
    role: A helpful assistant
    model: sonnet
    tools:
      - file
      - shell:                            # per-agent config override
          extra_env_passthrough: "DAWARICH_*"
      - duckduckgo
      - github

Or use the Dashboard's Agents tab to enable tools visually. See Per-Agent Tool Configuration for the full override syntax.

Environment Variables

MindRoom still supports a config-adjacent .env file for provider and bootstrap settings such as model API keys:

# AI providers
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...
REPLICATE_API_TOKEN=r8_...

That .env file is resolved next to the active config.yaml, not from an arbitrary working directory.

Tool integrations should not rely on tool-specific env vars such as CLICKUP_API_KEY or DAYTONA_API_KEY.

Configure tools through the dashboard credentials store, persisted tool configuration, or explicit runtime overrides instead.

Execution tools do not use env vars as constructor-time configuration. shell still receives the committed runtime env as explicit execution context. Additional process env must be opted into with extra_env_passthrough. If shell execution needs extra PATH entries such as wrapper directories, configure shell_path_prepend instead of relying on host-specific defaults. When run_shell_command hits its timeout, it keeps the command running in the background and returns a handle. Use check_shell_command(handle) to poll status and kill_shell_command(handle) to stop a backgrounded process. These handles are process-local: they survive multiple requests to the same runner process, but do not survive runner restarts. python should not rely on in-process runtime env emulation. If Python code needs runtime-scoped env, run it through sandbox/worker subprocess execution instead.