Contributing to MCP Toolkit

June 29, 2026 ยท View on GitHub

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

Contributing to MCP Toolkit

We welcome contributions from the community! Whether you're fixing bugs, improving docs, or building new features, your help makes this project better.

๐Ÿš€ Getting Started (New Contributors)

Pick Your Contribution Type

๐Ÿ‘ถ First time contributing? Start here:

  • ๐Ÿ“ Good First Issues โ€” Simple tasks perfect for beginners
  • ๐Ÿ“– Documentation โ€” Fix typos, clarify instructions, add examples
  • ๐Ÿ› Report a Bug โ€” Found something broken? Open an issue

Looking for more challenge?

  • ๐Ÿ’ป Medium Issues โ€” Feature requests and improvements
  • ๐Ÿ—๏ธ Architecture โ€” Design new systems or refactor existing code
  • ๐ŸŽฏ Check our ROADMAP.md for planned features

๐Ÿ› ๏ธ Local Development Setup (2 minutes)

Prerequisites

  • Git
  • .NET 9.0 SDK
  • PowerShell 7+
  • Docker (optional, for full testing)

Quick Start

# 1. Clone the repository
git clone https://github.com/AzureCosmosDB/MCPToolKit.git
cd MCPToolKit

# 2. Restore dependencies
dotnet restore AzureCosmosDB.MCP.Toolkit.sln

# 3. Build the solution
dotnet build AzureCosmosDB.MCP.Toolkit.sln -c Debug

# 4. Run tests
dotnet test AzureCosmosDB.MCP.Toolkit.sln -c Debug

# 5. Run locally
dotnet run --project src/AzureCosmosDB.MCP.Toolkit/AzureCosmosDB.MCP.Toolkit.csproj

Server will start at http://localhost:8080


๐Ÿ’ก Contribution Ideas

๐Ÿ“– Documentation (15 min - 1 hour)

  • โœ… Fix typos or grammar
  • โœ… Clarify confusing instructions
  • โœ… Add code examples
  • โœ… Create diagrams for architecture

How to:

  1. Find a doc in /docs or /README.md
  2. Click "Edit" on GitHub
  3. Make your changes
  4. Submit a PR with description

๐Ÿ› Bug Fixes (1 - 4 hours)

  • โœ… Reproduce the bug (add test case)
  • โœ… Fix the issue
  • โœ… Add test to prevent regression
  • โœ… Submit a PR

How to:

  1. Pick a bug from Issues labeled "bug"
  2. Create a feature branch: git checkout -b fix/issue-number
  3. Make your changes
  4. Run tests: dotnet test
  5. Push and create a PR

โœจ Features (4 - 8 hours)

  • โœ… New MCP tools
  • โœ… Enhanced search capabilities
  • โœ… Security improvements
  • โœ… Performance optimizations

How to:

  1. Discuss in Issues or Discussions first
  2. Check ROADMAP.md for planned features
  3. Create feature branch: git checkout -b feature/your-feature-name
  4. Implement with tests
  5. Update docs
  6. Submit a PR

๐Ÿงช Tests & Quality (1 - 2 hours)

  • โœ… Add unit tests
  • โœ… Add integration tests
  • โœ… Improve test coverage
  • โœ… Performance benchmarks

How to: See /tests/AzureCosmosDB.MCP.Toolkit.Tests/ for examples

๐ŸŽฏ Help Wanted

Check current priorities:


๐Ÿ“‹ Pull Request Process

Before You Start

  1. Check existing PRs โ€” avoid duplicates
  2. Open an issue first for large changes (get feedback early!)
  3. Create a feature branch: git checkout -b feature/your-change

Making Changes

# Make your changes
# Test them
dotnet test AzureCosmosDB.MCP.Toolkit.sln -c Debug

# Commit with clear message
git commit -m "Fix: Describe what you fixed" -m "Closes #issue-number"

# Push to your fork
git push origin feature/your-change

Submit Your PR

  1. Create PR with clear title and description
  2. Link related issues: Fixes #123 or Related to #456
  3. First-time contributor? A CLA bot will ask you to sign. It's quick and one-time.
  4. Request review from maintainers
  5. Address feedback kindly

PR Checklist

  • Builds without errors (dotnet build)
  • Tests pass (dotnet test)
  • New feature has tests
  • Updated docs (if needed)
  • Commit messages are clear
  • No unnecessary dependencies added

๐Ÿ“š Code Standards

Style Guide

  • Follow C# coding conventions (Microsoft style guide)
  • Use meaningful variable names
  • Add comments for complex logic
  • Keep methods focused and small

Testing

  • Every feature should have unit tests
  • Write integration tests for MCP tools
  • Test error cases, not just happy paths
  • Use descriptive test names: TestListDatabasesWithValidCredentials

Documentation

  • Add XML comments to public methods
  • Update README if behavior changes
  • Add examples for new features

๐Ÿค Community & Support

Get Help

Share Your Work

  • Tell us about your use case in Discussions
  • Show off your contribution! We'd love to hear about it.

Most contributions require a Contributor License Agreement (CLA) so we can use your work.

  • Microsoft will automatically ask you to sign when you submit your first PR
  • It takes 2 minutes (read & click)
  • You only need to do it once across all Microsoft repositories

For details, visit: https://cla.microsoft.com


Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.

Expected Behavior:

  • โœ… Be respectful and inclusive
  • โœ… Welcome diverse perspectives
  • โœ… Focus on constructive feedback
  • โœ… Respect others' time and effort

Unacceptable Behavior:

  • โŒ Harassment or discrimination
  • โŒ Insulting or demeaning comments
  • โŒ Personal attacks
  • โŒ Sharing sensitive information without consent

Report Issues: Email opencode@microsoft.com with details.


๐ŸŽ‰ Thank You!

Your contribution helps make MCP Toolkit better for everyone. We appreciate your time and effort!

Questions? Open an issue or start a discussion. We're here to help. ๐Ÿ™Œ