Skip to main content
Glama
cinderl
by cinderl

Congatudo MCP Server

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 attributes

  • get_robot_map — raw map JSON

Control

  • basic_control(action) — start / pause / stop / home

  • locate_robot() — plays a sound to find the robot

  • manual_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 rooms

  • go_to_location(x, y) — send robot to map coordinates

Settings (fan + water)

  • get_fan_presets() / set_fan_speed(name) — suction power

  • get_water_presets() / set_water_usage(name) — mopping water flow

Consumables

  • get_consumables() — wear levels

  • reset_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 supports

  • get_robot_info() — manufacturer, model, implementation

  • get_wifi_status() — SSID, RSSI, frequency, IPs

  • get_system_info() — hostname, arch, uptime, CPU, memory

Call get_capabilities() first — if a capability isn't listed, its tool will return a clean error.

Client Example (OpenAI Agents SDK)

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, "What's the robot status?")

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
F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/cinderl/congatudo_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server