Tutorial
MCP Integration: OpenClaw has native support for the Model Context Protocol, enabling powerful integrations with external data sources and tools.
What is MCP?
The Model Context Protocol (MCP) is an open standard that allows AI assistants to connect to external data sources and tools. With MCP, OpenClaw can:
- Query databases and APIs directly
- Access file systems and cloud storage
- Execute custom tools and functions
- Integrate with third-party services
Enabling MCP in OpenClaw
# Enable MCP support
openclaw config set mcp.enabled=true
# Verify MCP is available
openclaw mcp statusInstalling MCP Servers
# Install filesystem MCP server
openclaw mcp install @modelcontext/server-filesystem
# Install GitHub MCP server
openclaw mcp install @modelcontext/server-github
# Install PostgreSQL MCP server
openclaw mcp install @modelcontext/server-postgresConfiguring MCP Servers
# Add to ~/.openclaw/mcp_config.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontext/server-filesystem", "/path/to/allowed"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontext/server-github"],
"env": {
"GITHUB_TOKEN": "your-github-token"
}
}
}
}Using MCP in Conversations
Once configured, OpenClaw automatically uses MCP servers when relevant:
# OpenClaw will use the filesystem MCP server
"What files are in the src directory?"
# OpenClaw will use the GitHub MCP server
"What issues are open in the openclaw/openclaw repo?"
# OpenClaw will use the database MCP server
"Query the users table for active accounts"Popular MCP Servers
Filesystem Access
openclaw mcp install @modelcontext/server-filesystemGitHub Integration
openclaw mcp install @modelcontext/server-githubDatabase Connections
# PostgreSQL
openclaw mcp install @modelcontext/server-postgres
# MySQL
openclaw mcp install @modelcontext/server-mysql
# SQLite
openclaw mcp install @modelcontext/server-sqliteCloud Storage
# AWS S3
openclaw mcp install @modelcontext/server-aws-s3
# Google Drive
openclaw mcp install @modelcontext/server-gdriveCreating Custom MCP Servers
# Create a new MCP server project
mkdir my-mcp-server
cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk
# Create src/index.ts
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = new Server({
name: "my-mcp-server",
version: "1.0.0"
});
// Add your tools here
server.setRequestHandler(/* ... */);
const transport = new StdioServerTransport();
await server.connect(transport);Registering Custom Servers
# Add your custom server to config
openclaw mcp register my-server \
--command="node" \
--args="/path/to/my-mcp-server/dist/index.js"Security Best Practices
- Restrict access: Only allow filesystem access to specific directories
- Use scoped tokens: Limit GitHub/API token permissions
- Sandbox databases: Use read-only database users when possible
- Audit logs: Review MCP server access logs regularly
- Verify sources: Only install MCP servers from trusted publishers
# Example: Secure filesystem configuration
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontext/server-filesystem", "/home/user/safe-dir"],
"env": {
"MCP_FS_READONLY": "true"
}
}
}
}Troubleshooting
# Check MCP server status
openclaw mcp list
# Test MCP server connectivity
openclaw mcp test
# View MCP server logs
openclaw logs --filter=mcp