Skip to main content

MCP server for Robot configuration management - AI Agent tools for Robot draft/online/template configs

Project description

RobotEditMCP

MCP server for Robot configuration management - AI Agent tools for Robot draft/online/template configs.

Overview

RobotEditMCP provides AI Agents with tools to manage Robot configurations through a Model Context Protocol (MCP) server. It enables operations on draft, online (production), and template configurations with support for complex relationships and batch operations.

Features

  • Draft Configuration Management: Create, read, update, delete draft configs
  • Online Configuration Management: Manage production environment configs
  • Template Management: Save, load, and apply configuration templates
  • Batch Operations: Create interconnected configurations with internal references
  • Action Triggering: Execute configuration actions (sync and async)
  • Metadata Discovery: Explore scenes, factories, and schemas
  • Progressive Disclosure: Tools designed for AI-driven exploration

Installation

Prerequisites

  • Python 3.10 or higher
  • pip or poetry for package management

Install from source

# Clone the repository
git clone <repository-url>
cd RobotEditMCP

# Install in development mode
pip install -e .

# Or with poetry
poetry install

Configuration

RobotEditMCP requires environment variables for authentication and API access:

Required Environment Variables

Create a .env file in your project root:

# Required - API authentication and endpoint
ROBOT_ADMIN_TOKEN=your_admin_token_here
ROBOT_BASE_URL=https://api.robot.com

# Required - Kubernetes network routing headers
TF_NAMESPACE=staging-tenant
TF_ROBOT_ID=friday

# Optional
ROBOT_LOG_LEVEL=INFO
API_TIMEOUT=30
MAX_CONNECTIONS=10

Environment Variables Reference

Variable Required Description Default
ROBOT_ADMIN_TOKEN Yes Admin API token for authentication (sent in adminToken cookie) -
ROBOT_BASE_URL Yes RobotServer base URL -
TF_NAMESPACE Yes Kubernetes namespace for Pod routing (sent in tfNamespace cookie) -
TF_ROBOT_ID Yes Robot instance identifier for K8s service discovery (sent in tfRobotId cookie) -
ROBOT_LOG_LEVEL No Log level (INFO/ERROR/DEBUG) INFO
API_TIMEOUT No API request timeout in seconds 30
MAX_CONNECTIONS No Maximum HTTP connections 10

Kubernetes Architecture Notes

TF_NAMESPACE and TF_ROBOT_ID are essential cookies used in the Kubernetes network layer:

  • tfNamespace: Identifies the K8s namespace where the Robot pods are deployed
  • tfRobotId: Identifies the specific Robot instance for service discovery and routing

These cookies enable proper network routing in multi-tenant K8s environments, allowing requests to reach the correct Robot pod. They are set on the HTTP client instance and sent with every HTTP request, processed by the Kubernetes network infrastructure (e.g., Ingress, Service Mesh, or custom controllers).

Usage

Running the MCP Server

# Using the installed command
roboteditmcp

# Or directly with Python
python -m roboteditmcp.main

MCP Client Configuration

Add to your Claude Desktop config or MCP client configuration:

{
  "mcpServers": {
    "robotedit": {
      "command": "roboteditmcp",
      "env": {
        "ROBOT_ADMIN_TOKEN": "your_token_here",
        "ROBOT_BASE_URL": "https://api.robot.com",
        "TF_NAMESPACE": "staging-tenant",
        "TF_ROBOT_ID": "friday"
      }
    }
  }
}

Available Tools

Draft Configuration (9 tools)

  1. list_drafts - List draft configurations with optional filters
  2. get_draft - Get detailed information about a single draft
  3. create_draft - Create a new draft configuration
  4. update_draft - Update a draft (supports partial updates)
  5. delete_draft - Delete a draft configuration
  6. batch_create_drafts - Batch create with internal references
  7. release_draft - Release all drafts to production
  8. trigger_draft_action - Trigger an action on a draft

Online Configuration (4 tools)

  1. list_online_configs - List production environment configs
  2. get_online_config - Get online configuration details
  3. get_online_action_detail - Get action details (Online only)
  4. trigger_online_action - Trigger an action (supports async)

Template Management (5 tools)

  1. list_templates - List available templates (paginated)
  2. get_template - Get template details
  3. apply_template - Create draft from template
  4. save_as_template - Save draft as template
  5. delete_template - Delete a template

