Overview
Routa includes a built-in MCP server for coordination tools (task delegation, messaging, notes), but you can register unlimited custom MCP servers to expose additional tools to your agents. Custom MCP servers support:- Three connection types: stdio, HTTP, SSE (Server-Sent Events)
- Environment variables: Pass secrets and configuration
- Workspace scoping: Global or per-workspace servers
- Enable/disable control: Toggle servers without deleting configuration
MCP Server Types
stdio (Standard Input/Output)
Spawns a local process and communicates via stdin/stdout. Use cases: Local tools, file system access, database clients Example: File system MCP serverHTTP
Connects to an MCP server via HTTP with JSON-RPC. Use cases: Remote services, cloud APIs, shared team tools Example: Remote MCP serverSSE (Server-Sent Events)
Connects to an MCP server using server-sent events for real-time updates. Use cases: Streaming data, live updates, event-driven tools Example: SSE-based MCP serverSupported AI Providers
Custom MCP servers work with these AI providers:Claude Code
Full support via
@anthropic-ai/claude-agent-sdkOpenCode
Full support via
@opencode-ai/sdkCodex
Full support via
@openai/codexGemini
Full support via
@google/generative-ai-cliKimi
Full support (MCP compatible)
Augment
Full support (MCP compatible)
Copilot
Full support (MCP compatible)
Configuration Management
Via Web UI
Add New Server
Click “Add MCP Server” and fill in:
- Name: Unique identifier (e.g., “github-api”)
- Description: What tools this server provides
- Type: stdio / http / sse
- Configuration: Type-specific settings (see examples below)
Configure Connection
For stdio:
- Command: Path or command name (e.g.,
npx,python,/usr/bin/mcp-server) - Args: Command arguments as array
- Env: Environment variables
- URL: Full endpoint URL
- Headers: HTTP headers (e.g., Authorization)
- Env: Environment variables for variable substitution
Enable Server
Toggle “Enabled” to activate the server. Disabled servers remain configured but won’t be passed to agents.
Via REST API
Create MCP Server
List MCP Servers
Update MCP Server
Delete MCP Server
Database Storage
MCP server configurations are stored in thecustom_mcp_servers table:
Common MCP Server Examples
File System Access
Provides file read/write tools to agents.read_file, write_file, list_directory, search_files
GitHub API
GitHub operations (issues, PRs, comments).create_issue, create_pull_request, add_comment, list_issues
PostgreSQL Database
Query and modify PostgreSQL databases.query, execute, list_tables, describe_table
Brave Search
Web search via Brave Search API.brave_web_search, brave_local_search
Puppeteer (Browser Automation)
Control headless Chrome for web scraping and testing.puppeteer_navigate, puppeteer_screenshot, puppeteer_click, puppeteer_fill
Slack API
Send messages and interact with Slack.send_message, list_channels, upload_file
Jira API
Manage Jira issues and projects.create_issue, update_issue, add_comment, transition_issue
MCP Configuration Merging
When spawning an agent, Routa merges custom MCP servers with the built-in coordination server:- Built-in servers take priority (protects
routa-coordination) - Only enabled custom servers are included
- Custom servers with duplicate names are skipped
Environment Variable Substitution
MCP server configurations support${VAR} syntax for environment variable substitution:
${API_TOKEN} is replaced with the value from env.
Workspace Scoping
Global MCP Servers
OmitworkspaceId to make a server available to all workspaces:
Workspace-Specific MCP Servers
IncludeworkspaceId to restrict a server to one workspace:
Testing MCP Servers
Verify Connection
Inspect Agent MCP Config
Check what MCP servers an agent sees:Troubleshooting
Agent doesn't see custom tools
Agent doesn't see custom tools
- Verify server is enabled:
GET /api/mcp-servers - Check workspace scope matches agent’s workspace
- Restart agent (existing agents don’t reload MCP config)
- Test MCP server connection independently
stdio server fails to spawn
stdio server fails to spawn
- Check
commandis executable:which <command> - Verify
argsare correct (use array, not string) - Check environment variables are set
- Test command manually:
<command> <args>
HTTP server connection errors
HTTP server connection errors
- Verify URL is reachable:
curl <url> - Check headers (especially Authorization)
- Ensure server supports MCP JSON-RPC protocol
- Check firewall/CORS settings
Environment variables not substituted
Environment variables not substituted
- Use
${VAR}syntax (not$VARor%VAR%) - Define variable in
envobject - Check logs for substitution errors
Built-in routa-coordination server missing
Built-in routa-coordination server missing
Built-in server is always included. If missing:
- Check agent spawn logs
- Verify Routa server is running
- Ensure
/api/mcpendpoint is accessible
Security Best Practices
Store secrets in environment variables
Store secrets in environment variables
Don’t hardcode secrets in MCP configs. Use environment variables:
Restrict file system access
Restrict file system access
When using filesystem MCP server, limit scope:Don’t use root directory (
/) or home directory (~).Use workspace scoping
Use workspace scoping
Limit MCP servers to specific workspaces to reduce blast radius:
Disable unused servers
Disable unused servers
Instead of deleting, disable servers you’re not actively using:
Next Steps
Custom Specialists
Create specialists that use custom MCP tools
Workflows
Use MCP tools in automated workflows
Desktop App
Run MCP servers in desktop environment
MCP Documentation
Official MCP protocol documentation