Sign in to run requests with your own sandbox key. Sign in

MCP server

Run cascades from your AI assistant

@crscreditapi/cascades-mcp-server is a Model Context Protocol server that exposes the Cascades API as 9 tools. It is a thin wrapper: every tool is exactly one authenticated REST call using your own API key and scopes — no separate MCP auth, no data the API does not already return.

Install

Pick your client. Signed-in readers get their sandbox key pre-filled in every snippet and one-click install links.

Requirements

  • Node.js 18 or newer. Clients launch the server with npx -y @crscreditapi/cascades-mcp-server; nothing else to install.
  • An API key with the right scopes: workflows:read, workflows:write, executions:read, executions:write. Keys minted on API keys carry all of them. A key missing a scope gets 403 insufficient_scope on the affected tools only.
  • The host, not the API prefix: set CASCADES_PROD_BASE_URL to https://cascades.crscreditapi.com — without /api/v1; the server appends it.

Before you let an agent loose

Live runs are billable — and blocked for docs keys
cascades_trigger_workflow defaults to execution_mode: "test" (synthetic data, nothing billed). "live" pulls real bureau reports, needs a production-approved account, and is rejected outright for sandbox and docs-issued keys.
Delete asks for confirmation
cascades_delete_workflow soft-deletes a cascade and its description tells the model to confirm with you first. Give the agent a read-only key (drop the :write scopes) if it should never create, change or delete anything.
Never expose HTTP mode without auth
The server also runs as a Streamable-HTTP endpoint (MCP_TRANSPORT=http) for internal automation. In that mode every caller shares the process's one CASCADES_API_KEY and there is no per-request auth, so keep it on a private network. For people, use stdio: each user supplies their own key in their client config.

Tools

Each tool page lists the input schema, the REST operation behind it, and an example call. Descriptions are the ones the model sees.

Tool What it does Access REST call
cascades_create_workflow Create a new cascade (decision workflow) from a JSON definition, owned by the API key's account. write POST /workflows
cascades_delete_workflow Delete a cascade (soft-delete). destructive DELETE /workflows/{id}
cascades_generate_workflow Build a cascade from a plain-English policy description using the Cascades AI builder, then create it (by default) so it is immediately runnable with cascades_trigger_workflow. write POST /workflows/generate
cascades_get_execution Fetch a single cascade execution by id to check its status and results. read GET /executions/{id}
cascades_get_workflow Fetch one cascade by id, including its full node graph (`definition`). read GET /workflows/{id}
cascades_list_test_cases List the pre-registered sandbox test-case subjects for a cascade — the synthetic applicants the CRS Testcase Service has authored for that cascade's products (e.g. specific credit-score bands). read GET /workflows/{id}/test_cases
cascades_list_workflows List the caller's saved Cascades (decision workflows) — their id, code, name, use_case, trigger_type, and whether each is active. read GET /workflows
cascades_trigger_workflow Run a saved cascade for an applicant — i.e. start a decision. write POST /workflows/{id}/trigger
cascades_update_workflow Update an existing cascade. write PATCH /workflows/{id}

A worked session

What an assistant does with the tools, from "what can I run" to a decision — list, test cases, trigger, then poll the execution.

  1. You

    List my cascades and run the standard tenant screening for one of the sandbox test cases.

  2. Tool call
    Call
    {
      "active": true
    }
    Result
    {
      "data": [
        {
          "id": 157,
          "object": "workflow",
          "code": "WF-157",
          "name": "Tenant screening — standard",
          "use_case": "tenant_screening",
          "trigger_type": "manual",
          "active": true
        }
      ],
      "meta": {
        "page": 1,
        "per_page": 25,
        "total_count": 1,
        "total_pages": 1,
        "object": "list"
      }
    }
  3. Assistant

    You have one active cascade: Tenant screening — standard (id 157). Looking up its registered test subjects.

  4. Tool call
    Call
    {
      "workflow_id": 157
    }
    Result
    {
      "object": "test_case_list",
      "workflow_id": 157,
      "test_cases": [
        {
          "id": 54,
          "case_name": "Cascades_Credit_720",
          "product_code": "TUC1001",
          "payload": {
            "applicant": {
              "first_name": "Sandrx",
              "last_name": "Bowkey"
            },
            "property": {
              "state": "MD"
            }
          }
        }
      ]
    }
  5. Assistant

    One subject is registered for its TransUnion credit pull: Cascades_Credit_720 (Sandrx Bowkey). Running it in test mode.

  6. Tool call
    Call
    {
      "workflow_id": 157,
      "execution_mode": "test",
      "payload": {
        "applicant": {
          "first_name": "Sandrx",
          "last_name": "Bowkey"
        },
        "property": {
          "state": "MD"
        }
      }
    }
    Result
    {
      "data": {
        "id": 4821,
        "object": "execution",
        "workflow_id": 157,
        "status": "pending",
        "execution_mode": "test",
        "created_at": "2026-09-09T17:04:11Z"
      }
    }
  7. Assistant

    Execution 4821 is pending — the run is asynchronous. Polling until it reaches a terminal status.

  8. Tool call
    Call
    {
      "execution_id": 4821
    }
    Result
    {
      "data": {
        "id": 4821,
        "object": "execution",
        "workflow_id": 157,
        "status": "completed",
        "decision": "approve",
        "step_outputs": {
          "credit": {
            "score": 712
          },
          "decision": {
            "outcome": "approve"
          }
        }
      }
    }
  9. Assistant

    Done: execution 4821 completed with decision approve. The credit step returned a 712 score, above the cascade's 680 threshold, and no other rule fired.

Test with MCP Inspector

Before wiring an editor, call the tools by hand. The Inspector starts the server with the same environment and opens a browser UI listing every tool.

Your docs key stops working after 1 hour
When you are signed in, the commands and configs on this page fill in your docs key, which expires 1 hour after it is created or when you sign out. After that, the Cascades tools in your AI assistant stop working. For a key that lasts 90 days, create one on the API keys page. Then replace the CASCADES_API_KEY value of the cascades server in your assistant's MCP config with the new key.
Terminal
CASCADES_API_KEY={{API_KEY}} CASCADES_PROD_BASE_URL=https://cascades.crscreditapi.com \
  npx @modelcontextprotocol/inspector npx -y @crscreditapi/cascades-mcp-server

Configuration

Environment variableRequiredDescription
CASCADES_API_KEYyesYour bearer token. The server sends it as Authorization: Bearer … on every call.
CASCADES_PROD_BASE_URLyesCascades host without /api/v1, e.g. https://cascades.crscreditapi.com.
CASCADES_DEV_BASE_URLnoAlternate host used when a tool is called with environment: "dev"; falls back to the prod URL.
CASCADES_TIMEOUT_MSnoPer-request timeout, default 30000.
MCP_TRANSPORTnostdio (default; what every editor uses) or http.
MCP_PORTnoPort for HTTP mode, default 3004.