Open MCP Guide
Connect AI agents to QANATIX Open public data via MCP. No authentication needed.
Open MCP Guide
QANATIX Open exposes an MCP server for AI agents to query public data. No API key needed.
Endpoint
POST /open/mcp/Claude Code
# Add the Open MCP server — no auth headers needed
claude mcp add --transport http -s user qanatix-open https://api.qanatix.com/open/mcp/
# Local development
claude mcp add --transport http -s user qanatix-open http://localhost:8000/open/mcp/Verify with /mcp — you should see qanatix-open connected.
Then just ask naturally:
- "Search QANATIX Open for low cost ETFs"
- "What public data is available on QANATIX?"
- "Look up record c4fdfc96-... on QANATIX Open"
The agent searches all public data automatically — no need to specify a collection first.
Claude Desktop
Edit your MCP config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"qanatix-open": {
"type": "http",
"url": "https://api.qanatix.com/open/mcp/"
}
}
}No headers block needed — QANATIX Open requires no authentication.
Restart Claude Desktop. The QANATIX Open tools icon appears in the chat input.
Cursor IDE
Create .cursor/mcp.json in your project root:
{
"mcpServers": {
"qanatix-open": {
"type": "http",
"url": "https://api.qanatix.com/open/mcp/"
}
}
}Available tools
| Tool | Description |
|---|---|
qanatix_open_search | Search public data — works with query, filters, or both |
qanatix_open_aggregate | Count, group, and compute stats on public data |
qanatix_open_collections | Browse available collections (compact — name, count, description) |
qanatix_open_schema | Get field schema and filter options for a specific collection |
qanatix_open_lookup | Get full public record details by UUID |
qanatix_open_search parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | No | — | Natural language search query. Optional when filters are provided. |
collection | string | No | null | Narrow search to a specific collection |
filters | object | No | {} | Key-value filters. Supports multi-value: "manufacturer": "SKF,ABB" |
sort | string | No | null | Sort field. Prefix with - for descending. E.g. price_usd, -weight_kg |
limit | int | No | 10 | Max results (1–50) |
offset | int | No | 0 | Skip N results for pagination |
format | string | No | markdown | Output format: markdown or json |
qanatix_open_aggregate parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
collection | string | No | null | Collection to aggregate |
filters | object | No | {} | Same filters as search |
group_by | string | No | null | Field to group by. Returns top values with counts. |
stats | string[] | No | null | Numeric fields for min/max/avg. E.g. ["price_usd", "weight_kg"] |
qanatix_open_collections parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | No | null | Filter collections by name or description (e.g., "ETF", "hotel") |
qanatix_open_schema parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collection | string | Yes | Collection name (from qanatix_open_collections results) |
Returns field names, types, sample values, and filter syntax guide for the named collection.
qanatix_open_lookup parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
record_id | string | Yes | Record UUID from search results |
format | string | No | Output format: yaml (default) or json |
Typical agent flow
Quick path (2-step):
qanatix_open_search(query)— searches all public data automaticallyqanatix_open_lookup(record_id)— get full details
Discovery path (when you need to understand the data):
qanatix_open_collections()— compact list of collectionsqanatix_open_schema(collection)— see fields, types, sample valuesqanatix_open_search(query, collection, filters)— targeted search
Agents save round-trips by searching directly. For known use cases, passing collection= narrows results.
Using both private and Open MCP servers
You can connect both QANATIX Engine (private) and QANATIX Open (public) simultaneously:
# Private — requires API key
claude mcp add --transport http \
--header "Authorization: Bearer sk_live_YOUR_KEY" \
-s user qanatix https://api.qanatix.com/mcp/
# Public — no auth
claude mcp add --transport http \
-s user qanatix-open https://api.qanatix.com/open/mcp/Claude will use the appropriate server based on your query context.
Differences from private MCP
Private (/mcp/) | Open (/open/mcp/) | |
|---|---|---|
| Auth | API key required | None |
| Tools prefix | qanatix_* | qanatix_open_* |
| Data scope | Your tenant only | All public data |
collection param | Required | Optional (searches all by default) |
| Aggregate tool | Yes | Yes |
| Rate limiting | Per-tenant, plan-based | Per-IP, 60 RPM search |
Rate limits
| Tool | Limit |
|---|---|
qanatix_open_search, qanatix_open_aggregate | 60 req/min |
qanatix_open_collections, qanatix_open_schema, qanatix_open_lookup | 120 req/min |
Troubleshooting
"Connection refused" — Is QANATIX running? Check curl http://localhost:8000/api/v1/health.
"Rate limit exceeded" — Wait and retry. Contact us for higher limits if needed.
"No results found" — Try a broader query without specifying a collection. Call qanatix_open_collections() to see what public data exists.
Tools not showing — Restart your MCP client after adding the config.