Skip to main content
Glama
README.md
# 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

```bash
npm install -g mcp-openclaw
```

### Local Installation

```bash
npm install mcp-openclaw
```

## Configuration

Set the following environment variables:

```bash
export OPENCLAW_API_URL="https://api.openclaw.example.com"
export OPENCLAW_API_KEY="your-api-key-here"
```

Optional configuration:

```bash
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`

```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.

```json
{
  "platform": "telegram",
  "recipient": "@username",
  "message": "Hello from OpenClaw!"
}
```

Supported platforms: `telegram`, `whatsapp`, `discord`

#### 2. execute_command

Execute a command in the OpenClaw environment.

```json
{
  "command": "ls -la",
  "timeout": 30,
  "async": false
}
```

#### 3. create_calendar_event

Create a new calendar event.

```json
{
  "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.

```json
{
  "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.

```json
{
  "taskId": "task-abc123"
}
```

## Development

### Setup

```bash
git clone https://github.com/yourusername/mcp-openclaw.git
cd mcp-openclaw
npm install
```

### Build

```bash
npm run build
```

### Test

```bash
npm test
```

### Lint

```bash
npm run lint
npm run lint:fix
```

### Format

```bash
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](docs/ARCHITECTURE.md).

## API Reference

For the complete API reference, see [docs/API.md](docs/API.md).

## Contributing

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## License

MIT License - see [LICENSE](LICENSE) for details.

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for version history.

## Support

- Issues: [GitHub Issues](https://github.com/yourusername/mcp-openclaw/issues)
- Documentation: [docs/](docs/)

TDQS

B3.2/5.0

Scored across 5 tools

Disambiguation4/5

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).

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessNo issues