MCP OpenClaw
A Model Context Protocol (MCP) server that integrates with the OpenClaw API, enabling AI assistants to send messages, execute commands, manage calendar events, send emails, and track task status.
Features
- Send Messages: Send messages to Telegram, WhatsApp, and Discord
- Execute Commands: Run commands in the OpenClaw environment (sync or async)
- Calendar Management: Create calendar events with attendees and reminders
- Email: Send emails with support for CC/BCC
- Task Status: Track the status of asynchronous commands
Installation
Global Installation
npm install -g mcp-openclaw
Local Installation
npm install mcp-openclaw
Configuration
Set the following environment variables:
export OPENCLAW_API_URL="https://api.openclaw.example.com"
export OPENCLAW_API_KEY="your-api-key-here"
Optional configuration:
export OPENCLAW_TIMEOUT="30000" # Request timeout in milliseconds (default: 30000)
export OPENCLAW_MAX_RETRIES="3" # Maximum retry attempts (default: 3)
export SERVER_NAME="mcp-openclaw" # Server name (default: mcp-openclaw)
export SERVER_VERSION="1.0.0" # Server version (default: 1.0.0)
export LOG_LEVEL="info" # Log level: debug, info, warn, error (default: info)
Usage
With Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"openclaw": {
"command": "node",
"args": ["/path/to/mcp-openclaw/dist/index.js"],
"env": {
"OPENCLAW_API_URL": "https://api.openclaw.example.com",
"OPENCLAW_API_KEY": "your-api-key-here"
}
}
}
}
Available Tools
1. send_message
Send a message to a supported platform.
{
"platform": "telegram",
"recipient": "@username",
"message": "Hello from OpenClaw!"
}
Supported platforms: telegram, whatsapp, discord
2. execute_command
Execute a command in the OpenClaw environment.
{
"command": "ls -la",
"timeout": 30,
"async": false
}
3. create_calendar_event
Create a new calendar event.
{
"title": "Team Meeting",
"description": "Weekly team sync",
"startTime": "2024-01-15T10:00:00Z",
"endTime": "2024-01-15T11:00:00Z",
"location": "Conference Room A",
"attendees": ["[email protected]", "[email protected]"],
"reminder": 15
}
4. send_email
Send an email.
{
"to": "[email protected]",
"subject": "Hello from OpenClaw",
"body": "This is the email content",
"cc": "[email protected]",
"bcc": "[email protected]",
"html": false
}
5. get_task_status
Check the status of an asynchronous command.
{
"taskId": "task-abc123"
}
Development
Setup
git clone https://github.com/yourusername/mcp-openclaw.git
cd mcp-openclaw
npm install
Build
npm run build
Test
npm test
Lint
npm run lint
npm run lint:fix
Format
npm run format
Project Structure
mcp-openclaw/
├── src/
│ ├── index.ts # MCP Server entry point
│ ├── types.ts # TypeScript type definitions
│ ├── openclaw-client.ts # OpenClaw API client
│ └── tools/
│ ├── index.ts # Tools registry
│ ├── send-message.ts
│ ├── execute-command.ts
│ ├── create-calendar-event.ts
│ ├── send-email.ts
│ └── get-task-status.ts
├── tests/ # Test files
├── examples/ # Usage examples
├── docs/ # Documentation
└── scripts/ # Build and utility scripts
Architecture
For detailed architecture information, see docs/ARCHITECTURE.md.
API Reference
For the complete API reference, see docs/API.md.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE for details.
Changelog
See CHANGELOG.md for version history.
Support
- Issues: GitHub Issues
- Documentation: docs/