Congatudo
FreeNot checkedEnables AI agents to control a Cecotec Conga robot vacuum via 26 tools for state, cleaning modes, settings, timers, and system info.
About
Enables AI agents to control a Cecotec Conga robot vacuum via 26 tools for state, cleaning modes, settings, timers, and system info.
README
HTTP MCP server (SSE transport) that exposes your Congatudo-powered Cecotec Conga robot vacuum as 26 tools for AI agents (Claude, Cursor, OpenAI Agents SDK, etc.).
Quick Start
# 1. Clone and configure
cp .env.example .env
# Edit .env → set CONGATUDO_HOST to your robot's IP
# 2. Build and start
docker compose up -d
# 3. Connect any MCP client to:
# http://<host>:8114/sse
Environment Variables
| Variable | Default | Description |
|---|---|---|
CONGATUDO_HOST |
192.168.25.158 |
Robot IP address |
CONGATUDO_PORT |
80 |
Robot HTTP port |
CONGATUDO_API_PREFIX |
/api/v2 |
REST API base path |
CONGATUDO_USERNAME |
(empty) | HTTP Basic Auth username (optional) |
CONGATUDO_PASSWORD |
(empty) | HTTP Basic Auth password (optional) |
MCP_SERVER_HOST |
0.0.0.0 |
MCP SSE bind address |
MCP_SERVER_PORT |
8114 |
MCP SSE port |
Tools
State
get_robot_state— full state (status, battery, attachments, map)get_robot_state_attributes— status / battery / attachment attributesget_robot_map— raw map JSON
Control
basic_control(action)— start / pause / stop / homelocate_robot()— plays a sound to find the robotmanual_control(action, movement_command?)— check / enable / disable / move
Cleaning Modes
clean_zone(zones, iterations?)— clean rectangular zone(s)clean_segments(segment_ids, iterations?, custom_order?)— clean specific roomsgo_to_location(x, y)— send robot to map coordinates
Settings (fan + water)
get_fan_presets()/set_fan_speed(name)— suction powerget_water_presets()/set_water_usage(name)— mopping water flow
Consumables
get_consumables()— wear levelsreset_consumable(type, sub_type?)— reset after replacement
Timers (cron-based)
get_timers()/create_timer(...)/update_timer(id, ...)/delete_timer(id)/toggle_timer(id)
Do Not Disturb
get_dnd_config()/set_dnd_config(enabled, start, end)— quiet hours
System
get_capabilities()— list what your robot supportsget_robot_info()— manufacturer, model, implementationget_wifi_status()— SSID, RSSI, frequency, IPsget_system_info()— hostname, arch, uptime, CPU, memory
Call get_capabilities() first — if a capability isn't listed, its tool will return a clean error.
Testing
A bash script validates the MCP connection and exercises 5 key tools:
./test_get_capabilities.sh
# or against a remote host:
./test_get_capabilities.sh http://192.168.1.100:8114
It performs the full MCP handshake, calls get_capabilities, get_fan_presets, get_consumables, locate_robot (beeps the robot), and basic_control(action=home) (sends robot to dock). Output:
--- MCP Congatudo Test ---
1. get_capabilities PASS (21 capabilities)
2. get_fan_presets PASS (4 presets)
3. get_consumables PASS (4 consumables)
4. locate_robot PASS (robot beeps)
5. basic_control (HOME) PASS (robot returns to dock)
--- Results: 5 passed, 0 failed ---
MCP Integration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"Congatudo": {
"command": "mcp-proxy.exe",
"env": {
"SSE_URL": "http://localhost:8114/sse"
}
}
}
}
Cursor
In Cursor Settings → MCP Servers → Add new:
- Name:
congatudo - Type:
SSE - URL:
http://192.168.1.100:8114/sse
Opencode
Add to your opencode.json or .opencode.json:
{
"mcp": {
"congatudo": {
"transport": "sse",
"url": "http://192.168.1.100:8114/sse"
}
}
}
OpenAI Agents SDK (Python)
from agents import Agent, Runner
from agents.mcp import MCPServerSse
async with MCPServerSse(
name="Congatudo",
params={"url": "http://192.168.1.100:8114/sse"},
) as server:
agent = Agent(name="Vacuum", mcp_servers=[server])
await Runner.run(agent, "Start cleaning the kitchen")
Any MCP Client
Point your client to:
http://<host>:8114/sse
Then call get_capabilities() first to discover what your robot supports.
Docker Commands
docker compose build # Build the image
docker compose up -d # Start in background
docker compose logs -f # Follow logs
docker compose down # Stop
Installing Congatudo
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/cinderl/congatudo_mcpFAQ
Is Congatudo MCP free?
Yes, Congatudo MCP is free — one-click install via Unyly at no cost.
Does Congatudo need an API key?
No, Congatudo runs without API keys or environment variables.
Is Congatudo hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Congatudo in Claude Desktop, Claude Code or Cursor?
Open Congatudo on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Congatudo with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
