{"_id":"@gera-services/mcp-gera-compliance","_rev":"2-12276d2bd7707db4bd27297348e098c7","name":"@gera-services/mcp-gera-compliance","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@gera-services/mcp-gera-compliance","version":"1.0.0","keywords":["mcp","model-context-protocol","eu-ai-act","ai-act","compliance","gera","gera-compliance","ai-governance"],"author":{"name":"Gera Systems Ltd"},"license":"MIT","_id":"@gera-services/mcp-gera-compliance@1.0.0","maintainers":[{"name":"gera.services","email":"armen@gera.services"}],"homepage":"https://geracompliance.com","bugs":{"url":"https://github.com/geraservicesuk/globetura/issues"},"bin":{"mcp-gera-compliance":"bin/cli.js","mcp-gera-compliance-http":"bin/http.js"},"dist":{"shasum":"cc55b1834289570b7cb48a31ed40f18e638fbb4a","tarball":"https://registry.npmjs.org/@gera-services/mcp-gera-compliance/-/mcp-gera-compliance-1.0.0.tgz","fileCount":13,"integrity":"sha512-GrSvMrDDiroffXku0wgCTPTV9R55Fgj3zFwI9xPABD2Xmu+OgVqpr5qeg6zZeRuAdiUTVx4e+Eph86pR2x9how==","signatures":[{"sig":"MEUCIAyGKIBbR5/vpcZNuKTiunxaG9rtMnKS1NzfuOsCmuUWAiEA5X1VydRXNY4XBbXxAYBP95YHANKRXAdYOF9JplDFf/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55829},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","engines":{"node":">=20"},"gitHead":"f306e3e455a45612f0da2b8cad3a6b026787f33a","mcpName":"io.github.geraservicesuk/mcp-gera-compliance","scripts":{"build":"tsc --noCheck","smoke":"node bin/cli.js < /dev/null & node scripts/smoke.mjs","start":"node bin/cli.js","start:http":"node bin/http.js","type-check":"tsc --noEmit"},"_npmUser":{"name":"gera.services","email":"armen@gera.services"},"repository":{"url":"git+https://github.com/geraservicesuk/globetura.git","type":"git","directory":"packages/mcp-gera-compliance"},"_npmVersion":"11.11.0","description":"GeraCompliance MCP server — classify AI systems under the EU AI Act, look up obligations and articles. Deterministic, offline, no auth. A Gera Systems product.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.12.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gera-compliance_1.0.0_1782169803850_0.5589802173662399","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@gera-services/mcp-gera-compliance","version":"1.0.1","description":"GeraCompliance MCP server — classify AI systems under the EU AI Act, look up obligations and articles. Deterministic, offline, no auth. A Gera Systems product.","license":"MIT","type":"module","main":"dist/server.js","types":"dist/server.d.ts","mcpName":"services.gera/mcp-gera-compliance","bin":{"mcp-gera-compliance":"bin/cli.js","mcp-gera-compliance-http":"bin/http.js"},"scripts":{"build":"tsc --noCheck","type-check":"tsc --noEmit","start":"node bin/cli.js","start:http":"node bin/http.js","smoke":"node bin/cli.js < /dev/null & node scripts/smoke.mjs"},"keywords":["mcp","model-context-protocol","eu-ai-act","ai-act","compliance","gera","gera-compliance","ai-governance"],"author":{"name":"Gera Systems Ltd"},"homepage":"https://geracompliance.com","repository":{"type":"git","url":"git+https://github.com/geraservicesuk/globetura.git","directory":"packages/mcp-gera-compliance"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^20.12.0","typescript":"^5.4.0"},"engines":{"node":">=20"},"gitHead":"40a635bc6b1a5690e15c0429eb009746b52c1b21","_id":"@gera-services/mcp-gera-compliance@1.0.1","bugs":{"url":"https://github.com/geraservicesuk/globetura/issues"},"_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-kAcoZC3isFWHN3/PDSdHuhJiCFXOW7dhsZ8kPZ3cbtbh8l2+tNW5gvu0UOKxoqW50BX4x+Y1mDjrBwxBqjLqmw==","shasum":"fb355efe813f3460ad3a41943281bfd92dc5b25d","tarball":"https://registry.npmjs.org/@gera-services/mcp-gera-compliance/-/mcp-gera-compliance-1.0.1.tgz","fileCount":13,"unpackedSize":55807,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEDJIRl9j8MXvh0Ktx8lcdMJYz67PHkAF7FHzQZrfBBpAiABIr9rsuoNijG19Tcx7+V9eydlB/RVB3cmveXBRFkm0g=="}]},"_npmUser":{"name":"gera.services","email":"armen@gera.services"},"directories":{},"maintainers":[{"name":"gera.services","email":"armen@gera.services"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-gera-compliance_1.0.1_1782206184605_0.45573383848410054"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T23:10:03.679Z","modified":"2026-06-23T09:16:24.962Z","1.0.0":"2026-06-22T23:10:03.995Z","1.0.1":"2026-06-23T09:16:24.785Z"},"bugs":{"url":"https://github.com/geraservicesuk/globetura/issues"},"author":{"name":"Gera Systems Ltd"},"license":"MIT","homepage":"https://geracompliance.com","keywords":["mcp","model-context-protocol","eu-ai-act","ai-act","compliance","gera","gera-compliance","ai-governance"],"repository":{"type":"git","url":"git+https://github.com/geraservicesuk/globetura.git","directory":"packages/mcp-gera-compliance"},"description":"GeraCompliance MCP server — classify AI systems under the EU AI Act, look up obligations and articles. Deterministic, offline, no auth. A Gera Systems product.","maintainers":[{"name":"gera.services","email":"armen@gera.services"}],"readme":"# GeraCompliance MCP Server\n\n[![A Gera Systems product](https://img.shields.io/badge/Gera-Systems-0a7?style=flat)](https://geracompliance.com)\n\nAn [MCP](https://modelcontextprotocol.io) server that lets AI agents — Claude\nDesktop, ChatGPT with tools, Cursor, Windsurf, or any MCP client — **classify\nAI systems under the EU AI Act** and look up the resulting obligations and\nregulation, fully offline.\n\nIt embeds the real GeraCompliance deterministic classification engine\n(Articles 5, 6(1), 6(2), 6(3), 50 of Regulation (EU) 2024/1689). **No backend,\nno network, no auth** — it computes everything locally, so it gives the same\nanswer the [GeraCompliance](https://geracompliance.com) product gives and is\nsafe to run anywhere.\n\n> Orientation only — not legal advice. For a documented conformity package,\n> use the full GeraCompliance product.\n\n## Tools\n\n| Tool | What it does |\n|------|--------------|\n| `classify_ai_system` | Run the EU AI Act risk classification from boolean answer keys. Returns the risk tier (`prohibited` / `high_risk` / `borderline` / `limited_risk` / `minimal_risk`), triggered articles, obligations, conformity-assessment flag, and a full reasoning trace. |\n| `get_requirements` | Given a risk tier, return its obligations, key articles, and whether a conformity assessment is required. |\n| `get_regulation_info` | Look up an EU AI Act article by number, or search all articles by keyword. |\n| `list_risk_triggers` | List the 8 Article 5 prohibited practices and 8 Annex III high-risk categories, each with the boolean answer key — so an agent can map a plain-language description onto classification inputs. |\n\nA typical agent flow: `list_risk_triggers` → set the matching boolean keys →\n`classify_ai_system` → `get_requirements` for the resulting tier.\n\n## Install & run\n\n```bash\n# Run directly (no global install) once published to npm:\nnpx -y @gera-services/mcp-gera-compliance\n\n# Or from this repo:\ncd packages/mcp-gera-compliance\nnpm run build      # tsc --noCheck  -> dist/\nnode bin/cli.js    # starts on stdio\n```\n\n## Client configuration\n\n### Claude Desktop / Claude Code (`claude_desktop_config.json`)\n\n```json\n{\n  \"mcpServers\": {\n    \"gera-compliance\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@gera-services/mcp-gera-compliance\"]\n    }\n  }\n}\n```\n\nLocal (unpublished) variant — point at the built CLI:\n\n```json\n{\n  \"mcpServers\": {\n    \"gera-compliance\": {\n      \"command\": \"node\",\n      \"args\": [\"/Users/armen/Gera/packages/mcp-gera-compliance/bin/cli.js\"]\n    }\n  }\n}\n```\n\n### Cursor / Windsurf (`.cursor/mcp.json` etc.)\n\n```json\n{\n  \"mcpServers\": {\n    \"gera-compliance\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@gera-services/mcp-gera-compliance\"]\n    }\n  }\n}\n```\n\n## Hosted transport (Streamable HTTP / SSE — for ChatGPT Apps & remote MCP clients)\n\nThe same four tools are also served over the MCP **Streamable HTTP** transport,\nso remote MCP clients and **ChatGPT Apps** can connect to a public URL instead\nof spawning a local stdio process. The HTTP server reuses the exact same tool\nhandlers — it just swaps the transport.\n\n```bash\ncd packages/mcp-gera-compliance\nnpm run build           # tsc --noCheck -> dist/ (builds both transports)\nnpm run start:http      # or: node bin/http.js\n# -> listening on http://0.0.0.0:3399/mcp  (POST JSON-RPC; GET /health)\n```\n\nEndpoints:\n\n| Method & path | Purpose |\n|---|---|\n| `POST /mcp` | MCP JSON-RPC (and SSE streaming). This is the MCP endpoint clients connect to. |\n| `GET /health` | Plain-text liveness probe (`ok`) — exempt, never gated. |\n| `GET /mcp` | `405` — stateless mode has no server-initiated stream to open. |\n\nIt runs **stateless** (a fresh server per request, no session id) — correct for\na read-only, offline, no-auth classifier with no cross-call state, and safe to\nhost behind a serverless function or a horizontally-scaled container.\n\nConfigure the host/port via env vars: `PORT` (or `MCP_HTTP_PORT`, default\n`3399`) and `HOST` (default `0.0.0.0`).\n\n### Connecting a remote MCP client\n\nPoint any Streamable-HTTP MCP client at the deployed URL, e.g.:\n\n```json\n{\n  \"mcpServers\": {\n    \"gera-compliance\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://mcp.geracompliance.com/mcp\"\n    }\n  }\n}\n```\n\nFor **ChatGPT Apps** / remote-MCP connectors, register the same\n`https://mcp.geracompliance.com/mcp` URL as the server endpoint. No auth is\nrequired — the classifier is fully offline and deterministic.\n\n> Quick check once running:\n> `curl -s http://localhost:3399/health` → `ok`\n> `curl -s -X POST http://localhost:3399/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}'`\n\n## Verify it works\n\n```bash\nnpm run build\nnode scripts/smoke.mjs\n```\n\nThe smoke test speaks raw MCP JSON-RPC over stdio (`initialize` → `tools/list`\n→ several `tools/call`) and asserts the classifications. Expected output ends\nwith `ALL SMOKE CHECKS PASSED`.\n\n## Example\n\nAsk your agent: *\"We're building an AI tool that screens job applicants and\nranks them for recruiters. Is it high-risk under the EU AI Act?\"*\n\nThe agent calls `classify_ai_system` with `annex3_employment_recruitment: true`\n(plus the `cat4_*` boundary answers) and gets back:\n\n```json\n{\n  \"risk_tier\": \"high_risk\",\n  \"triggered_articles\": [\"Article 6(2)\", \"Annex III (employment_workers_management)\"],\n  \"conformity_assessment_required\": true,\n  \"obligations\": [\"Establish a risk management system (Article 9).\", \"...\"]\n}\n```\n\n## License\n\nMIT © Gera Systems Ltd\n","readmeFilename":"README.md"}