Thank you for your interest in contributing to Iris. We welcome contributions that improve the project for everyone.
By submitting a pull request, you agree to our Contributor License Agreement. This is required before any contribution can be reviewed or merged. The CLA ensures that the project can be maintained, distributed, and — if necessary — relicensed in the future.
You are welcome to use AI tools (Copilot, Claude, etc.) to assist with your contributions. However, by submitting a PR, you represent that you have reviewed all code for correctness and security, and that you accept full responsibility for the contribution under the CLA — regardless of how it was generated.
If you discover a security vulnerability, do not open a public issue. Please email security@iris-eval.com instead. See SECURITY.md for details.
git clone https://github.com/iris-eval/mcp-server.git
cd mcp-server
npm install| Command | Description |
|---|---|
npm run dev |
Start dev server with tsx |
npm run build |
Build TypeScript |
npm run typecheck |
Type check without emitting |
npm test |
Run unit tests |
npm run test:integration |
Run integration tests |
npm run test:coverage |
Run tests with coverage |
npm run lint |
Lint source code |
npm run format |
Format with Prettier |
cd dashboard
npm install
npm run dev # Starts Vite dev server with HMRThe dev server proxies API requests to http://localhost:6920.
- Fork the repo and create a feature branch
- Make your changes
- Ensure all tests pass:
npm test && npm run test:integration - Ensure code is formatted:
npm run format:check - Submit a PR with a clear description of changes
- TypeScript strict mode
- ESM modules (no CommonJS)
- Vitest for testing
- Write to stderr for logging (stdout reserved for stdio transport)
- Serialize complex objects as JSON in SQLite columns
- Use Zod schemas for MCP tool input validation