Qualia MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Qualia MCP List orders awaiting closing and group by status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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*Related MCP server: cursor-mcp-server
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-keyTools
Tool | Type | Capability gate | What it does |
| Diagnostic | none | Verifies credentials + GraphQL connectivity |
| Read |
| Returns the authenticated org (id, name, displayName) |
| Read |
| Paginated title orders with optional status filter |
| Read |
| Single order detail (status, property address, timestamps) |
| Read |
| Messages on a title order (subject, body, author) |
| Write |
| Post a new message on a title order |
| 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 (QualiaAuthErrorforCAPABILITY_GATE_MISSING/UNAUTHENTICATED,QualiaNotFoundErrorforNOT_FOUND,QualiaRateLimitErrorforRATE_LIMITED, genericQualiaGraphQLErrorotherwise) 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=trueflag 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
pytestLicense
MIT.
See also
Available Tools
7 toolsget_orderA
Return a single title order by id (status, property address, timestamps).
Use when: "look up order ORD-12345" or "what's the status of this closing?". Args: order_id: the Qualia order id (e.g. "ord_abc123"). Requires: orders:read capability gate.
Inputs: order_id (required). Returns: result
get_organizationA
Return the authenticated Qualia organization (id, name, display name).
Use when: "what's my Qualia org id?" or "verify the org I'm authenticated as". Requires: organization:read capability gate.
Inputs: no named parameters. Returns: result
health_checkA
Verify credentials work. If this fails, all other tools will too.
Inputs: no named parameters. Returns: result
list_documentsA
List documents attached to a title order (name, mime, size, created).
Use when: "what documents are on this order?" or "did the buyer upload the LOI yet?". Args: order_id: the Qualia order id. limit: page size (default 25, max 100). Requires: documents:read capability gate.
Inputs: order_id (required), limit. Returns: result
list_messagesA
List messages on a title order (most recent first).
Use when: "what's the latest message on this order?" or "show all messages from the buyer side". Args: order_id: the Qualia order id. limit: page size (default 25, max 100). Requires: messages:read capability gate.
Inputs: order_id (required), limit. Returns: result
list_ordersA
List title orders for the authenticated organization.
Use when: "show me the last 10 orders" or "list orders awaiting closing". Args: limit: page size (default 25, max 100). offset: skip N orders for pagination. status: optional filter -- e.g. "OPEN", "CLOSED", "CANCELLED". Requires: orders:read capability gate.
Inputs: limit, offset, status. Returns: result
send_messageA
Post a message on a title order.
Use when: "send the buyer an update on the closing timeline" or "ask escrow to verify the wire instructions". Args: order_id: the Qualia order id. subject: short subject line (1-200 chars). body: message text (1-10000 chars). Plain text or basic markdown. Requires: messages:write capability gate.
Inputs: body (required), subject (required), order_id (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: order retrieval, organization info, health check, document listing, message listing, order listing, and message sending. No overlapping functionalities.
Most tools follow a verb_noun pattern (get_order, list_orders, send_message). 'health_check' is an exception but it's a common idiom. Overall consistent and predictable.
With 7 tools, the set is well-scoped for a title order management API. Each tool covers a necessary function without bloat or deficiency.
Covers essential read operations and message sending. Missing CRUD operations for orders (create, update) but the domain focus appears to be monitoring and communication, so minor gap.
Related MCP Connectors
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes PraisonAI AI agents and tools for use with Claude Desktop, Cursor, VS Code, Windsurf, and other MCP clients.1MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server wrapping the Cursor CLI agent, enabling Claude Code and other MCP clients to delegate tasks to Cursor's AI agent for file writing, bash commands, and codebase queries.-
- AlicenseCqualityBmaintenanceMCP server to connect Claude Code, Codex, or Cursor to the Lightbulb Partners Agents platform, enabling domain agents, code workspaces, connectors, and more.500Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for the FieldRoutes pest-control / lawn-care operations platform — talk to your data from Claude, Cursor, or any MCP client.MIT