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.2.tar.gz (138.7 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.2-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: roboteditmcp-0.1.2.tar.gz
  • Upload date:
  • Size: 138.7 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.2.tar.gz
Algorithm Hash digest
SHA256 ef98a91c87810a8b554505d93feaaff70d77dd560d3ef23294e9a6880c24abf7
MD5 e6b9c9232e292e3591b9290e9c3e676e
BLAKE2b-256 c5f24237ebb33096474a276262b2436425280ff381c503c776f5cdaccbfed189

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboteditmcp-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: roboteditmcp-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d10ea3d9d69dd683a7b53ef742cd65d64f3a71c8ea61ac9704cf74da36de3a57
MD5 5dc08053d6220609fa534138fa186386
BLAKE2b-256 740cb6b303a9279225fc9fb265e1510e196fbae2235645b3b9241484a9d4c5c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboteditmcp-0.1.2-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