Skip to main content

Contributing

Join the conversation​

Contributing to the ROS-MCP Module​

The ROS-MCP module is open source (Apache 2.0) and welcomes contributions of all kinds:

  • Bug reports — found something broken? Open an issue
  • Documentation — clarify steps, add tutorials, or share demos
  • Code — bug fixes, new features, refactors, or tests
  • Examples — show how you use ROS-MCP with your robot

How to submit a pull request​

  1. Fork the ros-mcp-server repository

  2. Create a branch for your changes:

    git checkout -b your-branch-name
  3. Make your changes. When adding a new function, include:

    • The function name and format
    • A brief description of its functionality
    • Parameter and return type documentation
  4. Commit and push:

    git commit -m "your commit message"
    git push origin your-branch-name
  5. Open a pull request targeting the develop branch (not main)

Code style​

We use Ruff for linting and formatting. CI requires both checks to pass:

ruff format --check .
ruff check .

The easiest way to stay compliant:

# Option A: auto-fix on commit (recommended)
pre-commit install

# Option B: run manually before pushing
ruff format .
ruff check --fix .

Devcontainer​

A devcontainer is available with ROS2 Humble, Python 3.10+, ruff, pre-commit, uv, and git pre-installed. Open the repository in VS Code and select "Reopen in Container" when prompted.

See the full devcontainer setup guide for details on GUI app support (turtlesim, rviz, Gazebo).

License​

By contributing, you agree that your contributions will be licensed under Apache License 2.0. You retain copyright to your contributions.