Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/modelcontextprotocol/csharp-sdk/llms.txt

Use this file to discover all available pages before exploring further.

Thank you for your interest in contributing to the Model Context Protocol (MCP) C# SDK! This guide provides everything you need to know to contribute effectively.
One of the easiest ways to contribute is to participate in discussions on GitHub issues. You can also contribute by submitting pull requests with code changes.
Also see the overall MCP communication guidelines, which explains how and where discussions about changes happen.

Code of Conduct

This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.

Bugs and Feature Requests

If you want to report a security-related issue, please see the Reporting security issues section of SECURITY.md.
Before reporting a new issue:
  1. Search for existing issues to see if one already exists
  2. Upvote (👍) existing issues that affect you
  3. Add a comment with your unique scenarios and requirements
  4. Open a new issue if you can’t find an existing one
Upvotes and clear details on the issue’s impact help us prioritize the most important issues to be worked on sooner rather than later.

Open an Issue

Report bugs or request features on GitHub

Prerequisites

Before you begin, ensure you have the following installed:

Required Tools

  • .NET SDK 10.0 or later - Required to build and test the project
The dev container configuration in this repository includes all the necessary tools and SDKs to get started quickly.

Building the Project

From the root directory of the repository, run:
dotnet build
This builds all projects in the solution with warnings treated as errors.

Running Tests

Run All Tests

From the root directory, run:
dotnet test
Some tests require Docker to be installed and running locally. If Docker is not available, those tests will be skipped.
Some tests require credentials for external services. When these are not available, those tests will be skipped.Use the following environment variables to provide credentials:
  • AI:OpenAI:ApiKey - OpenAI API Key

Run Tests for a Specific Project

dotnet test tests/ModelContextProtocol.Tests/
Tools like Visual Studio, JetBrains Rider, and VS Code also provide integrated test runners that can be used to run and debug individual tests.

Building the Documentation

This project uses DocFX to generate its conceptual and reference documentation. To view the documentation locally, run the following command from the root directory:
make serve-docs
Then open your browser and navigate to http://localhost:8080.

Submitting Pull Requests

We are always happy to see PRs from community members both for bug fixes as well as new features. Here are a few simple rules to follow when you prepare to contribute to our codebase:

Finding an Issue to Work On

Issues that are good candidates for first-time contributors are marked with the good first issue label. Those do not require too much familiarity with the framework and are more novice-friendly.
If you want to contribute a change that is not covered by an existing issue, first open an issue with a description of the change you would like to make and the problem it solves so it can be discussed before a pull request is submitted.
Assign yourself to the issue so others know you are working on it.

Before Writing Code

For all but the smallest changes, it’s a good idea to create a design document or at least a high-level description of your approach and share it in the issue for feedback before you start coding. This helps ensure that your approach aligns with the project’s goals and avoids wasted effort.

Before Submitting the Pull Request

Before submitting a pull request, make sure that it checks the following requirements:

Code Style

The code follows the repository’s style guidelines

Tests

Tests are included for new features or bug fixes

Passing Tests

All existing and new tests pass locally

Error Handling

Appropriate error handling has been added

Documentation

Documentation has been updated as needed
When submitting the pull request, provide a clear description of the changes made and reference the issue it addresses.

During Pull Request Review

A project maintainer will review your pull request and provide feedback.
Be prepared to make changes based on feedback. The review process helps maintain code quality and ensures consistency across the project.

Development Workflow

Fork the repository on GitHub and clone your fork locally.
git clone https://github.com/YOUR-USERNAME/csharp-sdk.git
cd csharp-sdk
Create a new branch for your changes.
git checkout -b my-feature-branch
Make your changes, following the project’s coding standards and guidelines.
Run the full test suite to ensure your changes don’t break existing functionality.
dotnet test
Commit your changes with a clear, descriptive commit message.
git add .
git commit -m "Add feature X"
git push origin my-feature-branch
Open a pull request on GitHub from your branch to the main repository.

License

By contributing, you agree that your contributions will be licensed under the Apache License 2.0.

Next Steps

View Issues

Find an issue to work on

Discussions

Join the conversation

Roadmap

See what’s planned for future releases

Versioning

Understand the versioning policy