A Model Context Protocol (MCP) server for Ech0 — the self-hosted lightweight microblog platform.
Built with Go using mcp-go. Docker image is only ~24MB with ~1.5MB RAM usage.
| Tool | Description |
|---|---|
create_echo |
Create a new post (supports markdown) |
update_echo |
Update an existing post |
delete_echo |
Delete a post |
get_echo |
Get a specific post by ID |
list_echoes |
List posts with pagination |
search_echoes |
Search posts by keyword |
get_today_echoes |
Get today's posts |
get_echoes_by_tag |
Filter posts by tag |
like_echo |
Like/unlike a post |
list_tags |
List all tags |
get_inbox |
Get inbox messages |
get_heatmap |
Get posting heatmap data |
services:
ech0-mcp:
image: ech0-mcp:latest
container_name: ech0-mcp
restart: unless-stopped
ports:
- "8793:8080"
environment:
- ECH0_URL=http://your-ech0-host:6277
- ECH0_API_KEY=your-access-token
- MCP_TRANSPORT=sse
- MCP_PORT=8080| Variable | Description | Default |
|---|---|---|
ECH0_URL |
Ech0 instance URL | http://localhost:6277 |
ECH0_API_KEY |
Ech0 access token (generate in Ech0 settings) | — |
MCP_TRANSPORT |
Transport mode: stdio, sse, or http |
stdio |
MCP_PORT |
Port for SSE/HTTP transport | 8080 |
- Log in to your Ech0 admin panel
- Navigate to system settings
- Create a new access token with appropriate scopes
docker build -t ech0-mcp:latest .{
"type": "streamable_http",
"url": "http://your-server:8793/sse",
"headers": {
"Authorization": "Bearer your-auth-token"
}
}{
"mcpServers": {
"ech0": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "ECH0_URL=http://host.docker.internal:6277", "-e", "ECH0_API_KEY=your-token", "ech0-mcp:latest"]
}
}
}MIT