# π€ Gausium OpenAPI MCP Server
<div align="center">
[](https://www.python.org/downloads/)
[](https://pypi.org/project/mcp-gs-robot/)
[](LICENSE)
[](https://github.com/modelcontextprotocol)
[](https://claude.ai/code)
**π§ A powerful MCP server bridging AI models with Gausium robots**
*Control and monitor Gausium cleaning robots through Claude, Cursor, and other AI assistants*
[π Quick Start](https://github.com/cfrs2005/mcp-gs-robot#-quick-start) β’ [π Documentation](https://github.com/cfrs2005/mcp-gs-robot#-documentation) β’ [π οΈ Installation](https://github.com/cfrs2005/mcp-gs-robot#-installation-1) β’ [π― Examples](https://github.com/cfrs2005/mcp-gs-robot#-examples) β’ [π¨π³ δΈζζζ‘£](https://github.com/cfrs2005/mcp-gs-robot/blob/main/README_CN.md)
</div>
---
## π What is this?
This MCP (Model Control Protocol) server enables seamless interaction between AI models and Gausium cleaning robots through a standardized interface. Perfect for building intelligent automation workflows with Claude Code, Cursor, and other MCP-compatible AI tools.
**π Repository:** [https://github.com/cfrs2005/mcp-gs-robot](https://github.com/cfrs2005/mcp-gs-robot)
### π― Key Benefits
- π€ **AI-First Design**: Built specifically for AI assistant integration
- π **Real-time Control**: Monitor and command robots instantly
- π **Rich Data Access**: Get detailed status, maps, and task reports
- π‘οΈ **Secure**: OAuth-based authentication with environment variables
- π **Universal**: Works with Claude, Cursor, and any MCP client
## ποΈ Architecture
The server follows a layered architecture that separates concerns and promotes maintainability:

### π MCP Protocol Flow
The diagram below shows how AI models interact with Gausium robots through the MCP protocol:

## β¨ Features
### π οΈ Core MCP Tools
| Tool | Description | Status |
|------|-------------|--------|
| π€ `list_robots` | List all accessible robots | β
Ready |
| π `get_robot_status` | Get detailed robot status and position | β
Ready |
| π `list_robot_task_reports` | Retrieve cleaning task reports with filtering | β
Ready |
| πΊοΈ `list_robot_maps` | Get available maps for robot navigation | β
Ready |
| π― `create_robot_command` | Send commands to robots (start/pause/stop) | β
Ready |
| π’ `get_site_info` | Get building and floor information | β
Ready |
| π `get_map_subareas` | Get detailed area information for tasks | β
Ready |
| π `submit_temp_task` | Submit temporary cleaning tasks | β
Ready |
### π§ Smart Routing Tools (Enhanced in v0.1.12)
| Tool | Description | Status |
|------|-------------|--------|
| π― `get_robot_status_smart` | Auto-select V1/V2 API based on robot series | β
Ready |
| π `get_task_reports_smart` | Intelligent task report API routing | β
Ready |
| π `get_robot_capabilities` | Show supported APIs for specific robot | β
Ready |
### π§ Advanced Workflows
- ποΈ **Automated Task Execution**: Complete workflows from status β task selection β execution
- π **Batch Operations**: Handle multiple robots simultaneously
- πΊοΈ **Map Management**: Upload, download, and manage robot maps
- π **Report Generation**: Generate PNG maps from task reports
- ποΈ **Site-based Tasks**: Advanced task creation with building/floor context
### π€ Supported Robot Lines
#### M-line Robots (Traditional Cleaning Robots)
- **OMNIE** (OMNIE series) - Multi-purpose cleaning robot
- **Vacuum 40** (40 series) - Vacuum cleaning robot
- **Scrubber 50** (50 series) - Floor scrubbing robot
- **Scrubber 75** (75 series) - Heavy-duty floor scrubbing robot
#### S-line Robots (Advanced Smart Robots, including SW series)
- **Phantas** (S series) - Phantom intelligent cleaning robot
- **BEETLE** (SW series) - Beetle smart cleaning robot
## π Project Structure
The project follows a structured layout optimized for MCP development:
```
ποΈ mcp-gs-robot/
βββ π¦ src/gs_openapi/ # Main package
β βββ π api/ # Direct API integrations
β β βββ π€ robots.py # Robot management APIs
β β βββ πΊοΈ maps.py # Map management APIs
β βββ π auth/ # Authentication layer
β β βββ π« token_manager.py # OAuth token lifecycle
β βββ βοΈ config.py # Configuration management
β βββ π§ core/ # Core functionality
β β βββ π‘ client.py # HTTP client wrapper
β β βββ π£οΈ endpoints.py # API endpoint definitions
β βββ π mcp/ # MCP server implementation
β β βββ π gausium_mcp.py # Main MCP bridge
β βββ π workflows/ # Automated workflows
β βββ π― task_engine.py # Task automation engine
βββ π docs/ # Documentation
β βββ πΌοΈ images/ # Visual documentation
β βββ π apis.md # API documentation
β βββ π§ͺ TESTING_GUIDE.md # Testing instructions
βββ π main.py # Application entry point
βββ π pyproject.toml # Package configuration
```
### π Key Components
| Component | Purpose | Icon |
|-----------|---------|------|
| **config.py** | Base URLs, API paths, environment variables | βοΈ |
| **token_manager.py** | OAuth token acquisition and refresh | π |
| **api/robots.py** | Robot status, commands, task reports | π€ |
| **api/maps.py** | Map listing, upload, download | πΊοΈ |
| **gausium_mcp.py** | MCP server integration layer | π |
| **task_engine.py** | Automated workflow orchestration | π― |
| **main.py** | Server initialization and tool registration | π |
## π Quick Start
### π¦ Installation
#### Option 1: Install from PyPI (Recommended)
```bash
pip install mcp-gs-robot
```
#### Option 2: Install from Source
```bash
# Clone repository
git clone https://github.com/cfrs2005/mcp-gs-robot.git
cd mcp-gs-robot
# Setup with uv (recommended)
uv venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
uv pip install -e .
```
### π§ Configuration
**Set up your Gausium API credentials:**
```bash
# Required environment variables
export GS_CLIENT_ID="your_client_id"
export GS_CLIENT_SECRET="your_client_secret"
export GS_OPEN_ACCESS_KEY="your_access_key"
```
> π **Get credentials from [Gausium Developer Portal](https://developer.gs-robot.com/)**
### πββοΈ Running the Server
```bash
# Start MCP server (stdio mode)
python -m gs_openapi.main
# or if installed via pip:
mcp-gs-robot
```
β
Server starts using `stdio` transport (perfect for Claude Code)
### π Claude Code Integration
**Method 1: Automatic installation with environment setup**
```bash
# Add MCP server with environment variables
claude mcp add mcp-gs-robot \
--env GS_CLIENT_ID="your_client_id" \
--env GS_CLIENT_SECRET="your_client_secret" \
--env GS_OPEN_ACCESS_KEY="your_access_key"
```
**Method 2: Manual configuration**
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"mcp-gs-robot": {
"command": "mcp-gs-robot",
"env": {
"GS_CLIENT_ID": "your_client_id",
"GS_CLIENT_SECRET": "your_client_secret",
"GS_OPEN_ACCESS_KEY": "your_access_key"
}
}
}
}
```
**Method 3: Using environment file**
If you prefer to use a `.env` file:
```bash
# Set global environment variables
export GS_CLIENT_ID="your_client_id"
export GS_CLIENT_SECRET="your_client_secret"
export GS_OPEN_ACCESS_KEY="your_access_key"
# Simple MCP installation
claude mcp add mcp-gs-robot
```
> π‘ **Note**: This MCP server uses `stdio` transport (not SSE), which is perfect for Claude Code integration
## π― Examples
### π± Claude Code Usage
```python
# In Claude Code, you can now use natural language:
"List all my robots"
# β Calls mcp__mcp-gs-robot__list_robots
"Get status of robot GS101-0100-V1P-B001"
# β Calls mcp__mcp-gs-robot__get_robot_status
"Start cleaning task for robot in building 5"
# β Orchestrates site info β map selection β task creation
```
### π₯οΈ IDE Integration
**Cursor Configuration:**

**Cherry Studio Configuration:**

### π Debugging
Monitor server logs for troubleshooting:

## π Documentation
| Document | Purpose |
|----------|----------|
| π― [Claude Code Integration](docs/CLAUDE_CODE_INTEGRATION.md) | Complete Claude Code setup guide |
| π [API Reference](docs/apis.md) | Complete API documentation |
| π§ͺ [Testing Guide](docs/TESTING_GUIDE.md) | How to test the MCP server |
| π§ [Configuration](docs/README.md) | Detailed setup instructions |
## π€ Contributing
We welcome contributions! Please:
1. π΄ Fork the repository
2. πΏ Create a feature branch
3. β
Add tests for your changes
4. π Update documentation
5. π Submit a pull request
## π License
MIT License - see [LICENSE](LICENSE) file for details.
## π Support
- π [Issues](https://github.com/cfrs2005/mcp-gs-robot/issues)
- π§ [Email](mailto:cfrs2005@gmail.com)
- π [Gausium Developer Docs](https://developer.gs-robot.com/)
---
<div align="center">
**Made with β€οΈ for the Claude Code community**
*Enabling AI-powered robot automation, one task at a time* π€β¨
</div>