Contributing to Fast MCP
September 14, 2025 ยท View on GitHub
Thank you for your interest in contributing to Fast MCP! This document provides guidelines and instructions for contributing to the project.
Table of Contents
Code of Conduct
This project and everyone participating in it is governed by the Fast MCP Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
Getting Started
Development Environment
To set up your development environment:
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/yjacquin/fast-mcp.git cd fast-mcp - Install dependencies:
bundle install - Run the tests to make sure everything is working:
bundle exec rspec
Running Tests
Fast MCP uses RSpec for testing. To run the tests:
bundle exec rspec
To run a specific test file:
bundle exec rspec spec/path/to/file_spec.rb
How to Contribute
Reporting Bugs
If you find a bug, please report it by creating an issue on GitHub. When filing a bug report, please include:
- A clear, descriptive title
- A detailed description of the issue, including steps to reproduce
- The expected behavior and what actually happened
- Any relevant logs or error messages
- Your Ruby version and operating system
- Any other context that might be helpful
Suggesting Enhancements
If you have an idea for an enhancement or a new feature, please create an issue on GitHub. When suggesting an enhancement, please include:
- A clear, descriptive title
- A detailed description of the proposed enhancement
- The motivation for the enhancement (why it would be useful)
- Any examples of how the enhancement would work
- Any relevant references or resources
Pull Requests
- Create a new branch for your changes:
git checkout -b my-feature-branch - Make your changes and commit them with clear, descriptive commit messages
- Add or update tests as necessary
- Update documentation as necessary
- Push your branch to your fork:
git push origin my-feature-branch - Create a pull request from your branch to the main repository
- Describe your changes in the pull request description
- Link to any related issues
Pull requests should:
- Address a single concern
- Include tests for new functionality
- Update documentation as necessary
- Follow the style guidelines
- Pass all tests and CI checks
Style Guidelines
Code Style
Fast MCP follows the Ruby Style Guide. We use Rubocop to enforce these guidelines. To check your code:
bundle exec rubocop
To automatically fix some issues:
bundle exec rubocop -a
Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Consider starting the commit message with an applicable emoji:
- โจ
:sparkles:when adding a new feature - ๐
:bug:when fixing a bug - ๐
:books:when adding or updating documentation - โป๏ธ
:recycle:when refactoring code - ๐งช
:test_tube:when adding or updating tests - ๐ง
:wrench:when updating configuration files
- โจ
Documentation
- Use YARD for code documentation
- Update the README.md and other documentation as necessary
- Add examples for new features
- Keep documentation up-to-date with code changes
Development Process
Branching Strategy
mainis the default branch and should always be deployable- Feature branches should be created from
mainand merged back via pull requests - Release branches are created for each release and named
release/vX.Y.Z - Hotfix branches are created from the release branch and named
hotfix/vX.Y.Z.N
Release Process
- Update the version number in
lib/mcp/version.rb - Update the CHANGELOG.md with the changes in the new version
- Create a release branch
release/vX.Y.Z - Create a pull request to merge the release branch into
main - After the pull request is merged, create a new release on GitHub
- Build and publish the gem to RubyGems
Community
- Join the discussion on GitHub Discussions
- Follow the project on social media (if applicable)
- Participate in community events and meetups
Legal
By contributing to Fast MCP, you agree that your contributions will be licensed under the project's MIT license.
Thank you for contributing to Fast MCP!