MCP OpenClaw
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP OpenClawSend a Telegram message to @john saying I've finished the report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Jilebi
Installation
Global Installation
npm install -g mcp-openclawLocal Installation
npm install mcp-openclawConfiguration
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.json
Windows: %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": ["user1@example.com", "user2@example.com"],
"reminder": 15
}4. send_email
Send an email.
{
"to": "recipient@example.com",
"subject": "Hello from OpenClaw",
"body": "This is the email content",
"cc": "cc@example.com",
"bcc": "bcc@example.com",
"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 installBuild
npm run buildTest
npm testLint
npm run lint
npm run lint:fixFormat
npm run formatProject 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 scriptsArchitecture
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/
Available Tools
5 toolscreate_calendar_eventC
Create a calendar event with title, description, time, location, and attendees
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Event title | |
| description | No | Event description (optional) | |
| startTime | Yes | Event start time in ISO 8601 format (e.g., 2024-01-15T10:00:00Z) | |
| endTime | No | Event end time in ISO 8601 format (optional) | |
| location | No | Event location (optional) | |
| attendees | No | List of attendee email addresses (optional) | |
| reminder | No | Reminder time in minutes before the event (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates an event but doesn't mention permissions required, whether it sends invitations automatically, error handling, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It lists key parameters without unnecessary elaboration, though it could be slightly more structured (e.g., grouping required vs. optional).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., event ID, success confirmation), error conditions, or side effects like sending emails to attendees. Given the complexity of creating calendar events, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters with their types, optionality, and formats. The description lists the parameters but adds no additional meaning beyond what's in the schema (e.g., no examples of valid locations or attendee formats). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('calendar event') along with key attributes (title, description, time, location, attendees). It's specific about what the tool does, though it doesn't explicitly differentiate from sibling tools like send_email or send_message, which might also involve scheduling or notifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for calendar events, or how it differs from sibling tools like send_email (which might involve scheduling) or execute_command (which could trigger related actions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_commandC
Execute a command in the OpenClaw environment. Commands can run synchronously or asynchronously.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | Command to execute (e.g., "ls -la", "npm install") | |
| timeout | No | Timeout in seconds (default: 30) | |
| async | No | Execute asynchronously (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions synchronous vs. asynchronous execution, which adds some context, but fails to cover critical aspects such as security implications, error handling, environment specifics, or output format. This leaves significant gaps for a tool that executes arbitrary commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose, consisting of two clear sentences. It avoids unnecessary details, though it could be slightly more structured by explicitly listing key behaviors or constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of executing commands in an environment, the lack of annotations, and no output schema, the description is incomplete. It doesn't address safety, permissions, result handling, or error cases, which are crucial for such a tool, leaving the agent with insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (command, timeout, async) with descriptions and defaults. The description doesn't add any meaningful semantics beyond what the schema provides, such as command examples or usage nuances, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('execute') and resource ('command in the OpenClaw environment'), making the purpose understandable. However, it doesn't distinguish this tool from potential siblings like 'get_task_status' that might also involve command execution, missing full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that commands can run synchronously or asynchronously, which implies some usage context, but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'get_task_status' or other sibling tools. No when-not-to-use or prerequisite information is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_statusC
Get the current status of a previously executed async command/task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The ID of the task to check status for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions checking status for an 'async command/task', implying it's a read operation, but doesn't specify details like polling behavior, error handling, or response format. This leaves gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that interacts with async tasks. It doesn't explain what the status response includes (e.g., pending, completed, failed) or how to handle errors, leaving significant gaps in understanding the tool's full context and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, fully documenting the single parameter 'taskId'. The description adds no additional meaning beyond what the schema provides, such as format examples or context for the task ID. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('status of a previously executed async command/task'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'execute_command', which might also involve task execution, leaving room for minor ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as whether it should be used after 'execute_command' or in conjunction with other siblings. It lacks explicit context, prerequisites, or exclusions, offering minimal usage direction beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailC
Send an email to one or more recipients with optional CC and BCC
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address or list of addresses | |
| subject | Yes | Email subject line | |
| body | Yes | Email body content | |
| cc | No | CC recipients (optional) | |
| bcc | No | BCC recipients (optional) | |
| html | No | Whether the body is HTML format (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose critical behavioral traits like authentication requirements, rate limits, delivery confirmation, error handling, or whether emails are sent immediately versus queued.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a straightforward tool and front-loads the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't address what happens after sending (success/failure indicators), doesn't mention important constraints or side effects, and provides minimal guidance despite the tool's potential impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing complete parameter documentation. The description adds minimal value by mentioning 'optional CC and BCC' which is already clear from the schema. No additional semantic context is provided beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('send') and resource ('email') with specific details about recipients and optional fields. It distinguishes itself from sibling tools like 'send_message' by specifying email functionality, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'send_message' or other communication methods. The description mentions optional CC/BCC but offers no context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageC
Send a message to a specified platform (Telegram, WhatsApp, or Discord) via OpenClaw
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Target messaging platform | |
| recipient | Yes | Recipient ID or username (e.g., @username for Telegram, phone number for WhatsApp) | |
| message | Yes | Message content to send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Send a message') but lacks critical details: it doesn't specify whether this requires authentication, rate limits, error handling (e.g., invalid recipient), side effects (e.g., message delivery confirmation), or response format. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Send a message to a specified platform') and adds necessary specifics (platforms and mechanism). There is zero waste—every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation operation sending messages across platforms) and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication needs, error conditions, or what the tool returns (e.g., success/failure, message ID). For a tool with this functionality, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (platform, recipient, message) with descriptions and an enum for platform. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain format details for recipient beyond the schema's examples). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a message') and the resource ('to a specified platform'), specifying the platforms (Telegram, WhatsApp, Discord) and the mechanism ('via OpenClaw'). It distinguishes from siblings like send_email by specifying messaging platforms rather than email. However, it doesn't explicitly differentiate from hypothetical sibling messaging tools (none exist in the provided list), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication, platform setup), exclusions (e.g., when not to send messages), or compare to siblings like send_email for communication purposes. Usage is implied by the name and parameters but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes: calendar event creation, command execution, task status checking, email sending, and message sending. However, 'send_email' and 'send_message' could potentially be confused as both involve communication, though their target platforms differ (email vs. messaging apps).
All tool names follow a consistent verb_noun pattern (e.g., create_calendar_event, execute_command, get_task_status, send_email, send_message). The naming is uniform and predictable throughout the set.
With 5 tools, the count is reasonable and well-scoped for a utility server like OpenClaw. It covers key automation tasks without being overwhelming, though it might benefit from a few more tools for broader coverage.
The tool set covers basic automation tasks (execution, communication, calendar), but there are notable gaps. For example, there's no tool to list or manage calendar events, update tasks, or handle other common operations like file management, which could limit agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that integrates with Discord to provide AI-powered features.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- FlicenseCqualityFmaintenanceA powerful MCP server that enables AI assistants to interact with Microsoft Graph API for managing Outlook emails, Calendar events, OneDrive files, and Contacts through natural language commands.3556
- AlicenseNot gradedqualityBmaintenanceA plugin-based MCP server that enables AI assistants to interact with external systems through custom tools, resources, and prompts.4AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server with real AI capabilities (OpenAI/Anthropic) for natural language understanding, multi-step planning, and autonomous task execution, enabling intelligent file analysis, weather-based planning, and more.225ISC
- AlicenseAqualityDmaintenanceMCP server that integrates OpenClaw AI assistant with Claude Code, enabling chat, task management, messaging, memory, alerts, agent spawning, and web search through configurable tools.12208MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/starlink-awaken/mcp-openclaw'
If you have feedback or need assistance with the MCP directory API, please join our Discord server