Qualia MCP

Qualia MCP

MCP server for the Qualia title and escrow platform, enabling you to talk to your orders, messages, and documents from Claude, Cursor, or any MCP client.

Category
Visit Server

README

Qualia MCP

MCP server for the Qualia title and escrow platform -- talk to your orders, messages, and documents from Claude, Cursor, or any MCP client. First MCP in the title & escrow vertical.

What you can do with it

You:   "List orders awaiting closing and group by status."
Claude: *calls list_orders, summarises by status*

You:   "Send the buyer an update on the closing timeline for ORD-12345."
Claude: *calls send_message with subject + body, confirms the result*

You:   "What documents are attached to order ORD-98765?"
Claude: *calls list_documents, returns the file list*

Why this exists

Qualia is the leading digital closing platform for the title & escrow industry. Their public Qualia API exposes a read-write GraphQL surface for placing orders, exchanging messages and documents, and pulling analytics -- but there was no MCP wrapper until now. Title & escrow shops run on tight margins and the manual data-entry tax is high; this MCP lets an AI agent drive Qualia the same way a human would.

Other title & escrow platforms (SoftPro, RamQuest, Resware) have no MCP either. This one targets Qualia specifically because it has the largest market share, a public GraphQL API, and a vendor partner program (partners@qualia.com).

Install

pip install -e .

Configure

export QUALIA_USERNAME="your-org-id"
export QUALIA_API_KEY="your-secret-key"

Capability gates must be enabled on your organization for the tools you need. Contact partners@qualia.com to request access. Write tools (send_message) will fail with CAPABILITY_GATE_MISSING until the gate is enabled.

Use with Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "qualia": {
      "command": "qualia_mcp",
      "env": {
        "QUALIA_USERNAME": "your-org-id",
        "QUALIA_API_KEY": "your-secret-key"
      }
    }
  }
}

Use with Claude Code

claude mcp add qualia -- qualia_mcp \
  --env QUALIA_USERNAME=your-org-id --env QUALIA_API_KEY=your-secret-key

Tools

Tool Type Capability gate What it does
health_check Diagnostic none Verifies credentials + GraphQL connectivity
get_organization Read organization:read Returns the authenticated org (id, name, displayName)
list_orders Read orders:read Paginated title orders with optional status filter
get_order Read orders:read Single order detail (status, property address, timestamps)
list_messages Read messages:read Messages on a title order (subject, body, author)
send_message Write messages:write Post a new message on a title order
list_documents Read documents:read Documents attached to a title order

Engineering notes

  • GraphQL + typed errors. Qualia returns 200 OK with an errors[] array on GraphQL validation failures. We promote those to typed exceptions (QualiaAuthError for CAPABILITY_GATE_MISSING / UNAUTHENTICATED, QualiaNotFoundError for NOT_FOUND, QualiaRateLimitError for RATE_LIMITED, generic QualiaGraphQLError otherwise) so agents can branch on cause instead of message text.
  • isError-compliance. Every tool raises on failure (instead of returning the error as a string). FastMCP's wire-level isError=true flag is only set when a tool raises, so the agent can distinguish failure from success.
  • JSONL audit logging. Every tool call writes a structured record to stderr (or a file path via QUALIA_AUDIT_LOG) for SOC2 auditability. Secret fields (api_key, password, token, etc.) are auto-redacted.
  • Retry with backoff. Transient 5xx and 429 responses retry up to 3 times with exponential backoff + full jitter, honoring Retry-After.

Development

pip install -e ".[dev]"
ruff check src tests
ruff format --check src tests
mypy src
pytest

License

MIT.

See also

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured