Thank you for your interest in contributing! This document covers how to get started.
git clone https://github.com/carboneio/carbone-mcp
cd carbone-mcp
npm install
npm run dev # Run with tsx (no build needed)npm test # Unit tests (no API key needed)
npm run test:watch # Watch mode
npm run test:coverage # Coverage report
npm run test:integration # Real API tests (requires CARBONE_TEST_API_KEY)All pull requests must pass the unit test suite. New features must include tests.
- TypeScript strict mode — no
anyunless unavoidable - ESM imports with
.jsextensions (import { foo } from './bar.js') - Zod schemas in
src/validation/schemas.tsfor input validation - Tool handlers in
src/tools/— one file per domain - Client HTTP calls in
src/carbone/client.tsonly - Keep tool descriptions accurate and LLM-friendly
- Fork the repository and create a feature branch
- Write or update tests for your changes
- Run
npm testand ensure all tests pass - Run
npm run buildand ensure TypeScript compiles cleanly - Open a pull request with a clear description of what and why
Open an issue at github.com/carboneio/carbone-mcp/issues with:
- Steps to reproduce
- Expected vs. actual behavior
- MCP client and Node.js version
Open an issue with the enhancement label. Describe the use case and why it belongs in this MCP server.