MCP Tools
Sinaptic® DROID+ supports the Model Context Protocol (MCP) for connecting external tools to your agents. MCP servers provide capabilities like web search, file access, database queries, and any custom API — all available to your agents as callable tools.
How MCP Works in Sinaptic® DROID+
MCP servers run as subprocesses alongside Sinaptic® DROID+. They communicate via stdio using JSON-RPC 2.0. When an agent needs to use a tool, Sinaptic® DROID+ sends a request to the appropriate MCP server and returns the result to the LLM.
Agent → DROID+ → MCP Server (subprocess) → External service
← Result
Each MCP server declares a set of tools with names, descriptions, and input schemas. The LLM sees these as available function calls.
Configuration
MCP servers are configured in droid.yaml under the mcp section:
mcp:
servers:
web-search:
command: "npx"
args: ["-y", "@anthropic/mcp-web-search"]
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"
filesystem:
command: "npx"
args: ["-y", "@anthropic/mcp-filesystem", "/data"]
Each server entry specifies:
- command — the executable to run
- args — command-line arguments
- env — environment variables passed to the subprocess (supports
${VAR}syntax)
Using MCP Tools in Agents
Once MCP servers are configured globally, agents can use their tools by referencing them:
# configs/agents/research-agent.yaml
name: "research-agent"
description: "Agent that can search the web and read files"
model:
name: "gpt-4o-mini"
personality: |
You are a research assistant. Use web search to find current information
and the filesystem to read reference documents.
tools:
- name: "current_time"
type: "builtin"
# MCP tools from configured servers are automatically available
When MCP servers are configured in droid.yaml, their tools are available to all agents. The LLM receives the tool definitions as part of the function calling schema and can invoke them as needed.
Popular MCP Servers
Web Search (Brave)
mcp:
servers:
web-search:
command: "npx"
args: ["-y", "@anthropic/mcp-web-search"]
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"
Provides web_search tool. Requires a Brave Search API key.
Filesystem Access
mcp:
servers:
filesystem:
command: "npx"
args: ["-y", "@anthropic/mcp-filesystem", "/data/docs"]
Provides read_file, write_file, list_directory tools. The path argument restricts access to that directory.
Database (PostgreSQL)
mcp:
servers:
database:
command: "npx"
args: ["-y", "@anthropic/mcp-postgres"]
env:
DATABASE_URL: "${DATABASE_URL}"
Provides query tool for read-only SQL queries against your database.
Custom MCP Servers
You can write your own MCP server in any language. The server just needs to:
- Accept JSON-RPC 2.0 messages on stdin
- Write responses to stdout
- Declare available tools via the
tools/listmethod
Example with a Python MCP server:
mcp:
servers:
my-tools:
command: "python"
args: ["./tools/my_server.py"]
env:
API_TOKEN: "${MY_API_TOKEN}"
See the MCP specification for details on building servers.
MCP + Docker
When running Sinaptic® DROID+ in Docker, MCP servers need their runtimes available inside the container. For npm-based MCP servers, you'll need Node.js in the image.
Option 1: Use a custom Dockerfile that adds Node.js:
FROM sinapticai/droid:latest AS base
# Add MCP server dependencies
COPY --from=node:20-alpine /usr/local/bin/node /usr/local/bin/
COPY --from=node:20-alpine /usr/local/bin/npx /usr/local/bin/
Option 2: Run MCP servers as separate containers and configure Sinaptic® DROID+ to connect via network instead of stdio (requires a network-capable MCP transport).
Debugging MCP
Enable debug logging to see MCP communication:
logging:
level: "debug"
This will log all JSON-RPC messages between Sinaptic® DROID+ and MCP servers, including tool invocations and results.
Limitations
- MCP servers in Community Edition work the same as in Pro/Enterprise — there are no feature restrictions on MCP.
- Each MCP server runs as a separate subprocess. Keep the number reasonable (typically 2-5 servers).
- MCP servers must be available on the system where Sinaptic® DROID+ runs (or in the container).