Getting started
- Fork the repository on GitHub
- Clone your fork locally
- Install dependencies:
npm install - Create a branch:
git checkout -b feature/your-feature-name
Development workflow
Make changes
Edit source files insrc/ and add tests alongside your code.
Build and test
Test your changes
Commit
Pre-commit hooks will run ESLint and Prettier on staged files.Push and create PR
Push to your fork and create a pull request to the main branch.Pull request guidelines
Title format
Use conventional commit format:feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for test changeschore:for maintenance tasks
Description
Include:- What changed and why
- How to test
- Any breaking changes
- Related issues
What gets checked in CI
All pull requests run through CI which validates:- Type checking (
npm run typecheck) - Linting (
npm run lint) - Formatting (
npm run format:check) - Tests (
npm test) — 127 tests across 6 files
Code style
- Follow existing patterns in the codebase
- Use TypeScript for type safety
- Add JSDoc comments for public APIs
- Keep functions focused and small
- Use Zod schemas for input validation
Adding new tools
When adding a new MCP tool:- Add the tool registration in
src/tools/index.ts - Include Zod schema for input validation
- Add tests in
src/tools/__tests__/ - Update documentation in
docs/reference/tools.mdx - Add examples if applicable
Documentation
Documentation lives indocs/ using Mintlify format:
- Update reference docs for API changes
- Add guides for new features
- Keep
docs.jsonnavigation current - Validate docs:
npm run docs:validate
Testing
- Write tests for new features
- Aim for high coverage on critical paths
- Include both unit and integration tests
- Test error cases and edge conditions
Security
If your changes affect security:- Review
SECURITY.md - Consider input validation implications
- Check for sensitive data exposure
- Document any new security considerations
Getting help
- Open an issue for questions
- Check existing issues and PRs
- Review the codebase for patterns
- Run existing tests to understand behavior