lungeMCP

Collections

Both ad-hoc agent calls and persisted declarative collections. Collections are plain YAML or JSON files - git-friendly, diffable, and shareable.

Why collections

Ad-hoc tool calls are great for exploration, but teams also need repeatable test suites. Lunge collections let you define ordered steps once and re-run them with a single tool call. Variables thread from one step to the next; assertions gate execution; only and tags filter runs.

Format

A collection is a list of named steps. Each step is a tool invocation with inputs, optional assertions, and optional extractions. The runner threads extracted values into the next step's inputs.

# collections/login-flow.yaml
name: Login flow
steps:
  - name: login
    tool: http_request
    input:
      method: POST
      url: "{{baseUrl}}/login"
      body: { user: "a", pass: "{{secret_pass}}" }
    extract: { token: "$.token" }

  - name: me
    tool: http_request
    input:
      url: "{{baseUrl}}/me"
      auth: { type: bearer, token: "{{token}}" }
    assert: [{ status: 200 }]

  - name: invoices
    tool: http_request
    input:
      url: "{{baseUrl}}/invoices"
      auth: { type: bearer, token: "{{token}}" }
      query: { limit: 10 }
    extract: { firstInvoiceId: "$.items[0].id" }

Running a collection

{
  "tool": "run_collection",
  "input": {
    "path": "collections/login-flow.yaml",
    "env": "dev",
    "tags": ["smoke"]
  }
}

Output is a per-step summary: status, assertions, extracted vars, and handles - same token-efficient shape as individual tool calls.

Listing collections

{ "tool": "list_collections", "input": {} }

Filters

  • only - run only the named step(s).
  • tags - run only steps tagged with any of the given tags.
  • env - resolve {{vars}} against a named environment.
Collections are the bridge between one-off agent exploration and repeatable, reviewable test suites - all behind the same MCP tool surface.