---
schema: "interfacedelta-service-md/1"
target_key: "sha256:4ed322ad69ab0ebf44fa0422b4a20ce0e36cd86017338ebd3ba0eb30419c61aa"
origin: "https://qualitative-analysis.surveysai.com"
protocols: ["mcp"]
observed_at: "2026-11-12T13:59:05.593Z"
generated_at: "2026-11-13T00:40:54.997Z"
record_url: "https://interfacedelta.com/atlas/sha256:4ed322ad69ab0ebf44fa0422b4a20ce0e36cd86017338ebd3ba0eb30419c61aa"
record_api: "https://interfacedelta.com/api/v1/record/services/sha256:4ed322ad69ab0ebf44fa0422b4a20ce0e36cd86017338ebd3ba0eb30419c61aa"
source: "InterfaceDelta atlas"
license_note: "Use of this record is governed by https://interfacedelta.com/terms."
---

# Service record: https://qualitative-analysis.surveysai.com

## Identity
- Origin: https://qualitative-analysis.surveysai.com
- Endpoints: https://qualitative-analysis.surveysai.com/mcp
- Protocols: mcp
- Registry names: com.surveysai/qualitative-analysis-workflow
- First retained observation: 2026-11-12T13:59:05.593Z
- Latest observation: 2026-11-12T13:59:05.593Z

