git clone <repo>
cd mcp
npm ci
npm run dev- Create
src/tools/new.tools.ts:
export const myTool: Tool = {
name: 'platformos.my.tool',
description: 'Does X',
inputSchema: z.object({ foo: z.string() }),
handler: async (input) => ({ result: input.foo.toUpperCase() })
};
export const myTools = [myTool];- Register in
src/tools/index.ts:
export const allTools = [
...environmentTools,
...myTools,
// ...
];- Add tests
src/__tests__/my.tools.test.ts - Update TOOLS.md
npm run lint
npm run test
npm run buildnpm version patch/minor/majornpm publish- Update CHANGELOG.md
- TypeScript strict
- Zod for all schemas
- 90%+ test coverage
- No
anytypes - JSDoc for complex functions
| Type | Command | Purpose |
|---|---|---|
| Unit | npm test |
Tool handlers, wrappers |
| Integration | npm test |
Express endpoints |
| E2E | Manual | nock + real flows |
Questions? Open an issue!","path":"CONTRIBUTING.md