crehq-mcp-server 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +4 -0
- package/GO-LIVE.md +19 -9
- package/README.md +60 -8
- package/dist/client.d.ts +10 -0
- package/dist/client.js +47 -3
- package/dist/client.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/tools.js +177 -9
- package/dist/tools.js.map +1 -1
- package/package.json +2 -2
package/.env.example
CHANGED
|
@@ -16,3 +16,7 @@ CREHQ_API_BASE=https://crehq.com/wp-json/crehq/v1
|
|
|
16
16
|
|
|
17
17
|
# OPTIONAL: per-request timeout in milliseconds (default 30000).
|
|
18
18
|
CREHQ_TIMEOUT_MS=30000
|
|
19
|
+
|
|
20
|
+
# OPTIONAL: auto-detect free sandbox keys vs full API keys (default auto).
|
|
21
|
+
# Use selfserve or full only when debugging a specific key surface.
|
|
22
|
+
CREHQ_API_SURFACE=auto
|
package/GO-LIVE.md
CHANGED
|
@@ -16,27 +16,32 @@ distribute, here's what's left, in order.
|
|
|
16
16
|
this server uses (companies, locations, sites/timeline, intelligence,
|
|
17
17
|
datasets, trends). `./test.sh` covers the read GETs; spot-check
|
|
18
18
|
`/sites/{uid}/timeline`, `/intelligence/*`, `/companies/{id}/occupancy`.
|
|
19
|
+
- [ ] Keep the Modeled Site Profile tools staged until Mark approves publishing
|
|
20
|
+
`/intelligence/site-profiles/*`; the local MCP catalog can advertise the
|
|
21
|
+
tools, but production users should expect 404s until that route is live.
|
|
19
22
|
|
|
20
23
|
## 2. Hosting / distribution model — pick one (or do both)
|
|
21
24
|
|
|
22
25
|
**A. Local stdio (ship now).** Users run `node dist/index.js` from their own
|
|
23
26
|
machine with their key in env. Zero infra for CREHQ. This is the default and
|
|
24
27
|
what Claude Desktop / Cursor / Claude Code expect.
|
|
25
|
-
- [
|
|
26
|
-
|
|
27
|
-
- [
|
|
28
|
+
- [x] Publish to npm as `crehq-mcp-server` so users can
|
|
29
|
+
`npx crehq-mcp-server` — no clone/build step.
|
|
30
|
+
- [x] Add CI that runs `npm run build` + `npm run typecheck`.
|
|
31
|
+
- [ ] Tag future releases as `vX.Y.Z`; GitHub Actions publishes npm from tags
|
|
32
|
+
or manual dispatch.
|
|
28
33
|
|
|
29
34
|
**B. Hosted / remote MCP server (scales to non-technical users & web Claude).**
|
|
30
35
|
Wrap the same tool handlers behind a Streamable-HTTP / SSE transport
|
|
31
36
|
(`@modelcontextprotocol/sdk` server with `StreamableHTTPServerTransport`) so
|
|
32
37
|
users add a URL instead of installing anything. This is required for the
|
|
33
38
|
Claude **connector directory** and for Claude.ai web/mobile.
|
|
34
|
-
- [
|
|
35
|
-
- [
|
|
39
|
+
- [x] Add an HTTP transport entrypoint alongside the stdio one.
|
|
40
|
+
- [x] Add OAuth 2.1 (the MCP authorization spec) or a hosted key-exchange so a
|
|
36
41
|
user authorizes once and CREHQ maps the session → their API key, instead
|
|
37
42
|
of pasting a raw key. This is the main net-new work for option B.
|
|
38
|
-
- [
|
|
39
|
-
|
|
43
|
+
- [x] Deploy to Cloudflare Workers at `https://mcp.crehq.com`.
|
|
44
|
+
- [x] Add CI deploy workflow for `remote/` changes.
|
|
40
45
|
|
|
41
46
|
## 3. Listings / discovery
|
|
42
47
|
- [ ] **Anthropic connector / MCP directory** — submit the hosted server (needs
|
|
@@ -74,8 +79,13 @@ per-call metered tier on top of the existing $99/$1,500/$20k plans:
|
|
|
74
79
|
|
|
75
80
|
## Status of this artifact
|
|
76
81
|
- ✅ Builds & typechecks clean (`npm run build`, `npm run typecheck`).
|
|
77
|
-
- ✅
|
|
82
|
+
- ✅ 28 tools, correct names/descriptions/JSON schemas, Zod-validated inputs.
|
|
83
|
+
- ⏳ Modeled Site Profile MCP tools are staged; production REST publication is
|
|
84
|
+
intentionally held for approval.
|
|
78
85
|
- ✅ Verified end-to-end against the **live** API (real 403 + correct hint;
|
|
79
86
|
MCP handshake, tool list, and validation all pass over stdio).
|
|
80
|
-
-
|
|
87
|
+
- ✅ Published to npm as `crehq-mcp-server`.
|
|
88
|
+
- ✅ Hosted remote MCP source is version-controlled in `remote/` and deployed
|
|
89
|
+
to Cloudflare Workers.
|
|
90
|
+
- ⏳ Real data rows require a valid `CREHQ_API_KEY` / authorized remote session.
|
|
81
91
|
- ⛔ No production data was created or modified to build this.
|
package/README.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
A [Model Context Protocol](https://modelcontextprotocol.io) server that turns
|
|
4
4
|
[CREHQ](https://crehq.com)'s **live location-intelligence REST API** into native
|
|
5
5
|
tools for Claude and other AI agents. Ask an agent *"where should Chipotle open
|
|
6
|
-
next?"*, *"who has ever occupied this address?"*,
|
|
7
|
-
franchise fees and where are they expanding?"* — and it can actually answer,
|
|
6
|
+
next?"*, *"who has ever occupied this address?"*, *"what are Aspen Dental's
|
|
7
|
+
credit signals?"*, or *"what are Planet Fitness's franchise fees and where are they expanding?"* — and it can actually answer,
|
|
8
8
|
backed by CREHQ's canonical, **multi-source government-verified** database of
|
|
9
|
-
franchise & multi-unit brands, individual storefronts, FDD financials, and
|
|
9
|
+
franchise & multi-unit brands, individual storefronts, FDD financials, credit signals, and
|
|
10
10
|
site-level tenancy history.
|
|
11
11
|
|
|
12
12
|
This is a thin wrapper over CREHQ's existing production API
|
|
@@ -15,12 +15,16 @@ anything server-side — it authenticates with your API key and forwards calls.
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
## What it exposes (
|
|
18
|
+
## What it exposes (29 tools)
|
|
19
|
+
|
|
20
|
+
**Upgrade / paywall routing**
|
|
21
|
+
- `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.
|
|
19
22
|
|
|
20
23
|
**Companies / brands**
|
|
21
24
|
- `crehq_companies_list` — list brands, filter by category & expansion status
|
|
22
25
|
- `crehq_companies_search` — resolve a brand name → CREHQ company id (start here)
|
|
23
26
|
- `crehq_company_get` — canonical brand profile, verified unit count, ownership
|
|
27
|
+
- `crehq_company_credit_signals` — credit profile, sponsor/issuer context, ratings, capital structure
|
|
24
28
|
- `crehq_company_franchise` — FDD fees, royalties, investment, Item 19 figures
|
|
25
29
|
- `crehq_company_real_estate` — site-selection criteria & target geographies
|
|
26
30
|
- `crehq_company_contacts` — real-estate / development decision-maker contacts
|
|
@@ -42,6 +46,17 @@ anything server-side — it authenticates with your API key and forwards calls.
|
|
|
42
46
|
**Premium intelligence** (Intel & Enterprise tiers)
|
|
43
47
|
- `crehq_whitespace` — markets where competitors are present but the brand isn't
|
|
44
48
|
- `crehq_co_tenancy` — which brands cluster near this brand's stores
|
|
49
|
+
- `crehq_location_site_profile` — CREHQ Modeled Site Profile for one location
|
|
50
|
+
- `crehq_company_site_pattern` — empirical brand site pattern from observed footprint/context
|
|
51
|
+
- `crehq_recent_location_context` — recent observed/opening rows with traffic, demographics, and coverage flags
|
|
52
|
+
|
|
53
|
+
Modeled Site Profile outputs must be described as **CREHQ-modeled from observed
|
|
54
|
+
location/context data**, not as company-stated site requirements unless the
|
|
55
|
+
response includes explicit stated-requirement provenance.
|
|
56
|
+
|
|
57
|
+
The Modeled Site Profile REST routes are staged pending explicit production
|
|
58
|
+
approval. Until those routes are published, these three tools may return a
|
|
59
|
+
`404` even though the MCP catalog advertises them for local testing.
|
|
45
60
|
|
|
46
61
|
**Datasets**
|
|
47
62
|
- `crehq_datasets_list` / `crehq_dataset_get` / `crehq_dataset_download` / `crehq_dataset_categories`
|
|
@@ -63,6 +78,10 @@ anything server-side — it authenticates with your API key and forwards calls.
|
|
|
63
78
|
-d '{"email":"you@example.com"}'
|
|
64
79
|
```
|
|
65
80
|
The key is delivered by email only and looks like `crehq_live_xxxxxxxx…`.
|
|
81
|
+
Sandbox keys can run bounded location lookups (`crehq_locations_list` by
|
|
82
|
+
brand, and `crehq_locations_nearby` by radius). If the user asks for premium
|
|
83
|
+
intelligence, call `crehq_request_upgrade`; it records the requested topic
|
|
84
|
+
for CREHQ follow-up and tells the user what to upgrade.
|
|
66
85
|
2. **Paid tiers** — Developer from **$99/mo**, Production from **$1,500/mo**,
|
|
67
86
|
Enterprise **$20k+/yr** (dedicated key, SLA, premium intel endpoints).
|
|
68
87
|
See https://crehq.com/developers/ and https://crehq.com/apis/.
|
|
@@ -73,6 +92,14 @@ anything server-side — it authenticates with your API key and forwards calls.
|
|
|
73
92
|
|
|
74
93
|
Requires Node.js ≥ 18.
|
|
75
94
|
|
|
95
|
+
Install the published stdio server with `npx`:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
CREHQ_API_KEY=crehq_live_xxxxx npx crehq-mcp-server
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Or build from source:
|
|
102
|
+
|
|
76
103
|
```bash
|
|
77
104
|
git clone <this-repo> crehq-mcp-server
|
|
78
105
|
cd crehq-mcp-server
|
|
@@ -108,8 +135,8 @@ Add this to your `claude_desktop_config.json`:
|
|
|
108
135
|
{
|
|
109
136
|
"mcpServers": {
|
|
110
137
|
"crehq": {
|
|
111
|
-
"command": "
|
|
112
|
-
"args": ["
|
|
138
|
+
"command": "npx",
|
|
139
|
+
"args": ["-y", "crehq-mcp-server"],
|
|
113
140
|
"env": {
|
|
114
141
|
"CREHQ_API_KEY": "crehq_live_your_key_here"
|
|
115
142
|
}
|
|
@@ -129,9 +156,33 @@ the environment.
|
|
|
129
156
|
|
|
130
157
|
**Claude Code:**
|
|
131
158
|
```bash
|
|
132
|
-
claude mcp add crehq --env CREHQ_API_KEY=crehq_live_xxxxx --
|
|
159
|
+
claude mcp add crehq --env CREHQ_API_KEY=crehq_live_xxxxx -- npx crehq-mcp-server
|
|
133
160
|
```
|
|
134
161
|
|
|
162
|
+
## Hosted remote connector
|
|
163
|
+
|
|
164
|
+
The hosted Cloudflare Worker version is kept in `remote/`. It provides the
|
|
165
|
+
same CREHQ connector as a remote MCP server at `https://mcp.crehq.com`, with
|
|
166
|
+
OAuth/key exchange and scope gating for premium tools. Its own deploy notes are
|
|
167
|
+
in `remote/DEPLOY.md` and connector-submission copy is in
|
|
168
|
+
`remote/CONNECTOR-SUBMISSION.md`.
|
|
169
|
+
|
|
170
|
+
## Maintainer workflow
|
|
171
|
+
|
|
172
|
+
GitHub Actions owns the repeatable release path:
|
|
173
|
+
|
|
174
|
+
- `CI` builds and tests the stdio package and the hosted Worker on every push.
|
|
175
|
+
- `Deploy Remote MCP` deploys `remote/` changes to Cloudflare Workers and then
|
|
176
|
+
verifies `https://mcp.crehq.com/health`.
|
|
177
|
+
- `Publish npm` publishes the stdio package from a `vX.Y.Z` tag or manual
|
|
178
|
+
workflow dispatch. It skips safely when that package version already exists.
|
|
179
|
+
|
|
180
|
+
Required repository secrets are already named:
|
|
181
|
+
|
|
182
|
+
- `NPM_TOKEN`
|
|
183
|
+
- `CLOUDFLARE_API_TOKEN`
|
|
184
|
+
- `CLOUDFLARE_ACCOUNT_ID`
|
|
185
|
+
|
|
135
186
|
---
|
|
136
187
|
|
|
137
188
|
## Configuration
|
|
@@ -141,6 +192,7 @@ claude mcp add crehq --env CREHQ_API_KEY=crehq_live_xxxxx -- node /absolute/path
|
|
|
141
192
|
| `CREHQ_API_KEY` | yes | — | Your `crehq_live_…` key |
|
|
142
193
|
| `CREHQ_API_BASE` | no | `https://crehq.com/wp-json/crehq/v1` | Override API base (staging/proxy) |
|
|
143
194
|
| `CREHQ_TIMEOUT_MS` | no | `30000` | Per-request timeout in ms |
|
|
195
|
+
| `CREHQ_API_SURFACE` | no | `auto` | Auto-detect sandbox vs full key; can be `selfserve` or `full` for debugging |
|
|
144
196
|
|
|
145
197
|
---
|
|
146
198
|
|
|
@@ -150,7 +202,7 @@ Tools never crash the agent's turn — failures come back as a readable message
|
|
|
150
202
|
with a fix-it hint:
|
|
151
203
|
|
|
152
204
|
- **No key set** → instructs you to set `CREHQ_API_KEY` and links the sandbox.
|
|
153
|
-
- **401 / 403** → "invalid or revoked key / endpoint not in your tier" + upgrade link.
|
|
205
|
+
- **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`.
|
|
154
206
|
- **404** → "check the id/slug; resolve it with a search tool first."
|
|
155
207
|
- **429** → respects `Retry-After`; reminds you of the free-tier 2 req/s limit.
|
|
156
208
|
- **5xx / timeout / network** → transient-error guidance to retry with backoff.
|
package/dist/client.d.ts
CHANGED
|
@@ -9,10 +9,12 @@
|
|
|
9
9
|
* - Surface CREHQ pagination + cache + stream headers to the caller.
|
|
10
10
|
*/
|
|
11
11
|
export declare const DEFAULT_API_BASE = "https://crehq.com/wp-json/crehq/v1";
|
|
12
|
+
export type CrehqApiSurface = "auto" | "selfserve" | "full";
|
|
12
13
|
export interface CrehqConfig {
|
|
13
14
|
apiKey: string;
|
|
14
15
|
apiBase: string;
|
|
15
16
|
timeoutMs: number;
|
|
17
|
+
apiSurface: CrehqApiSurface;
|
|
16
18
|
}
|
|
17
19
|
export interface CrehqResult {
|
|
18
20
|
/** Parsed JSON body (object or array), or raw text when not JSON. */
|
|
@@ -42,9 +44,16 @@ export interface RequestOptions {
|
|
|
42
44
|
}
|
|
43
45
|
export declare class CrehqClient {
|
|
44
46
|
private readonly config;
|
|
47
|
+
private detectedApiSurface?;
|
|
45
48
|
constructor(config: CrehqConfig);
|
|
46
49
|
/** True when no key is configured — lets tools fail fast with guidance. */
|
|
47
50
|
get hasKey(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Detect whether the configured key is a free self-serve sandbox key.
|
|
53
|
+
* Sandbox keys are intentionally restricted to `/selfserve/*`; full keys use
|
|
54
|
+
* the broader REST API. The detection is cached for the MCP process lifetime.
|
|
55
|
+
*/
|
|
56
|
+
apiSurface(): Promise<"selfserve" | "full">;
|
|
48
57
|
/**
|
|
49
58
|
* Perform a request against a CREHQ endpoint path (e.g. "/companies").
|
|
50
59
|
* Throws CrehqApiError on any non-2xx response or transport failure.
|
|
@@ -52,5 +61,6 @@ export declare class CrehqClient {
|
|
|
52
61
|
request(path: string, opts?: RequestOptions): Promise<CrehqResult>;
|
|
53
62
|
/** Map a non-2xx response into a CrehqApiError with an actionable hint. */
|
|
54
63
|
private toApiError;
|
|
64
|
+
private probeSelfserveUsage;
|
|
55
65
|
}
|
|
56
66
|
export {};
|
package/dist/client.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export const DEFAULT_API_BASE = "https://crehq.com/wp-json/crehq/v1";
|
|
12
12
|
const SANDBOX_URL = "https://crehq.com/developers/sandbox/";
|
|
13
|
+
const USER_AGENT = "crehq-mcp-server/0.1.2";
|
|
13
14
|
/** Headers worth surfacing back to the agent (pagination, cache, event streams). */
|
|
14
15
|
const SURFACED_HEADERS = [
|
|
15
16
|
"x-wp-total",
|
|
@@ -39,10 +40,13 @@ export function loadConfig() {
|
|
|
39
40
|
const apiKey = (process.env.CREHQ_API_KEY ?? "").trim();
|
|
40
41
|
const apiBase = (process.env.CREHQ_API_BASE ?? DEFAULT_API_BASE).trim().replace(/\/+$/, "");
|
|
41
42
|
const timeoutMs = Number.parseInt(process.env.CREHQ_TIMEOUT_MS ?? "30000", 10) || 30000;
|
|
42
|
-
|
|
43
|
+
const rawSurface = (process.env.CREHQ_API_SURFACE ?? "auto").trim().toLowerCase();
|
|
44
|
+
const apiSurface = rawSurface === "selfserve" || rawSurface === "full" ? rawSurface : "auto";
|
|
45
|
+
return { apiKey, apiBase, timeoutMs, apiSurface };
|
|
43
46
|
}
|
|
44
47
|
export class CrehqClient {
|
|
45
48
|
config;
|
|
49
|
+
detectedApiSurface;
|
|
46
50
|
constructor(config) {
|
|
47
51
|
this.config = config;
|
|
48
52
|
}
|
|
@@ -50,6 +54,24 @@ export class CrehqClient {
|
|
|
50
54
|
get hasKey() {
|
|
51
55
|
return this.config.apiKey.length > 0;
|
|
52
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Detect whether the configured key is a free self-serve sandbox key.
|
|
59
|
+
* Sandbox keys are intentionally restricted to `/selfserve/*`; full keys use
|
|
60
|
+
* the broader REST API. The detection is cached for the MCP process lifetime.
|
|
61
|
+
*/
|
|
62
|
+
async apiSurface() {
|
|
63
|
+
if (this.config.apiSurface === "selfserve" || this.config.apiSurface === "full") {
|
|
64
|
+
return this.config.apiSurface;
|
|
65
|
+
}
|
|
66
|
+
if (this.detectedApiSurface)
|
|
67
|
+
return this.detectedApiSurface;
|
|
68
|
+
if (!this.hasKey) {
|
|
69
|
+
this.detectedApiSurface = "full";
|
|
70
|
+
return this.detectedApiSurface;
|
|
71
|
+
}
|
|
72
|
+
this.detectedApiSurface = (await this.probeSelfserveUsage()) ? "selfserve" : "full";
|
|
73
|
+
return this.detectedApiSurface;
|
|
74
|
+
}
|
|
53
75
|
/**
|
|
54
76
|
* Perform a request against a CREHQ endpoint path (e.g. "/companies").
|
|
55
77
|
* Throws CrehqApiError on any non-2xx response or transport failure.
|
|
@@ -72,7 +94,7 @@ export class CrehqClient {
|
|
|
72
94
|
Authorization: `Bearer ${this.config.apiKey}`,
|
|
73
95
|
"X-API-Key": this.config.apiKey,
|
|
74
96
|
Accept: opts.accept ?? "application/json",
|
|
75
|
-
"User-Agent":
|
|
97
|
+
"User-Agent": USER_AGENT,
|
|
76
98
|
};
|
|
77
99
|
const init = { method: opts.method ?? "GET", headers };
|
|
78
100
|
if (opts.body !== undefined) {
|
|
@@ -126,7 +148,7 @@ export class CrehqClient {
|
|
|
126
148
|
case 401:
|
|
127
149
|
return new CrehqApiError(401, apiMessage ?? "Unauthorized: no API key was accepted.", `Set CREHQ_API_KEY to a valid key. Get a free sandbox key (1,000 calls/mo, no credit card) at ${SANDBOX_URL}.`);
|
|
128
150
|
case 403:
|
|
129
|
-
return new CrehqApiError(403, apiMessage ?? "Forbidden: the API key is invalid, revoked, or not scoped for this endpoint.", `Verify the key is active and that your tier includes this endpoint. Upgrade or request scope at https://crehq.com/api-keys/. Sandbox keys: ${SANDBOX_URL}.`);
|
|
151
|
+
return new CrehqApiError(403, apiMessage ?? "Forbidden: the API key is invalid, revoked, or not scoped for this endpoint.", `Verify the key is active and that your tier includes this endpoint. If this was a request for credit signals, FDD, site-selection criteria, contacts, source provenance, change history, bulk data, whitespace, co-tenancy, site timeline, or higher limits, use crehq_request_upgrade so CREHQ can record upgrade intent. Upgrade or request scope at https://crehq.com/api-keys/. Sandbox keys: ${SANDBOX_URL}.`);
|
|
130
152
|
case 404:
|
|
131
153
|
return new CrehqApiError(404, apiMessage ?? "Not found: the requested record or path does not exist.", "Check the id/slug/uid. Use the search tools to resolve an identifier first.");
|
|
132
154
|
case 429: {
|
|
@@ -142,6 +164,28 @@ export class CrehqClient {
|
|
|
142
164
|
return new CrehqApiError(status, apiMessage ?? `Request failed (${status}).`, "Review the parameters against the tool's input schema.");
|
|
143
165
|
}
|
|
144
166
|
}
|
|
167
|
+
async probeSelfserveUsage() {
|
|
168
|
+
const url = new URL(this.config.apiBase + "/selfserve/usage");
|
|
169
|
+
const headers = {
|
|
170
|
+
Authorization: `Bearer ${this.config.apiKey}`,
|
|
171
|
+
"X-API-Key": this.config.apiKey,
|
|
172
|
+
Accept: "application/json",
|
|
173
|
+
"User-Agent": USER_AGENT,
|
|
174
|
+
};
|
|
175
|
+
const controller = new AbortController();
|
|
176
|
+
const timer = setTimeout(() => controller.abort(), this.config.timeoutMs);
|
|
177
|
+
try {
|
|
178
|
+
const res = await fetch(url, { method: "GET", headers, signal: controller.signal });
|
|
179
|
+
await res.arrayBuffer().catch(() => undefined);
|
|
180
|
+
return res.ok;
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
clearTimeout(timer);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
145
189
|
}
|
|
146
190
|
/** Pull a human message out of a WP-REST / CREHQ error body. */
|
|
147
191
|
function extractMessage(body) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,oCAAoC,CAAC;AACrE,MAAM,WAAW,GAAG,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* CREHQ MCP server — exposes CREHQ's live location-intelligence REST API
|
|
4
4
|
* (https://crehq.com/wp-json/crehq/v1) as Model Context Protocol tools so that
|
|
5
5
|
* Claude and other MCP clients can query brands, locations, FDD financials,
|
|
6
|
-
* site-level tenancy history, whitespace,
|
|
6
|
+
* site-level tenancy history, whitespace, co-tenancy, and staged modeled site
|
|
7
|
+
* profile tools as native tools.
|
|
7
8
|
*
|
|
8
9
|
* Transport: stdio (the standard for Claude Desktop / local connectors).
|
|
9
10
|
* Auth: CREHQ_API_KEY env var (sandbox/dev/prod/enterprise).
|
|
@@ -25,7 +26,7 @@ async function main() {
|
|
|
25
26
|
process.stderr.write("[crehq-mcp] WARNING: CREHQ_API_KEY is not set. Tools will return an auth hint until a key is configured. " +
|
|
26
27
|
"Get a free sandbox key at https://crehq.com/developers/sandbox/\n");
|
|
27
28
|
}
|
|
28
|
-
const server = new Server({ name: "crehq-mcp-server", version: "0.1.
|
|
29
|
+
const server = new Server({ name: "crehq-mcp-server", version: "0.1.2" }, { capabilities: { tools: {} } });
|
|
29
30
|
// Advertise the tool catalog (names + descriptions + JSON schemas).
|
|
30
31
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
31
32
|
tools: TOOLS.map((t) => ({
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* https://crehq.com/apis/ (verified 2026-06-17).
|
|
10
10
|
*/
|
|
11
11
|
import { type ZodRawShape } from "zod";
|
|
12
|
-
import type
|
|
12
|
+
import { type CrehqClient } from "./client.js";
|
|
13
13
|
import { type ToolContent } from "./format.js";
|
|
14
14
|
export interface ToolDef {
|
|
15
15
|
name: string;
|
package/dist/tools.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* https://crehq.com/apis/ (verified 2026-06-17).
|
|
10
10
|
*/
|
|
11
11
|
import { z } from "zod";
|
|
12
|
+
import { CrehqApiError } from "./client.js";
|
|
12
13
|
import { ok, fail } from "./format.js";
|
|
13
14
|
/** Run a request and normalize success/error into MCP content. */
|
|
14
15
|
async function call(fn) {
|
|
@@ -28,7 +29,91 @@ const perPage = z
|
|
|
28
29
|
.optional()
|
|
29
30
|
.describe("Results per page (max 200, default 50).");
|
|
30
31
|
const page = z.number().int().min(1).optional().describe("Page number for cursor/offset pagination (default 1).");
|
|
32
|
+
const upgradeIntentFields = {
|
|
33
|
+
franchise_fdd: "fdd",
|
|
34
|
+
item19_financials: "item19",
|
|
35
|
+
credit_signals: "credit_signals",
|
|
36
|
+
credit_profile: "credit_profile",
|
|
37
|
+
credit_rating: "credit_rating",
|
|
38
|
+
site_selection_criteria: "site_requirements",
|
|
39
|
+
real_estate_requirements: "real_estate_requirements",
|
|
40
|
+
real_estate_contacts: "contacts",
|
|
41
|
+
source_provenance: "provenance",
|
|
42
|
+
change_history: "event_history",
|
|
43
|
+
bulk_download: "provenance",
|
|
44
|
+
whitespace: "trade_area",
|
|
45
|
+
co_tenancy: "trade_area",
|
|
46
|
+
site_timeline: "event_history",
|
|
47
|
+
other: "provenance",
|
|
48
|
+
};
|
|
31
49
|
export const TOOLS = [
|
|
50
|
+
{
|
|
51
|
+
name: "crehq_request_upgrade",
|
|
52
|
+
description: "Use this when the user asks CREHQ for data that is NOT included in the free sandbox: CREHQ Credit Signals / credit-intelligence profiles, ownership/sponsor/capital-structure/rating-history data, site-selection criteria, real-estate requirements, tenant requirements, franchise/FDD data, Item 19 financials, real-estate contacts, source provenance, event/change history, bulk dataset downloads, whitespace analysis, co-tenancy, site timeline, point-in-time occupancy, or higher limits. This returns a clear upgrade prompt and, for free sandbox keys, records the requested topic as a CREHQ paywall/upgrade-intent signal for follow-up. Do NOT tell the user CREHQ lacks credit signals, franchise/FDD, or site-selection data merely because the free footprint endpoint omits them.",
|
|
53
|
+
schema: {
|
|
54
|
+
requested_data: z
|
|
55
|
+
.enum([
|
|
56
|
+
"franchise_fdd",
|
|
57
|
+
"item19_financials",
|
|
58
|
+
"credit_signals",
|
|
59
|
+
"credit_profile",
|
|
60
|
+
"credit_rating",
|
|
61
|
+
"site_selection_criteria",
|
|
62
|
+
"real_estate_requirements",
|
|
63
|
+
"real_estate_contacts",
|
|
64
|
+
"source_provenance",
|
|
65
|
+
"change_history",
|
|
66
|
+
"bulk_download",
|
|
67
|
+
"whitespace",
|
|
68
|
+
"co_tenancy",
|
|
69
|
+
"site_timeline",
|
|
70
|
+
"other",
|
|
71
|
+
])
|
|
72
|
+
.describe("The paid data category the user asked for, including credit signals, site-selection criteria or real-estate requirements."),
|
|
73
|
+
brand: z.string().optional().describe("Optional brand slug/name involved in the request, e.g. 'taco-bell'."),
|
|
74
|
+
question: z.string().optional().describe("The user's original request or short summary."),
|
|
75
|
+
},
|
|
76
|
+
handler: async (c, a) => {
|
|
77
|
+
const requested = String(a.requested_data ?? "other");
|
|
78
|
+
const field = upgradeIntentFields[requested] ?? "provenance";
|
|
79
|
+
const brand = typeof a.brand === "string" && a.brand.trim() ? a.brand.trim() : undefined;
|
|
80
|
+
if ((await c.apiSurface()) === "selfserve") {
|
|
81
|
+
try {
|
|
82
|
+
await c.request("/selfserve/locations", {
|
|
83
|
+
query: { brand, fields: field, limit: 1 },
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
if (err instanceof CrehqApiError && err.status === 402) {
|
|
88
|
+
return {
|
|
89
|
+
content: [
|
|
90
|
+
{
|
|
91
|
+
type: "text",
|
|
92
|
+
text: `CREHQ has this type of data, but "${requested}" is not included in the free sandbox tier. ` +
|
|
93
|
+
`The request${brand ? ` for ${brand}` : ""} has been recorded as upgrade intent. ` +
|
|
94
|
+
`Upgrade or request production access at https://crehq.com/developers/sandbox/` +
|
|
95
|
+
(a.question ? `\n\nUser request: ${String(a.question)}` : ""),
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
isError: true,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return fail(err);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: "text",
|
|
108
|
+
text: `The user asked for "${requested}"${brand ? ` for ${brand}` : ""}. ` +
|
|
109
|
+
"If their current CREHQ contract does not include this data, upgrade the key/tier and reconnect this MCP server with the upgraded key. " +
|
|
110
|
+
"Production and Intelligence access: https://crehq.com/developers/sandbox/",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
isError: true,
|
|
114
|
+
};
|
|
115
|
+
},
|
|
116
|
+
},
|
|
32
117
|
// ========================================================================
|
|
33
118
|
// COMPANIES / BRANDS
|
|
34
119
|
// ========================================================================
|
|
@@ -50,7 +135,7 @@ export const TOOLS = [
|
|
|
50
135
|
},
|
|
51
136
|
{
|
|
52
137
|
name: "crehq_companies_search",
|
|
53
|
-
description: "Full-text search CREHQ's brand universe by name to resolve a company to its canonical CREHQ id. Handles messy/alias names (e.g. 'mcdonald-s' → McDonald's Corporation). ALWAYS use this first to get a company_id before calling company detail, franchise/FDD, real-estate, contacts, occupancy, whitespace, or co-tenancy tools.",
|
|
138
|
+
description: "Full-text search CREHQ's brand universe by name to resolve a company to its canonical CREHQ id. Handles messy/alias names (e.g. 'mcdonald-s' → McDonald's Corporation). ALWAYS use this first to get a company_id before calling company detail, credit signals, franchise/FDD, real-estate, contacts, occupancy, whitespace, or co-tenancy tools.",
|
|
54
139
|
schema: {
|
|
55
140
|
q: z.string().min(1).describe("Search term — brand or company name (partial OK)."),
|
|
56
141
|
per_page: perPage,
|
|
@@ -63,6 +148,12 @@ export const TOOLS = [
|
|
|
63
148
|
schema: { id: z.union([z.string(), z.number()]).describe("CREHQ company id (from crehq_companies_search).") },
|
|
64
149
|
handler: (c, a) => call(() => c.request(`/company/${encodeURIComponent(String(a.id))}`)),
|
|
65
150
|
},
|
|
151
|
+
{
|
|
152
|
+
name: "crehq_company_credit_signals",
|
|
153
|
+
description: "PREMIUM CREDIT INTELLIGENCE — get CREHQ Credit Signals for a brand: ownership and parent/issuer context, PE sponsor data, rating history, capital structure, debt/maturity/covenant facts, unit-count trajectory, footprint status counts, and material events. Use this when the user asks about tenant credit, creditworthiness, lender diligence, leverage, ratings, sponsor ownership, or distress/health signals for a brand. Requires credit-intel access; if unavailable or scope-gated, use crehq_request_upgrade with requested_data='credit_signals' instead of saying CREHQ lacks the data.",
|
|
154
|
+
schema: { id: z.union([z.string(), z.number()]).describe("CREHQ company id (from crehq_companies_search).") },
|
|
155
|
+
handler: (c, a) => call(() => c.request(`/company/${encodeURIComponent(String(a.id))}/credit-signals`)),
|
|
156
|
+
},
|
|
66
157
|
{
|
|
67
158
|
name: "crehq_company_franchise",
|
|
68
159
|
description: "Retrieve FDD (Franchise Disclosure Document)-derived financials for a brand: franchise fees, royalty rates, total initial investment ranges, and Item 19 financial performance representations where disclosed. Sourced and multi-source-verified from state franchise registries — the hard numbers an analyst, investor, or prospective franchisee needs to underwrite a concept.",
|
|
@@ -71,7 +162,7 @@ export const TOOLS = [
|
|
|
71
162
|
},
|
|
72
163
|
{
|
|
73
164
|
name: "crehq_company_real_estate",
|
|
74
|
-
description: "
|
|
165
|
+
description: "PREMIUM SITE-SELECTION DATA — get a brand's site-selection criteria and target real-estate profile: preferred site types, building/lot size, target geographies and trade areas, and expansion markets. Essential for landlords, brokers, and site-selectors who want to know what a tenant is looking for before pitching them space. If unavailable or scope-gated, use crehq_request_upgrade with requested_data='site_selection_criteria' instead of saying CREHQ lacks site requirements.",
|
|
75
166
|
schema: { id: z.union([z.string(), z.number()]).describe("CREHQ company id (from crehq_companies_search).") },
|
|
76
167
|
handler: (c, a) => call(() => c.request(`/company/${encodeURIComponent(String(a.id))}/real-estate`)),
|
|
77
168
|
},
|
|
@@ -86,7 +177,7 @@ export const TOOLS = [
|
|
|
86
177
|
// ========================================================================
|
|
87
178
|
{
|
|
88
179
|
name: "crehq_locations_list",
|
|
89
|
-
description: "List individual store/branch/site records, filterable by brand, US state, and category. Each location carries a stable entity_uid, geocoded address, open/closed status, and a multi-source verification trace. The raw, government-cross-checked footprint behind any brand.",
|
|
180
|
+
description: "List individual store/branch/site records, filterable by brand, US state, and category. Each location carries a stable entity_uid, geocoded address, open/closed status, and a multi-source verification trace. The raw, government-cross-checked footprint behind any brand. Free sandbox keys can use this as a bounded brand lookup. This footprint output does NOT include credit signals, ownership/rating history, capital structure, site-selection criteria, FDD/Item 19, or tenant-credit diligence; for those requests use the relevant premium tool if available, otherwise call crehq_request_upgrade with the matching requested_data value.",
|
|
90
181
|
schema: {
|
|
91
182
|
brand: z.string().optional().describe("Brand slug or name to filter by (e.g. 'planet-fitness')."),
|
|
92
183
|
state: z.string().optional().describe("US state, 2-letter code or full name (e.g. 'TX')."),
|
|
@@ -94,9 +185,29 @@ export const TOOLS = [
|
|
|
94
185
|
per_page: perPage,
|
|
95
186
|
page,
|
|
96
187
|
},
|
|
97
|
-
handler: (c, a) =>
|
|
98
|
-
|
|
99
|
-
|
|
188
|
+
handler: async (c, a) => (await c.apiSurface()) === "selfserve"
|
|
189
|
+
? a.brand
|
|
190
|
+
? call(() => c.request("/selfserve/locations", {
|
|
191
|
+
query: {
|
|
192
|
+
brand: a.brand,
|
|
193
|
+
limit: a.per_page ?? 25,
|
|
194
|
+
page: a.page,
|
|
195
|
+
},
|
|
196
|
+
}))
|
|
197
|
+
: Promise.resolve({
|
|
198
|
+
content: [
|
|
199
|
+
{
|
|
200
|
+
type: "text",
|
|
201
|
+
text: "Free CREHQ sandbox keys require a bounded location query. " +
|
|
202
|
+
"For this tool, pass a brand slug/name such as brand=\"starbucks\". " +
|
|
203
|
+
"Use crehq_locations_nearby for lat/lng radius searches, or crehq_request_upgrade for premium data like credit signals, FDD, site-selection criteria, contacts, provenance, or bulk downloads.",
|
|
204
|
+
},
|
|
205
|
+
],
|
|
206
|
+
isError: true,
|
|
207
|
+
})
|
|
208
|
+
: call(() => c.request("/locations", {
|
|
209
|
+
query: { brand: a.brand, state: a.state, category: a.category, per_page: a.per_page, page: a.page },
|
|
210
|
+
})),
|
|
100
211
|
},
|
|
101
212
|
{
|
|
102
213
|
name: "crehq_location_get",
|
|
@@ -130,9 +241,19 @@ export const TOOLS = [
|
|
|
130
241
|
category: z.string().optional().describe("Optional: restrict to one vertical/category."),
|
|
131
242
|
per_page: perPage,
|
|
132
243
|
},
|
|
133
|
-
handler: (c, a) =>
|
|
134
|
-
|
|
135
|
-
|
|
244
|
+
handler: async (c, a) => (await c.apiSurface()) === "selfserve"
|
|
245
|
+
? call(() => c.request("/selfserve/locations", {
|
|
246
|
+
query: {
|
|
247
|
+
lat: a.lat,
|
|
248
|
+
lng: a.lng,
|
|
249
|
+
radius: a.radius_mi ?? 5,
|
|
250
|
+
brand: a.brand,
|
|
251
|
+
limit: a.per_page ?? 25,
|
|
252
|
+
},
|
|
253
|
+
}))
|
|
254
|
+
: call(() => c.request("/locations/nearby", {
|
|
255
|
+
query: { lat: a.lat, lng: a.lng, radius_mi: a.radius_mi, brand: a.brand, category: a.category, per_page: a.per_page },
|
|
256
|
+
})),
|
|
136
257
|
},
|
|
137
258
|
{
|
|
138
259
|
name: "crehq_locations_bulk",
|
|
@@ -226,6 +347,53 @@ export const TOOLS = [
|
|
|
226
347
|
},
|
|
227
348
|
handler: (c, a) => call(() => c.request("/intelligence/co-tenancy", { query: { company_id: String(a.company_id), radius_meters: a.radius_meters ?? 200 } })),
|
|
228
349
|
},
|
|
350
|
+
{
|
|
351
|
+
name: "crehq_location_site_profile",
|
|
352
|
+
description: "CREHQ Modeled Site Profile for one physical location: traffic/AADT, route class, trade-area demographics, radius demographics, drive-time context, nearby tenants, format signals, lifecycle timing, and provenance/coverage flags. This is CREHQ-modeled from observed location/context data, not a brand-stated requirement sheet.",
|
|
353
|
+
schema: {
|
|
354
|
+
entity_id: z.union([z.string(), z.number()]).describe("CREHQ location entity_id."),
|
|
355
|
+
},
|
|
356
|
+
handler: (c, a) => call(() => c.request(`/intelligence/site-profiles/locations/${encodeURIComponent(String(a.entity_id))}`)),
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
name: "crehq_company_site_pattern",
|
|
360
|
+
description: "CREHQ Modeled Site Pattern for a brand: empirical medians, ranges, percentiles, road-type mix, co-tenant mix, trade-area density, recent-opening context, and layer coverage/confidence. Use this to infer revealed-preference site patterns from where the brand actually operates. Do not present it as company-stated requirements unless the response includes stated-requirement provenance.",
|
|
361
|
+
schema: {
|
|
362
|
+
company_id: z.union([z.string(), z.number()]).describe("CREHQ company id to model."),
|
|
363
|
+
country: z.string().optional().describe("ISO country code filter (default 'US' where modeled context layers are available)."),
|
|
364
|
+
include_locations: z.boolean().optional().describe("Include representative location rows in the response (default false)."),
|
|
365
|
+
limit: z.number().int().min(1).max(500).optional().describe("Max representative rows when include_locations=true."),
|
|
366
|
+
},
|
|
367
|
+
handler: (c, a) => call(() => c.request(`/intelligence/site-profiles/companies/${encodeURIComponent(String(a.company_id))}`, {
|
|
368
|
+
query: {
|
|
369
|
+
country: a.country,
|
|
370
|
+
include_locations: a.include_locations,
|
|
371
|
+
limit: a.limit,
|
|
372
|
+
},
|
|
373
|
+
})),
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
name: "crehq_recent_location_context",
|
|
377
|
+
description: "Context for a brand's most recently observed locations: event timing, address/market, traffic counts when backfilled, route class, trade-area demographics, radius demographics, drive-time context, and coverage flags. Useful for questions like 'traffic counts for the last 50 Starbucks locations CREHQ observed.' Event rows distinguish verified openings from first-observed/reconciliation events.",
|
|
378
|
+
schema: {
|
|
379
|
+
company_id: z.union([z.string(), z.number()]).describe("CREHQ company id."),
|
|
380
|
+
country: z.string().optional().describe("ISO country code filter (default all available rows)."),
|
|
381
|
+
event_type: z
|
|
382
|
+
.enum(["first_observed", "opened", "closed", "reopened", "status_changed", "relocated", "renamed", "identifier_changed"])
|
|
383
|
+
.optional()
|
|
384
|
+
.describe("Lifecycle event type to use for recency (default first_observed)."),
|
|
385
|
+
only_with_traffic: z.boolean().optional().describe("When true, return only recent rows with traffic/AADT attached."),
|
|
386
|
+
limit: z.number().int().min(1).max(500).optional().describe("Max locations to return (default 50, max 500)."),
|
|
387
|
+
},
|
|
388
|
+
handler: (c, a) => call(() => c.request(`/intelligence/site-profiles/companies/${encodeURIComponent(String(a.company_id))}/recent`, {
|
|
389
|
+
query: {
|
|
390
|
+
country: a.country,
|
|
391
|
+
event_type: a.event_type,
|
|
392
|
+
only_with_traffic: a.only_with_traffic,
|
|
393
|
+
limit: a.limit,
|
|
394
|
+
},
|
|
395
|
+
})),
|
|
396
|
+
},
|
|
229
397
|
// ========================================================================
|
|
230
398
|
// DATASETS
|
|
231
399
|
// ========================================================================
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crehq-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Model Context Protocol server that wraps the CREHQ location-intelligence REST API as native AI-agent tools (franchise brands, store locations, FDD financials, site tenancy history, whitespace & co-tenancy).",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "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).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|