## Tools
- Tool 1: qualitative\_cancel\_analysis (mcp); inputs: idempotency\_key, run\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
- Tool 2: qualitative\_get\_account (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 3: qualitative\_get\_capabilities (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 4: qualitative\_get\_deliverable (mcp); inputs: deliverable\_id, format; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 5: qualitative\_get\_pricing (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 6: qualitative\_get\_run (mcp); inputs: run\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 7: qualitative\_list\_deliverables (mcp); inputs: run\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 8: qualitative\_list\_presets (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 9: qualitative\_list\_runs (mcp); inputs: limit; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 10: qualitative\_quote\_analysis (mcp); inputs: analysis\_brief, input\_bytes, input\_word\_counts, language, preset\_id, report\_language, selected\_reports, transcript\_sources; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 11: qualitative\_retry\_analysis (mcp); inputs: idempotency\_key, run\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 12: qualitative\_start\_analysis (mcp); inputs: analysis\_brief, expected\_effort, expected\_model, idempotency\_key, inputs, language, preset\_id, quoted\_price\_credits; inputs omitted: 4; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
Tools omitted: 0.

## Effect readings (AI)
- Tool 1 (qualitative\_cancel\_analysis): ◇ AI reading; state: counted; deletes (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 1 purpose: ◇ AI reading; Cancels a qualitative analysis run permanently; refunds the package price to credit only if the run failed on our side.; lens: tool-purpose-v1; model: not recorded.
- Tool 2 (qualitative\_get\_account): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 3 purpose: ◇ AI reading; Returns an overview of the Qualitative Analysis service, including auth, credits, input limits and the start-then-poll job model.; lens: tool-purpose-v1; model: not recorded.
- Tool 4 (qualitative\_get\_deliverable): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 4 purpose: ◇ AI reading; Fetches one analysis deliverable by ID, returning text formats inline or a download link for large or binary files.; lens: tool-purpose-v1; model: not recorded.
- Tool 5 purpose: ◇ AI reading; Returns the USD value of one credit, word-count pricing tiers, and the credit packs buyers can purchase in the web app.; lens: tool-purpose-v1; model: not recorded.
- Tool 6 (qualitative\_get\_run): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 6 purpose: ◇ AI reading; Returns the current status, steps, progress and ready deliverables of one analysis run, without starting or changing any work.; lens: tool-purpose-v1; model: not recorded.
- Tool 7 (qualitative\_list\_deliverables): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 7 purpose: ◇ AI reading; Lists the outputs of one qualitative analysis run, such as reports or codebooks, with each item's status and file formats.; lens: tool-purpose-v1; model: not recorded.
- Tool 8 (qualitative\_list\_presets): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 8 purpose: ◇ AI reading; Lists available qualitative research method presets with their required inputs, analysis steps and possible report types, without prices.; lens: tool-purpose-v1; model: not recorded.
- Tool 9 (qualitative\_list\_runs): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 9 purpose: ◇ AI reading; Lists your recent analyses, newest first, with their titles, statuses, presets and prices, up to 100 entries.; lens: tool-purpose-v1; model: not recorded.
- Tool 10 purpose: ◇ AI reading; Estimates the credit and USD price of a qualitative analysis package from word counts, without storing data or charging anything.; lens: tool-purpose-v1; model: not recorded.
- Tool 11 purpose: ◇ AI reading; Starts a free retry of a failed qualitative analysis run; the result arrives later and must be polled for status.; lens: tool-purpose-v1; model: not recorded.
- Tool 12 purpose: ◇ AI reading; Starts a background qualitative analysis of submitted text and charges the quoted credit price immediately.; lens: tool-purpose-v1; model: not recorded.

## Change history
No changes recorded in the retained history.

## Payment rails
- Protocols observed: none.
- HTTP 402 seen in retained observations: false.

## Not covered
- We don't call tools.
- We don't rate or certify.
- We don't publish prices.
- We cover only what was observed.

## Evidence
- Identity: observed / declared; observation time: 2026-11-12T13:59:05.593Z.
- Tools: declared; observation time: 2026-11-12T13:59:05.593Z.
- Effect readings (AI): AI reading; observation time: 2026-11-12T13:59:05.593Z.
- Change history: observed; observation time: 2026-11-12T13:59:05.593Z; change observation times: none.
- Payment rails: observed; observation time: 2026-11-12T13:59:05.593Z.

```json
{
  "schema": "interfacedelta-service-md/1",
  "target_key": "sha256:4ed322ad69ab0ebf44fa0422b4a20ce0e36cd86017338ebd3ba0eb30419c61aa",
  "origin": "https://qualitative-analysis.surveysai.com",
  "protocols": [
    "mcp"
  ],
  "observed_at": "2026-11-12T13:59:05.593Z",
  "generated_at": "2026-11-13T00:40:54.997Z",
  "record_url": "https://interfacedelta.com/atlas/sha256:4ed322ad69ab0ebf44fa0422b4a20ce0e36cd86017338ebd3ba0eb30419c61aa",
  "record_api": "https://interfacedelta.com/api/v1/record/services/sha256:4ed322ad69ab0ebf44fa0422b4a20ce0e36cd86017338ebd3ba0eb30419c61aa",
  "source": "InterfaceDelta atlas",
  "license_note": "Use of this record is governed by https://interfacedelta.com/terms.",
  "identity": {
    "origin": "https://qualitative-analysis.surveysai.com",
    "endpoints": [
      "https://qualitative-analysis.surveysai.com/mcp"
    ],
    "protocols": [
      "mcp"
    ],
    "registry_names": [
      "com.surveysai/qualitative-analysis-workflow"
    ],
    "first_retained_observation": "2026-11-12T13:59:05.593Z",
    "latest_observation": "2026-11-12T13:59:05.593Z"
  },
  "tools": [
    {
      "name": "qualitative_cancel_analysis",
      "protocol": "mcp",
      "inputs": [
        "idempotency_key",
        "run_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "deletes",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Cancels a qualitative analysis run permanently; refunds the package price to credit only if the run failed on our side.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_get_account",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "qualitative_get_capabilities",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns an overview of the Qualitative Analysis service, including auth, credits, input limits and the start-then-poll job model.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_get_deliverable",
      "protocol": "mcp",
      "inputs": [
        "deliverable_id",
        "format"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Fetches one analysis deliverable by ID, returning text formats inline or a download link for large or binary files.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_get_pricing",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns the USD value of one credit, word-count pricing tiers, and the credit packs buyers can purchase in the web app.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_get_run",
      "protocol": "mcp",
      "inputs": [
        "run_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns the current status, steps, progress and ready deliverables of one analysis run, without starting or changing any work.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_list_deliverables",
      "protocol": "mcp",
      "inputs": [
        "run_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists the outputs of one qualitative analysis run, such as reports or codebooks, with each item's status and file formats.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_list_presets",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists available qualitative research method presets with their required inputs, analysis steps and possible report types, without prices.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_list_runs",
      "protocol": "mcp",
      "inputs": [
        "limit"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists your recent analyses, newest first, with their titles, statuses, presets and prices, up to 100 entries.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_quote_analysis",
      "protocol": "mcp",
      "inputs": [
        "analysis_brief",
        "input_bytes",
        "input_word_counts",
        "language",
        "preset_id",
        "report_language",
        "selected_reports",
        "transcript_sources"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Estimates the credit and USD price of a qualitative analysis package from word counts, without storing data or charging anything.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_retry_analysis",
      "protocol": "mcp",
      "inputs": [
        "idempotency_key",
        "run_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Starts a free retry of a failed qualitative analysis run; the result arrives later and must be polled for status.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "qualitative_start_analysis",
      "protocol": "mcp",
      "inputs": [
        "analysis_brief",
        "expected_effort",
        "expected_model",
        "idempotency_key",
        "inputs",
        "language",
        "preset_id",
        "quoted_price_credits"
      ],
      "inputs_omitted": 4,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Starts a background qualitative analysis of submitted text and charges the quoted credit price immediately.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    }
  ],
  "tools_omitted": 0,
  "tools_state": "recorded",
  "changes": [],
  "payment_rails": {
    "protocols": [],
    "http_402_seen": false
  },
  "not_covered": [
    "We don't call tools.",
    "We don't rate or certify.",
    "We don't publish prices.",
    "We cover only what was observed."
  ],
  "evidence": [
    {
      "section": "Identity",
      "classes": [
        "observed",
        "declared"
      ],
      "observed_at": "2026-11-12T13:59:05.593Z"
    },
    {
      "section": "Tools",
      "classes": [
        "declared"
      ],
      "observed_at": "2026-11-12T13:59:05.593Z"
    },
    {
      "section": "Effect readings (AI)",
      "classes": [
        "AI reading"
      ],
      "observed_at": "2026-11-12T13:59:05.593Z"
    },
    {
      "section": "Change history",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-12T13:59:05.593Z",
      "observation_times": []
    },
    {
      "section": "Payment rails",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-12T13:59:05.593Z"
    }
  ]
}
```
