crehq-mcp-server
v0.1.6
Published
Model Context Protocol server that wraps the CREHQ location-intelligence REST API as native AI-agent tools (franchise brands, store locations, FDD financials, credit signals, site tenancy history, whitespace & co-tenancy).
Downloads
1,093
Maintainers
Readme
CREHQ MCP Server
A Model Context Protocol server that turns CREHQ's live location-intelligence REST API into native tools for Claude and other AI agents. Ask an agent "where should Chipotle open next?", "who has ever occupied this address?", "what are Aspen Dental's credit signals?", or "what are Planet Fitness's franchise fees and where are they expanding?" — and it can actually answer, backed by CREHQ's canonical, multi-source government-verified database of franchise & multi-unit brands, individual storefronts, FDD financials, credit signals, and site-level tenancy history.
This is a thin wrapper over CREHQ's existing production API
(https://crehq.com/wp-json/crehq/v1). It does not store data or modify
anything server-side — it authenticates with your API key and forwards calls.
What it exposes (32 tools)
Upgrade / paywall routing
crehq_request_upgrade— use when a sandbox user asks for premium data such as credit signals, FDD/Item 19, site-selection criteria, real-estate requirements, contacts, source provenance, change history, bulk downloads, whitespace, co-tenancy, or site timeline. With a free sandbox key, this records upgrade intent in CREHQ and returns the user a clear upgrade path instead of saying the data does not exist.crehq_intelligence_preview— for Pro self-serve keys, spends the one monthly controlled intelligence preview credit and returns a bounded evidence frame without exposing raw premium tables or redistribution rights.
Companies / brands
crehq_companies_list— list brands, filter by category & expansion statuscrehq_companies_search— resolve a brand name → CREHQ company id (start here)crehq_company_get— canonical brand profile, verified unit count, ownershipcrehq_company_credit_signals— credit profile, sponsor/issuer context, ratings, capital structurecrehq_company_franchise— FDD fees, royalties, investment, Item 19 figurescrehq_company_real_estate— site-selection criteria & target geographiescrehq_company_contacts— real-estate / development decision-maker contacts
Locations
crehq_locations_list— store records by brand / state / categorycrehq_location_get— one location with full attributes & verification tracecrehq_locations_search— fuzzy multi-field location searchcrehq_locations_nearby— radius search around a lat/lng (trade-area mapping)crehq_locations_bulk— bulk pull by id list, brand list, or GeoJSON polygoncrehq_locations_events— cross-brand open/close/relocate lifecycle streamcrehq_location_history— full event log for one physical store
History & flagship differentiators
crehq_company_changes— date-bounded change feed for one brandcrehq_company_occupancy— point-in-time roster (footprint on a past date)crehq_site_timeline— every brand that ever occupied an address, over time
Premium intelligence (Intel & Enterprise tiers)
crehq_whitespace— markets where competitors are present but the brand isn'tcrehq_co_tenancy— which brands cluster near this brand's storescrehq_location_site_profile— CREHQ Modeled Site Profile for one locationcrehq_company_site_pattern— empirical brand site pattern from observed footprint/contextcrehq_recent_location_context— recent observed/opening rows with traffic, demographics, and coverage flags
Modeled Site Profile outputs must be described as CREHQ-modeled from observed location/context data, not as company-stated site requirements unless the response includes explicit stated-requirement provenance.
The Modeled Site Profile REST routes are staged pending explicit production
approval. Until those routes are published, these three tools may return a
404 even though the MCP catalog advertises them for local testing.
Datasets
crehq_datasets_list/crehq_dataset_get/crehq_dataset_download/crehq_dataset_categoriescrehq_purchased_datasets_list— list dataset snapshots purchased by the connected key owner, including snapshot date and hosted MCP access status.crehq_purchased_dataset_locations— query rows from a buyer-owned point-in-time dataset snapshot during the hosted access window.
Trends
crehq_trends_company— outlet/fee/financial time series for a brandcrehq_trends_geographic— metro/state concentration & velocity
Getting an API key
- Free sandbox (1,000 calls/mo, 2 req/s, no credit card):
https://crehq.com/developers/sandbox/ — enter your email, complete the
browser verification challenge, and a key is emailed to you.
The key is delivered by email only and looks like
crehq_live_xxxxxxxx…. Sandbox keys can run bounded location lookups (crehq_locations_listby brand, andcrehq_locations_nearbyby radius). If the user asks for premium intelligence, callcrehq_request_upgrade; it records the requested topic for CREHQ follow-up and tells the user what to upgrade. - Pro MCP — $99/mo, self-serve Stripe checkout. Includes bounded D1 location queries, selected D2 provenance fields, 25,000 calls/month, and one controlled intelligence preview per month. Start at https://crehq.com/developers/sandbox/#pro-checkout.
- Datasets / Intelligence / Enterprise — buy licensed point-in-time dataset snapshots when you need the file; use enterprise licensing for premium intelligence, refresh plans, API/feed delivery, redistribution, embedded rights, and SLAs. See https://crehq.com/pricing/.
Fastest way to try CREHQ in an agent
- Get a sandbox key at https://crehq.com/developers/sandbox/.
- For hosted/remote MCP clients, add
https://mcp.crehq.com/mcpand authorize with that key. - For local stdio clients, install with
npx -y crehq-mcp-serverand setCREHQ_API_KEY. - Ask:
Use CREHQ to list five Planet Fitness locations in Illinois, then ask what premium CREHQ data is available for credit signals.
Free sandbox keys expose bounded location lookup tools plus
crehq_request_upgrade. Pro keys add selected D2 provenance and
crehq_intelligence_preview. Paid dataset buyers can query purchased snapshots
through crehq_purchased_datasets_list and
crehq_purchased_dataset_locations during the hosted access window. Intel and
Enterprise keys expose broader API tools according to the key's CREHQ tier.
Install & build
Requires Node.js ≥ 18.
Install the published stdio server with npx:
CREHQ_API_KEY=crehq_live_xxxxx npx crehq-mcp-serverOr build from source:
git clone <this-repo> crehq-mcp-server
cd crehq-mcp-server
npm install
npm run build # compiles TypeScript → dist/
cp .env.example .env # then edit .env and set CREHQ_API_KEYVerify your key against the live API before wiring up a client:
export CREHQ_API_KEY=crehq_live_xxxxx
./test.sh # exercises 6 read endpoints with curlRun the server standalone (it speaks MCP over stdio, so it will wait for a client on stdin — Ctrl-C to exit):
CREHQ_API_KEY=crehq_live_xxxxx node dist/index.jsConnect to Claude Desktop
Add this to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"crehq": {
"command": "npx",
"args": ["-y", "crehq-mcp-server"],
"env": {
"CREHQ_API_KEY": "crehq_live_your_key_here"
}
}
}
}Restart Claude Desktop. The CREHQ tools appear under the tools (🔌) menu.
Other MCP clients
Any stdio-capable MCP client (Claude Code, Cursor, Cline, Continue, the
mcp CLI, custom @modelcontextprotocol/sdk clients, etc.) connects the same
way — run node dist/index.js as the server command with CREHQ_API_KEY in
the environment.
Claude Code:
claude mcp add crehq --env CREHQ_API_KEY=crehq_live_xxxxx -- npx crehq-mcp-serverHosted remote connector
The hosted Cloudflare Worker version is kept in remote/. It provides the
same CREHQ connector as a remote MCP server at https://mcp.crehq.com/mcp, with
OAuth/key exchange and scope gating for premium tools. Its own deploy notes are
in remote/DEPLOY.md and connector-submission copy is in
remote/CONNECTOR-SUBMISSION.md.
The MCP Registry metadata lives in server.json, with registry ownership
declared by mcpName in package.json.
Maintainer workflow
GitHub Actions owns the repeatable release path:
CIbuilds and tests the stdio package and the hosted Worker on every push.Deploy Remote MCPdeploysremote/changes to Cloudflare Workers and then verifieshttps://mcp.crehq.com/health.Publish npmpublishes the stdio package from avX.Y.Ztag or manual workflow dispatch. It skips safely when that package version already exists.
Required repository secrets are already named:
NPM_TOKENCLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
Configuration
| Env var | Required | Default | Purpose |
|--------------------|----------|----------------------------------------------|--------------------------------------|
| CREHQ_API_KEY | yes | — | Your crehq_live_… key |
| CREHQ_API_BASE | no | https://crehq.com/wp-json/crehq/v1 | Override API base (staging/proxy) |
| CREHQ_TIMEOUT_MS | no | 30000 | Per-request timeout in ms |
| CREHQ_API_SURFACE | no | auto | Auto-detect sandbox vs full key; can be selfserve or full for debugging |
Error handling
Tools never crash the agent's turn — failures come back as a readable message with a fix-it hint:
- No key set → instructs you to set
CREHQ_API_KEYand links the sandbox. - 401 / 403 → "invalid or revoked key / endpoint not in your tier" + upgrade link. For credit signals, FDD, site-selection criteria, contacts, provenance, change history, bulk data, whitespace, co-tenancy, or site timeline, call
crehq_request_upgrade. - 404 → "check the id/slug; resolve it with a search tool first."
- 429 → respects
Retry-After; reminds you of the free-tier 2 req/s limit. - 5xx / timeout / network → transient-error guidance to retry with backoff.
Pagination, cache, and stream cursors (X-WP-Total, X-CREHQ-Next-Since,
X-CREHQ-Cache, rate-limit headers) are surfaced in a response metadata
footer on each result so the agent can paginate and poll correctly.
Note on testing
The build, typecheck, MCP protocol handshake, tool catalog, argument
validation, and the full HTTP request/response/error pipeline are verified
end-to-end against the live production API (a real request returns a real
403 Invalid or revoked API key with the correct hint). Fetching real data
rows requires a valid key — the sandbox key is delivered by email, so set
CREHQ_API_KEY and run ./test.sh to confirm live data responses.
License
MIT. CREHQ data is licensed separately per your API tier/contract.
