Thank you for helping improve mcp-kit. Contributions to the CLI, project templates, shared utilities, tests,
documentation, and issue triage are welcome.
By participating, you agree to follow the project Code of Conduct.
- Use GitHub Discussions for usage questions, integration help, ideas, and showcases.
- Use GitHub Issues for reproducible bugs, concrete feature proposals, and documentation problems.
- Search existing issues and discussions before opening a new one.
A bug report should include the create-mcp-kit version, operating system, Node.js version, package manager, project
type, language, transports, selected template and plugins, and a minimal reproduction. Include the generated project
or terminal output when possible, after removing secrets and other sensitive information.
This repository is a pnpm workspace managed with Turborepo. Use the Node.js version declared in .nvmrc and the pnpm version declared in package.json.
git clone https://github.com/my-mcp-hub/mcp-kit.git
cd mcp-kit
nvm use
corepack enable
pnpm installStart all packages and the documentation site in development mode:
pnpm devTo work on one part of the repository, use a workspace filter. For example:
pnpm --filter create-mcp-kit dev
pnpm --filter @mcp-kit/docs dev- Create a focused branch from the current default branch.
- Keep the change limited to one problem or feature.
- Add or update tests for behavior changes.
- Keep the TypeScript and JavaScript variants, and the server and client templates, consistent where the change applies to more than one generated project.
- Update both
docs/enanddocs/zhwhen changing user-facing APIs, workflows, or documentation. - Add a Changeset with
pnpm changesetwhen a change affects a published package. Documentation-only, test-only, and internal maintenance changes usually do not need one. - Use a Conventional Commit message such as
fix: preserve selected transports in generated projectsordocs: clarify client setup.
Do not edit package changelogs or versions directly. They are generated from Changesets as part of the release workflow.
The templates under packages/create-mcp-kit/template are the source of generated projects. When changing them:
- Update every applicable
server-ts,server-js,client-ts, andclient-jsvariant. - Preserve the
.hbsextension for Handlebars-rendered files and verify that template variables work for all relevant option combinations. - Check both the Standard and Custom setup paths when a change affects optional tooling.
- Generate a project locally and run its relevant install, build, lint, and test commands when the generated output changes.
Run the checks relevant to your change before opening a pull request:
pnpm exec biome check \
packages/create-mcp-kit/src packages/create-mcp-kit/tests \
packages/shared/src packages/shared/tests
pnpm exec eslint \
packages/create-mcp-kit/src packages/create-mcp-kit/tests \
packages/shared/src packages/shared/tests
pnpm test
pnpm buildFor a small source change, run the closest Vitest file first. For example:
pnpm vitest run packages/shared/tests/projectSetup.test.tsFor documentation-only changes, build the documentation site:
pnpm --filter @mcp-kit/docs buildIf generated output changes, describe the project types, languages, transports, templates, and plugin combinations you tested manually in the pull request.
- Link the related issue or discussion when one exists.
- Explain the problem, the chosen solution, and any tradeoffs.
- Include terminal output, generated-file examples, screenshots, or recordings when they make the change easier to review.
- Call out breaking changes and migration steps explicitly.
- Include the required Changeset for user-facing changes to published packages.
- Keep unrelated formatting, dependency, generated-file, and lockfile changes out of the pull request.
- Make sure all relevant checks pass.
Maintainers may ask for a smaller reproduction, additional template coverage, or more tests before reviewing an implementation. This keeps reviews focused and helps prevent regressions across generated project variants.