lungeMCP

Quick start

Fire your first request, chain a token into a protected call, then drill into a large response - all within a small token budget.

1. Send a REST request

Ask the agent to call http_request. The tool returns a token-efficient summary by default; full payloads are referenced by a handle.

{
  "tool": "http_request",
  "input": {
    "method": "POST",
    "url": "https://api.example.com/login",
    "headers": { "Content-Type": "application/json" },
    "body": { "user": "a", "pass": "{{secret_pass}}" },
    "assert": [{ "status": 200 }, { "jsonpath": "$.token", "exists": true }],
    "extract": { "token": "$.token" }
  }
}

Response:

{
  "status": 200,
  "timeMs": 142,
  "assertions": { "passed": 2, "failed": 0 },
  "extracted": { "token": "***redacted***" },
  "bodySummary": { "type": "object", "keys": ["token", "expiresIn"] },
  "responseHandle": "resp_a1b2"
}

2. Chain the token into a protected call

Extracted values become {{vars}} you can reuse in later calls. The agent does not need to copy-paste anything.

{
  "tool": "http_request",
  "input": {
    "url": "https://api.example.com/me",
    "auth": { "type": "bearer", "token": "{{token}}" }
  }
}

3. Inspect a large response

When a response is too large to inline, pass the handle toinspect_response with an RFC 9535 JSONPath. Filters andmaxItems truncation keep the output small.

{
  "tool": "inspect_response",
  "input": {
    "handle": "resp_a1b2",
    "jsonpath": "$.items[?@.id==1]",
    "maxItems": 5
  }
}

4. Discover a GraphQL schema

graphql_introspect returns an enriched schema: field signatures, one-level nested fields, inline input types, and enum values - so the agent can pick operations without pasting docs.

{
  "tool": "graphql_introspect",
  "input": { "url": "https://api.example.com/graphql" }
}

5. Open a WebSocket session

Bounded sessions connect, send messages, and collect frames until a stop condition - then return a summarized batch with assertion results.

{
  "tool": "ws_session",
  "input": {
    "url": "wss://stream.example.com",
    "send": [{ "json": { "type": "subscribe", "topic": "prices" } }],
    "collect": { "maxMessages": 20, "maxDurationMs": 5000 },
    "assert": [{ "anyFrame": { "jsonpath": "$.type", "equals": "ack" } }]
  }
}
Ready for the full surface? See MCP tools.