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:
- Find a doc in
/docsor/README.md - Click "Edit" on GitHub
- Make your changes
- 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:
- Pick a bug from Issues labeled "bug"
- Create a feature branch:
git checkout -b fix/issue-number - Make your changes
- Run tests:
dotnet test - Push and create a PR
โจ Features (4 - 8 hours)
- โ New MCP tools
- โ Enhanced search capabilities
- โ Security improvements
- โ Performance optimizations
How to:
- Discuss in Issues or Discussions first
- Check ROADMAP.md for planned features
- Create feature branch:
git checkout -b feature/your-feature-name - Implement with tests
- Update docs
- 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
- Check existing PRs โ avoid duplicates
- Open an issue first for large changes (get feedback early!)
- 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
- Create PR with clear title and description
- Link related issues:
Fixes #123orRelated to #456 - First-time contributor? A CLA bot will ask you to sign. It's quick and one-time.
- Request review from maintainers
- 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
- ๐ฌ GitHub Discussions โ Ask questions
- ๐ GitHub Issues โ Report bugs or request features
- ๐ง Email: opencode@microsoft.com
Share Your Work
- Tell us about your use case in Discussions
- Show off your contribution! We'd love to hear about it.
๐ Legal Requirements
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. ๐