diff --git a/.github/DISCUSSION_TEMPLATE/general.yml b/.github/DISCUSSION_TEMPLATE/general.yml new file mode 100644 index 0000000..6ddef33 --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/general.yml @@ -0,0 +1,22 @@ +body: + - type: checkboxes + id: checklist + attributes: + label: Pre-submission Checklist + description: Please verify the following before submitting your discussion + options: + - label: I have verified that this discussion would not be more appropriate as an issue in a specific repository + required: true + - label: I have searched existing discussions to avoid duplicates + required: true + + - type: textarea + id: topic + attributes: + label: Discussion Topic + description: What would you like to discuss with the MCP community? + placeholder: | + Please provide a clear description of what you'd like to discuss. + Include relevant context and background information. + validations: + required: true diff --git a/.github/DISCUSSION_TEMPLATE/ideas.yml b/.github/DISCUSSION_TEMPLATE/ideas.yml new file mode 100644 index 0000000..9eb2753 --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/ideas.yml @@ -0,0 +1,36 @@ +body: + - type: checkboxes + id: checklist + attributes: + label: Pre-submission Checklist + description: Please verify the following before submitting your idea + options: + - label: I have verified this would not be more appropriate as a feature request in a specific repository + required: true + - label: I have searched existing discussions to avoid duplicates + required: true + + - type: textarea + id: idea + attributes: + label: Your Idea + description: Share your idea for improving MCP + placeholder: | + Please describe your idea in detail: + - What problem does it solve? + - Who would benefit from this? + - How might it be implemented? + validations: + required: true + + - type: checkboxes + id: scope + attributes: + label: Scope + description: What aspect of MCP does this idea relate to? (Select all that apply) + options: + - label: Protocol Specification + - label: SDK Features + - label: Documentation + - label: Developer Experience + - label: Other diff --git a/.github/DISCUSSION_TEMPLATE/q-a.yml b/.github/DISCUSSION_TEMPLATE/q-a.yml new file mode 100644 index 0000000..6e0de6e --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/q-a.yml @@ -0,0 +1,33 @@ +body: + - type: checkboxes + id: checklist + attributes: + label: Pre-submission Checklist + description: Please verify the following before asking your question + options: + - label: I have checked that this question would not be more appropriate as an issue in a specific repository + required: true + - label: I have searched existing discussions and documentation for answers + required: true + + - type: checkboxes + id: category + attributes: + label: Question Category + description: What area is your question about? Select all that apply. + options: + - label: Protocol Specification + - label: SDK Usage + - label: Server Implementation + - label: General Implementation + - label: Documentation + - label: Other + + - type: textarea + id: question + attributes: + label: Your Question + description: What would you like to know? + placeholder: Be specific and include any relevant context or code examples + validations: + required: true diff --git a/.github/DISCUSSION_TEMPLATE/show-and-tell.yml b/.github/DISCUSSION_TEMPLATE/show-and-tell.yml new file mode 100644 index 0000000..6a6158f --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/show-and-tell.yml @@ -0,0 +1,37 @@ +body: + - type: checkboxes + id: checklist + attributes: + label: Pre-submission Checklist + description: Please verify the following before sharing your work + options: + - label: I have checked that this content would not be more appropriate in a specific repository + required: true + - label: This post follows the MCP community guidelines + required: true + + - type: textarea + id: description + attributes: + label: What would you like to share? + description: Tell us about what you've built or learned with MCP + placeholder: | + Share details about: + - What you built + - How you built it + - What challenges you faced + - What you learned + - Any tips for others + validations: + required: true + + - type: textarea + id: links + attributes: + label: Relevant Links + description: Share any relevant links to your project + placeholder: | + - GitHub repository + - Blog post + - Demo + - Documentation diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..d6120f7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,24 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Logs** +If applicable, add logs to help explain your problem. + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..d355cda --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,28 @@ + + +## Motivation and Context + + +## How Has This Been Tested? + + +## Breaking Changes + + +## Types of changes + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to change) +- [ ] Documentation update + +## Checklist + +- [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) +- [ ] My code follows the repository's style guidelines +- [ ] New and existing tests pass locally +- [ ] I have added appropriate error handling +- [ ] I have added or updated documentation as needed + +## Additional context + diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..05c32c6 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +mcp-coc@anthropic.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..cfe4a16 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,66 @@ +# Contributing to Model Context Protocol + +Thank you for your interest in contributing to the Model Context Protocol (MCP)! This document provides guidelines for contributing to any repository in the MCP organization. + +## How to Contribute + +### Issues and Discussions +- For bugs and actionable items, please prefer creating an issue in the relevant repository +- For open-ended or design discussions _specifically related to the specification_, use our [specification discussions](https://github.com/modelcontextprotocol/specification/discussions) +- For other general discussions that are not suitable as issues, use our [organization discussions](https://github.com/orgs/modelcontextprotocol/discussions) + +In all cases, please check for duplicates before creating new issues or discussions! + +### Pull Requests +We welcome PRs across all our repositories! When submitting: +- Fork the repository +- Follow existing code style +- Include tests where applicable +- Update documentation as needed +- Link related issues + +## Development Guidelines + +### Code Quality +- Follow the repository's established patterns +- Include appropriate documentation +- Add tests for new functionality +- Handle errors appropriately + +### Documentation +- Keep READMEs current +- Document configuration options +- Provide clear examples +- Include setup instructions + +### Security +- Follow security best practices +- Implement proper input validation +- Document security considerations + +## Getting Started + +1. Fork the repository +2. Clone your fork: + ```bash + git clone https://github.com/your-username/repository-name.git + ``` +3. Create a feature branch: + ```bash + git checkout -b my-feature + ``` +4. Make your changes and commit: + ```bash + git commit -m "Description of changes" + ``` +5. Push and create a Pull Request + +## Code of Conduct + +Please note that this project is released with a [Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. + +## License + +By contributing, you agree that your contributions will be licensed under the MIT License. + +Thank you for contributing to Model Context Protocol! diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..2015472 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,14 @@ +# Security Policy +Thank you for helping us keep Model Context Protocol and any systems it interacts with secure. + +## Reporting Security Issues + +The Model Context Protocol project is maintained by [Anthropic](https://www.anthropic.com/). + +The security of our systems and user data is Anthropic’s top priority. We appreciate the work of security researchers acting in good faith in identifying and reporting potential vulnerabilities. + +Our security program is managed on HackerOne and we ask that any validated vulnerability in this functionality be reported through their [submission form](https://hackerone.com/anthropic-vdp/reports/new?type=team&report_type=vulnerability). + +## Vulnerability Disclosure Program + +Our Vulnerability Program Guidelines are defined on our [HackerOne program page](https://hackerone.com/anthropic-vdp).