79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
# Contributing to MCP TypeScript SDK
|
||
|
||
We welcome contributions to the Model Context Protocol TypeScript SDK! This document outlines the process for contributing to the project.
|
||
|
||
## Branches
|
||
|
||
This repository has two main branches:
|
||
|
||
- **`main`** – v2 of the SDK (currently in development). This is a monorepo with split packages.
|
||
- **`v1.x`** – stable v1 release. Bug fixes and patches for v1 should target this branch.
|
||
|
||
**Which branch should I use as a base?**
|
||
|
||
- For **new features** or **v2-related work**: base your PR on `main`
|
||
- For **v1 bug fixes** or **patches**: base your PR on `v1.x`
|
||
|
||
## Getting Started
|
||
|
||
This project uses [pnpm](https://pnpm.io/) as its package manager. If you don't have pnpm installed, enable it via [corepack](https://nodejs.org/api/corepack.html) (included with Node.js 16.9+):
|
||
|
||
```bash
|
||
corepack enable
|
||
```
|
||
|
||
Then:
|
||
|
||
1. Fork the repository
|
||
2. Clone your fork: `git clone https://github.com/YOUR-USERNAME/typescript-sdk.git`
|
||
3. Install dependencies: `pnpm install`
|
||
4. Build the project: `pnpm build:all`
|
||
5. Run tests: `pnpm test:all`
|
||
|
||
## Development Process
|
||
|
||
1. Create a new branch for your changes (based on `main` or `v1.x` as appropriate)
|
||
2. Make your changes
|
||
3. Run `pnpm lint:all` to ensure code style compliance
|
||
4. Run `pnpm test:all` to verify all tests pass
|
||
5. Submit a pull request
|
||
|
||
## Pull Request Guidelines
|
||
|
||
- Follow the existing code style
|
||
- Include tests for new functionality
|
||
- Update documentation as needed
|
||
- Keep changes focused and atomic
|
||
- Provide a clear description of changes
|
||
|
||
## Running Examples
|
||
|
||
See [`examples/server/README.md`](examples/server/README.md) and [`examples/client/README.md`](examples/client/README.md) for a full list of runnable examples.
|
||
|
||
Quick start:
|
||
|
||
```bash
|
||
# Run a server example
|
||
pnpm --filter @modelcontextprotocol/examples-server exec tsx src/simpleStreamableHttp.ts
|
||
|
||
# Run a client example (in another terminal)
|
||
pnpm --filter @modelcontextprotocol/examples-client exec tsx src/simpleStreamableHttp.ts
|
||
```
|
||
|
||
## Code of Conduct
|
||
|
||
This project follows our [Code of Conduct](CODE_OF_CONDUCT.md). Please review it before contributing.
|
||
|
||
## Reporting Issues
|
||
|
||
- Use the [GitHub issue tracker](https://github.com/modelcontextprotocol/typescript-sdk/issues)
|
||
- Search existing issues before creating a new one
|
||
- Provide clear reproduction steps
|
||
|
||
## Security Issues
|
||
|
||
Please review our [Security Policy](SECURITY.md) for reporting security vulnerabilities.
|
||
|
||
## License
|
||
|
||
By contributing, you agree that your contributions will be licensed under the MIT License.
|