mcp-cobot-server
The MCP Cobot Server is a FastMCP implementation for the MyCobot280 robot, providing high performance and scalability. It integrates with collaborative robot systems to manage commands efficiently according to the MCP standard.
MCP Cobot Server
This repository contains the MCP Cobot Server, a FastMCP server implementation for the M5 MyCobot280 robot.
Based on the model context protocol python-sdk: https://github.com/modelcontextprotocol/python-sdk?tab=readme-ov-file#quickstart
Features
- Implements the MCP standard for efficient context management.
- Built with FastMCP for high performance and scalability.
- Designed for integration with collaborative robot (myCobot) systems.
Requirements
- Python 3.8+
- FastMCP library
Installation
-
Clone the repository:
git clone https://github.com/your-username/mcp-cobot-server.git cd mcp-cobot-server
-
Install dependencies:
uv sync source .venv/bin/activate
Note This project uses uv
to install manage the python virtual environment and dependencies. Learn more here: https://docs.astral.sh/uv/guides/projects/
Usage
Start the server:
# launch a standalone MCP server with:
uvx mcpo --port 8000 -- uv run --with mcp[cli] --with pymycobot mcp run ./server.py
# Install the mcp profile with claude
mcp install server.py
For development:
# debug the mcp interface
mcp dev server.py
Available Functions
The following functions are exposed to mcp.tool
in server.py
:
get_angles
: Retrieves the current angles of all servos.move_angle
: Moves a specific joint (servo) to a target angle at a specified speed.move_angles
: Moves all joints to specified angles at a given speed.go_home
: Moves all joints to a predefined "home" position.set_home
: Sets the current joint angles as the new "home" position.change_color
: Changes the LED matrix color of the robot.relax
: Releases all servos, allowing the robot arms to relax.interpretive_dance_routine
: Executes a creative dance routine based on a description, involving joint movements and LED color changes.
MyCobot M5 280
The myCobot SDK I'm using is documented here: https://github.com/elephantrobotics/pymycobot/blob/main/docs/MyCobot_280_en.md The robot I'm using is here: Elephant Robotics myCobot 280 M5Stack 2023 - 6 DOF Collaborative Robot
Joint ranges
Joint Id | Range |
---|---|
1 | -168 ~ 168 |
2 | -135 ~ 135 |
3 | -150 ~ 150 |
4 | -145 ~ 145 |
5 | -165 ~ 165 |
6 | -180 ~ 180 |
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
This project is licensed under the MIT License. See the file for details.