Metadata Tools (2 tools)

  1. list_scenes - List all scene types
  2. list_factories - List factories for a scene

Usage Examples

Exploring the Configuration System

# 1. List available scenes
scenes = list_scenes()
# Returns: ["ROBOT", "LLM", "CHAIN", ...]

# 2. List factories for a scene
factories = list_factories(scene="ROBOT", type="draft")
# Returns: {factory_names: ["RobotBrainDraftSetting", ...]}

Creating a Configuration

# Create a new draft
draft = create_draft(
    scene="ROBOT",
    name="RobotBrainDraftSetting",
    setting_name="My Robot Config",
    config={"model": "gpt-4", "temperature": 0.7}
)

Batch Creating with References

# Create multiple interconnected configs
result = batch_create_drafts(drafts=[
    {
        "temp_id": -1,
        "draft": {
            "scene": "LLM",
            "name": "LLMProviderDraftSetting",
            "setting_name": "My GPT",
            "config": {"model": "gpt-4"}
        }
    },
    {
        "temp_id": -2,
        "draft": {
            "scene": "ROBOT",
            "name": "RobotBrainDraftSetting",
            "setting_name": "My Robot",
            "config": {
                "llm_provider": {"setting_id": -1, "category": "Draft"}
            }
        }
    }
])

Updating and Releasing

# Update configuration (partial)
update_draft(
    setting_id=123,
    setting_name="My Robot Config (Updated)",
    config={"temperature": 0.8}  # Only update temperature
)

# Release all drafts to production
release_draft()

Architecture

src/roboteditmcp/
├── __init__.py           # Package initialization
├── config.py             # Configuration management
├── client.py             # HTTP API client
├── server.py             # MCP server implementation
├── main.py               # CLI entry point
├── logging_config.py     # Logging setup
├── models/
│   └── __init__.py       # Data models
└── tools/
    ├── __init__.py       # Tools registry
    ├── draft.py          # Draft configuration tools
    ├── online.py         # Online configuration tools
    ├── template.py       # Template management tools
    └── metadata.py       # Metadata tools

Authentication

RobotEditMCP uses the admin_key header for authentication (consistent with frontend implementation):

headers = {
    "admin_key": ROBOT_ADMIN_TOKEN,
    "Content-Type": "application/json"
}

Error Handling

All API responses follow the TFSResponse format:

{
  "code": 200,
  "message": "success",
  "data": {...}
}

Errors are raised with detailed messages for debugging.

Development

Running Tests

# Run tests (if available)
pytest tests/

# Or with poetry
poetry run pytest

Code Structure

  • client.py: Low-level HTTP client with all API endpoints
  • tools/*.py: MCP tool definitions and handlers
  • server.py: MCP server orchestration
  • config.py: Configuration and validation

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

[Specify your license here]

Support

For issues and questions:

  • API Documentation: /Users/huruize/PycharmProjects/TFRobotServer/tfrobotserver/api/v1/robot_factory/
  • Example Configurations: /Users/huruize/PycharmProjects/RobotEditMCP/机器人配置json.txt

Version History

  • 0.1.0 (2025): Initial release
    • Draft, Online, Template configuration management
    • Batch operations with references
    • Action triggering (sync/async)
    • Metadata discovery tools

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roboteditmcp-0.1.0.tar.gz (127.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

roboteditmcp-0.1.0-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file roboteditmcp-0.1.0.tar.gz.

File metadata

  • Download URL: roboteditmcp-0.1.0.tar.gz
  • Upload date:
  • Size: 127.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for roboteditmcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1236df870fdefb649e7d8251d259b5ee4a8f8ab6ed4d94ccef92439c7fb2e62d
MD5 3701fbd2566ea7b63ff9fab062efb97e
BLAKE2b-256 468def8323bb814b5ee2aa6b1b79b07b86b74901581043a193b17c90298ffafc

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboteditmcp-0.1.0.tar.gz:

Publisher: publish.yml on hrz394943230/RobotEditMCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file roboteditmcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: roboteditmcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for roboteditmcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19af8de7db7e14cf03464e3777be07427ac9f00d4c6e103e430b104af343aa97
MD5 09fb0b2d096e4d854931411984795bca
BLAKE2b-256 ab564b8209e48026de4438c5524ada5269d164abbd24c5668610a99f6419a922

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboteditmcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on hrz394943230/RobotEditMCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page