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.
We welcome contributions from the community! Whether you're fixing bugs, improving docs, or building new features, your help makes this project better.
👶 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
- Git
- .NET 9.0 SDK
- PowerShell 7+
- Docker (optional, for full testing)
# 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.csprojServer will start at http://localhost:8080
- ✅ 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
- ✅ 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
- ✅ 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
- ✅ Add unit tests
- ✅ Add integration tests
- ✅ Improve test coverage
- ✅ Performance benchmarks
How to:
See /tests/AzureCosmosDB.MCP.Toolkit.Tests/ for examples
Check current priorities:
- 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
# 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- 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
- 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
- Follow C# coding conventions (Microsoft style guide)
- Use meaningful variable names
- Add comments for complex logic
- Keep methods focused and small
- Every feature should have unit tests
- Write integration tests for MCP tools
- Test error cases, not just happy paths
- Use descriptive test names:
TestListDatabasesWithValidCredentials
- Add XML comments to public methods
- Update README if behavior changes
- Add examples for new features
- 💬 GitHub Discussions — Ask questions
- 🐛 GitHub Issues — Report bugs or request features
- 📧 Email: opencode@microsoft.com
- 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
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.
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. 🙌