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.