Thanks for taking the time to contribute! This project follows a lightweight, "small changes move fast" workflow.
Requirements: Node ≥ 20, pnpm ≥ 9.
git clone https://github.com/IndiFox/revroute-mcp.git
cd revroute-mcp
pnpm install
cp .env.example .env # paste your REVROUTE_API_KEY
pnpm dev # tsx watchThe local stdio loop accepts JSON-RPC on stdin. For interactive testing point the MCP Inspector at it:
npx -y @modelcontextprotocol/inspector node dist/index.jspnpm typecheck # must be clean
pnpm test # all green
pnpm lint # biome
pnpm build # tsupA passing CI matrix (Node 20 & 22) is required before merge.
- Define the zod input schema in
src/schemas/<resource>.ts. Mark destructive inputs with aconfirm: z.literal(true)field. - Add a handler in
src/tools/<resource>.tsviareg.define({ name, description, inputSchema, handler, destructive? }). - Use
revroute_<resource>_<action>for the name (snake_case, prefixed). - Map any new HTTP error shape in
src/client/errors.tsif needed. - Add a unit test in
test/tools.<resource>.test.tsmocking the upstream API withmsw.
Use the templates under .github/ISSUE_TEMPLATE — they collect the
context we need to reproduce quickly.
For security issues, do not open a public issue. See SECURITY.md.
- Branches:
feat/short-description,fix/short-description,docs/.... - Commit subjects in Conventional Commits style:
feat: …,fix: …,docs: …,chore: …,refactor: …,test: …. - Keep PRs focused. Big changes welcome — but split refactors from behaviour changes when practical.
By contributing you agree your work is licensed under the MIT License.