{"_id":"@crscreditapi/cascades-mcp-server","_rev":"2-68d67f2b7a8af28ea988e0960b8227ff","name":"@crscreditapi/cascades-mcp-server","dist-tags":{"latest":"0.4.0-137997b"},"versions":{"0.4.0-af94aba":{"name":"@crscreditapi/cascades-mcp-server","version":"0.4.0-af94aba","_id":"@crscreditapi/cascades-mcp-server@0.4.0-af94aba","maintainers":[{"name":"tarikneradin","email":"tarik.neradin@gmail.com"},{"name":"crs-mcp","email":"danis.jusic@crscreditapi.com"}],"homepage":"https://github.com/StitchCredit/cascades-mcp-server#readme","bugs":{"url":"https://github.com/StitchCredit/cascades-mcp-server/issues"},"bin":{"cascades-mcp-server":"dist/index.js"},"dist":{"shasum":"64dacbe0bf69721d55e4fac8289d369f26b9cacd","tarball":"https://registry.npmjs.org/@crscreditapi/cascades-mcp-server/-/cascades-mcp-server-0.4.0-af94aba.tgz","fileCount":27,"integrity":"sha512-ytDy9En67hthVZ/SZg1/3xYyUPB6pSC2lkn4b7e81tLZQY5Knz+o+FqXHme4eOwynmPoMoQQFTGwucRv9Pkmvw==","signatures":[{"sig":"MEQCIE4Ezuj0ibBBVpMyW1fChEm0LeOS0MWEfjMIzo2w4NLJAiB7h2GuLGBbKNVmCbjMyJLYu0EcLOOxQX243/TKesvuJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38599},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"af94abaf36da9e9b4dc4e7470e06b70429140571","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"crs-mcp","email":"danis.jusic@crscreditapi.com"},"repository":{"url":"git+https://github.com/StitchCredit/cascades-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for CRS Cascades — list, trigger, and inspect decision workflows (cascades) over the public /api/v1.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"dotenv":"^16.3.0","express":"^5.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.11.0","@types/express":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/cascades-mcp-server_0.4.0-af94aba_1783095105570_0.051320949242701586","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-137997b":{"name":"@crscreditapi/cascades-mcp-server","version":"0.4.0-137997b","description":"MCP server for CRS Cascades — list, trigger, and inspect decision workflows (cascades) over the public /api/v1.","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"cascades-mcp-server":"dist/index.js"},"engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/StitchCredit/cascades-mcp-server.git"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","dotenv":"^16.3.0","express":"^5.2.1"},"devDependencies":{"@types/express":"^5.0.6","@types/node":"^20.11.0","typescript":"^5.3.0"},"_id":"@crscreditapi/cascades-mcp-server@0.4.0-137997b","gitHead":"137997bbd08916d323242b277cdd55e61d212b47","bugs":{"url":"https://github.com/StitchCredit/cascades-mcp-server/issues"},"homepage":"https://github.com/StitchCredit/cascades-mcp-server#readme","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-0koBdZxYJv7qPPKB1uD6HT+BI3L2WF6sKlYqb7PJ9TTofF51hJFgk0f2o+V+X/QRH7vsJBqKEomVAcIvjHj2rQ==","shasum":"fc1061082d6c4848febdf3150c24b547ac27b0d2","tarball":"https://registry.npmjs.org/@crscreditapi/cascades-mcp-server/-/cascades-mcp-server-0.4.0-137997b.tgz","fileCount":27,"unpackedSize":40641,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDsy/7hf9NTmPPKfHcMQvbC1Wxwt/pYO+ExBTkFfGdcOQIgS6sHk2sSj1Al2khdtNaARg6CHHoU163pHHaIpqYhMpc="}]},"_npmUser":{"name":"crs-mcp","email":"danis.jusic@crscreditapi.com"},"directories":{},"maintainers":[{"name":"tarikneradin","email":"tarik.neradin@gmail.com"},{"name":"crs-mcp","email":"danis.jusic@crscreditapi.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cascades-mcp-server_0.4.0-137997b_1788552660883_0.7171898620040462"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-03T16:11:45.319Z","modified":"2026-09-04T20:11:01.193Z","0.4.0-af94aba":"2026-07-03T16:11:45.698Z","0.4.0-137997b":"2026-09-04T20:11:01.026Z"},"bugs":{"url":"https://github.com/StitchCredit/cascades-mcp-server/issues"},"homepage":"https://github.com/StitchCredit/cascades-mcp-server#readme","repository":{"type":"git","url":"git+https://github.com/StitchCredit/cascades-mcp-server.git"},"description":"MCP server for CRS Cascades — list, trigger, and inspect decision workflows (cascades) over the public /api/v1.","maintainers":[{"name":"tarikneradin","email":"tarik.neradin@gmail.com"},{"name":"crs-mcp","email":"danis.jusic@crscreditapi.com"}],"readme":"# @crscreditapi/cascades-mcp-server\n\nMCP server for **CRS Cascades** — lets an AI assistant (Claude Code, Claude Desktop, Cursor, …)\nlist your decision workflows (\"cascades\"), run them for an applicant, and read the results, over\nthe public `/api/v1`. A thin wrapper: every tool is one authenticated REST call, reusing your CRS\nAPI key (no MCP-specific auth).\n\n## Tools\n\n| Tool | What it does | API call |\n|------|--------------|----------|\n| `cascades_list_workflows` | List your saved cascades (id, name, use_case, active…) | `GET /api/v1/workflows` |\n| `cascades_create_workflow` | Create a cascade from a JSON definition (active by default) | `POST /api/v1/workflows` |\n| `cascades_get_workflow` | Fetch one cascade incl. its full node graph (`definition`) | `GET /api/v1/workflows/:id` |\n| `cascades_update_workflow` | Update a cascade (partial: name / definition / active / …) | `PATCH /api/v1/workflows/:id` |\n| `cascades_delete_workflow` | Delete a cascade (soft-delete) | `DELETE /api/v1/workflows/:id` |\n| `cascades_generate_workflow` | AI-build a cascade from a plain-English policy description, then create it | `POST /api/v1/workflows/generate` |\n| `cascades_trigger_workflow` | Run a cascade for an applicant → returns a pending execution | `POST /api/v1/workflows/:id/trigger` |\n| `cascades_get_execution` | Poll an execution; read status + `step_outputs` | `GET /api/v1/executions/:id` |\n\nAll tools accept an optional `environment: \"prod\" | \"dev\"`.\n\n## Configuration\n\n| Env var | Required | Description |\n|---------|----------|-------------|\n| `CASCADES_API_KEY` | ✅ | Your CRS Cascades API key (bearer token). Mint one at `/admin/api_demo_token`. |\n| `CASCADES_PROD_BASE_URL` | ✅ | Cascades host, e.g. `https://api.crscreditapi.com` (no trailing `/api/v1`). |\n| `CASCADES_DEV_BASE_URL` | – | Optional dev/sandbox host; falls back to prod. |\n| `CASCADES_TIMEOUT_MS` | – | Request timeout, default `30000`. |\n| `MCP_TRANSPORT` | – | `stdio` (default) or `http`. |\n| `MCP_PORT` | – | HTTP port (default `3004`), only for `MCP_TRANSPORT=http`. |\n\n> **Token scopes.** The key must carry `workflows:read`, `workflows:write`,\n> `executions:write`, and `executions:read`. A key minted without a required\n> scope returns `403 insufficient_scope` on the affected tool (the others still\n> work). Read-only integrations can drop the `:write` scopes.\n\n## Install (local / stdio — Claude Code & Claude Desktop)\n\n```bash\nnpm install -g @crscreditapi/cascades-mcp-server\n```\n\nAdd to your MCP config (`.mcp.json` for Claude Code, `claude_desktop_config.json` for Claude Desktop):\n\n```json\n{\n  \"mcpServers\": {\n    \"cascades\": {\n      \"command\": \"cascades-mcp-server\",\n      \"env\": {\n        \"MCP_TRANSPORT\": \"stdio\",\n        \"CASCADES_PROD_BASE_URL\": \"https://api.crscreditapi.com\",\n        \"CASCADES_API_KEY\": \"<your-api-key>\"\n      }\n    }\n  }\n}\n```\n\nOr let your assistant do it:\n\n```bash\nclaude mcp add cascades -- cascades-mcp-server\n```\n\nThen just ask: *\"List my cascades\", \"Trigger workflow 157 for Maria Santos and explain the decision.\"*\n\n## Run (HTTP — hosted / n8n / EC2)\n\n```bash\nMCP_TRANSPORT=http MCP_PORT=3004 \\\nCASCADES_PROD_BASE_URL=https://api.crscreditapi.com \\\nCASCADES_API_KEY=<key> \\\ncascades-mcp-server\n```\n\nPoint the client at `http://<host>:3004/mcp` (stateless Streamable HTTP). `GET /health` → `{ \"status\": \"ok\" }`.\n\n> **Security — HTTP mode.** HTTP serves every caller with the server's single `CASCADES_API_KEY`\n> and has no per-request auth, so run it only on a **trusted/internal network** (e.g. behind n8n on\n> the EC2 host), never exposed publicly. For per-customer use, ship the **stdio** binary so each\n> customer supplies their own key in `mcp.json`. Per-request auth (an OAuth handshake) is the v2 path.\n\n## Develop\n\n```bash\nnpm install\nnpm run build\nMCP_TRANSPORT=http CASCADES_PROD_BASE_URL=http://localhost:3000 CASCADES_API_KEY=<key> npm start\n```\n\nTest tools interactively with the MCP Inspector (`npx @modelcontextprotocol/inspector`).\n\n## Roadmap\n\n- **next:** a **PDF** create path (build a cascade from an uploaded policy document), and an implementation-guide **resource** (expose the API docs as MCP context). Text-based create already ships — `cascades_create_workflow` (from a JSON definition) and `cascades_generate_workflow` (from a plain-English description).\n- **v2:** OAuth handshake (replace the shared API key), webhook-completion polling, Slack/Autopsy integration.\n","readmeFilename":"README.md"}