Field operations over MCP — constraint-based scheduling on a deterministic solver, manageable from Claude or ChatGPT. Match crews to jobs by location, skills & availability; booking, work orders, dispatch, CRM, fleet (HVAC, plumbing, electrical, home services).
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/crisphive/crisphive-mcp{
"mcpServers": {
"crisphive-mcp": {
"command": "node",
"args": ["/path/to/crisphive-mcp/dist/index.js"]
}
}
}MCP Servers overview
# Crisphive MCP
[](https://smithery.ai/servers/crisphive/crisphive-mcp)
[](https://glama.ai/mcp/servers/crisphive/crisphive-mcp)
[](https://www.npmjs.com/package/@crisphive/mcp)
The official MCP (Model Context Protocol) server for the
[Crisphive API](https://docs.crisphive.com/) — **agentic AI scheduling
infrastructure for field operations**.
Lets AI agents — Claude, ChatGPT, Gemini, Cursor or any MCP client — match
schedules between customers and businesses and route crews to jobs by
**location, skills, and real-time availability**: **job booking & appointment
scheduling**, **work-order tracking**, availability from a live **dispatch &
scheduling engine**, **customer (CRM) sync**, service catalogs,
**technician & crew rosters**, geographic **service territories** and **fleet**
— for trades and home services such as HVAC, plumbing, electrical, cleaning,
appliance repair and property maintenance. Scheduling is **constraint-based on
a deterministic solver**: the agent handles the conversation, the solver makes
the decision — same inputs, same plan, never an LLM guessing at a calendar.
Hosted remote server; nothing to
install or run (this repository holds the documentation and registry manifest).
```
https://api.crisphive.com/mcp
```
## Try these first
Connect (a `chsk_test_` sandbox key is enough), then paste any of these straight
into your agent:
1. **Job creation** — *"Schedule a 2-hour HVAC job at 145 Laurier Ave W
tomorrow for Marie Tremblay, 613-555-0142."*
(`createCustomer → listJobRequestBookingWindows → createJobRequest →
quoteJobRequest → confirmJobRequest`)
2. **Emergency insertion** — *"Emergency plumbing job now at 99 Bank St for
David Okafor (613-555-0198) — show me what gets rescheduled."*
(`listEmergencyCandidates → previewEmergencyReschedule →
commitEmergencyReschedule`)
3. **Daily outline** — *"Outline my day tomorrow and flag anything at risk."*
(`listJobRequests → getTechnicianSchedule`)
. **Sick call** — *"Dmitri called in sick for tomorrow — re-staff his jobs
without moving any customer's appointment."*
(`previewAbsenceResolve → commitAbsenceResolve`)
The same prompts appear on every Crisphive listing and docs page, so what you
see here is exactly the first-run experience everywhere.
→ Full overview, tool table and one-click connect: https://crisphive.com/claude
## Requirements
Any MCP client that supports remote servers over Streamable HTTP —
claude.ai, Claude Desktop, Claude Code, ChatGPT, Gemini CLI, Cursor, VS Code,
Windsurf, Cline, Zed, LM Studio, ….
## Installation
### claude.ai / Claude Desktop (OAuth — no key needed)
**Settings → Connectors → Add custom connector**, paste
`https://api.crisphive.com/mcp`. Sign in as the Crisphive business owner when
the consent screen opens. *(Custom connectors require a Claude plan that
supports them.)*
### Claude Code
```sh
# OAuth (you'll be prompted to authorize in the browser)
claude mcp add --transport http crisphive https://api.crisphive.com/mcp
# or with an API key (sandbox key shown — safe to experiment)
claude mcp add --transport http crisphive https://api.crisphive.com/mcp \
--header "Authorization: Bearer chsk_test_YOUR_KEY"
```
### Cursor
[](cursor://anysphere.cursor-deeplink/mcp/install?name=crisphive&config=eyJ1cmwiOiJodHRwczovL2FwaS5jcmlzcGhpdmUuY29tL21jcCJ9)
Or add to `.cursor/mcp.json`:
```json
{
"mcpServers": {
"crisphive": { "url": "https://api.crisphive.com/mcp" }
}
}
```
### VS Code
```sh
code --add-mcp '{"name":"crisphive","url":"https://api.crisphive.com/mcp"}'
```
### ChatGPT
**Settings → Connectors** (developer mode) → add MCP server with URL
`https://api.crisphive.com/mcp` (OAuth).
### Gemini CLI
Add to `~/.gemini/settings.json` (note: Gemini CLI uses `httpUrl` for
Streamable HTTP servers):
```json
{
"mcpServers": {
"crisphive": {
"httpUrl": "https://api.crisphive.com/mcp",
"headers": { "Authorization": "Bearer chsk_test_YOUR_KEY" }
}
}
}
```
### Other MCP clients (Windsurf, Cline, Zed, LM Studio, …)
Most clients accept the standard remote-server shape:
```json
{
"mcpServers": {
"crisphive": {
"url": "https://api.crisphive.com/mcp",
"headers": { "Authorization": "Bearer chsk_test_YOUR_KEY" }
}
}
}
```
Only the URL field name varies in a few clients:
| Client | Config file | URL field |
|---|---|---|
| Cline / Roo Code | `cline_mcp_settings.json` | `url` |
| Windsurf | `~/.codeium/windsurf/mcp_config.json` | `serverUrl` |
| Gemini CLI | `~/.gemini/settings.json` | `httpUrl` |
| Zed | `settings.json` → `context_servers` | `url` |
Clients that only speak stdio can bridge with
[`mcp-remote`](https://www.npmjs.com/package/mcp-remote):
```json
{
"mcpServers": {
"crisphive": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.crisphive.com/mcp"]
}
}
}
```
### Local server (npm — `@crisphive/mcp`)
This repository also ships a thin **local stdio server**: the same 61 tools
(same names, same schemas — generated from the same `/v1` OpenAPI spec as the
hosted endpoint), where each call is an HTTPS request to the Crisphive API
with your key. No business logic runs locally.
```json
{
"mcpServers": {
"crisphive": {
"command": "npx",
"args": ["-y", "@crisphive/mcp"],
"env": { "CRISPHIVE_API_KEY": "chsk_test_YOUR_KEY" }
}
}
}
```
Environment variables:
| Variable | Required | Meaning |
|---|---|---|
| `CRISPHIVE_API_KEY` | for tool calls | `chsk_live_…` = production data, `chsk_test_…` = isolated sandbox. Create keys in the dashboard (Developers → API keys). |
| `CRISPHIVE_BASE_URL` | no | API origin override (default `https://api.crisphive.com`). |
Prefer the **hosted remote server** (`https://api.crisphive.com/mcp`) when your
client supports it — OAuth, no key handling, always current. The local package
exists for stdio-only clients and self-hosted setups.
Developing in this repo: `npm ci && npm test`. The tool registry
(`src/tools.generated.json`) is generated — `npm run generate` refreshes it
from the live spec; CI fails if it drifts from `/v1`.
## Authentication
Every request is authenticated with a secret API key sent as a bearer token.
Create keys from your Crisphive business dashboard. **The key prefix selects the
data environment:**
- `chsk_live_…` → live (production) data
- `chsk_test_…` → sandbox (isolated test) data
Load keys from the environment — never commit them.
**Keys expire.** The lifetime is chosen when the key is created — 30 days by
default, up to 365 — and is fixed for that key's life; it cannot be extended
later. To renew, create a *second* key, point your agent at it, then revoke the
first: a business can hold several active keys at once, so the changeover has
no downtime and needs no special endpoint (the same procedure AWS documents for
access keys). Read `expires_at` from the dashboard or the key API and schedule
the swap. An aged-out key fails with `API_KEY_EXPIRED`, distinct from
`API_KEY_INVALID`, so you can alert on a missed renewal separately from a
revocation.
Crisphive emails the business's owners 7 days before a key expires (14 days for
an OAuth connection), so an expiry should not be a surprise — but the mail goes
to the business, not necessarily to you, so track `expires_at` yourself. A key
deliberately created for less than 7 days gets no advance notice; it would have
arrived at creation.
The MCP endpoint additionally supports **OAuth 2.1** for end-user connectors
(claude.ai, ChatGPT, …): the business owner authorizes your agent on a consent
screen and no key is ever handled. A compliant MCP client runs the whole flow
automatically — discovery, dynamic client registration, authorization code +
PKCE. Full flow, scopes and token lifetimes:
[docs/integration.md](docs/integration.md).
## Tools
61 tools, one per operation of the public `/v1` API — same names as the SDK
methods (`listCustomers`, `createJobRequest`, …), derived from the same OpenAPI
spec so REST and MCP never drift. Full reference:
[docs/tools.md](docs/tools.md).
| Group | Tools |
|---|---|
| **Customers** (CRM sync, full CRUD) | `listCustomers` · `createCustomer` · `getCustomer` · `updateCustomer` · `deleteCustomer` |
| **Bookings** (create & track) | `createJobRequest` · `listJobRequests` · `getJobRequest` · `getJobRequestTimeline` · `listJobRequestBookingWindows` · `listJobRequestChanges` |
| **Catalog** (read-only) | `listJobTypes` · `getJobType` · `listSkills` · `listSkillCategories` · `listSkillsByCategory` · `listServiceAreas` · `getServiceArea` |
| **Team & fleet** (reads) | `listTechnicians` · `getTechnician` · `listVehicles` · `getVehicle` |
| **Team roster management** (HR-system sync) | `createTechnician` · `updateTechnician` · `deleteTechnician` · `replaceTechnicianBuddies` · `replaceTechnicianLeads` · `replaceTechnicianVehicles` · `replaceTechnicianServiceAreas` · `replaceTechnicianSkills` · `listTechnicianSkills` |
| **Matching & scheduling** (read-only, engine-computed) | `listMatchingSlots` · `listCrewCandidates` · `getTechnicianSchedule` · `listNearbyTechnicians` |
| **Scheduling actions** (drive the schedule) | `quoteJobRequest` · `confirmJobRequest` · `previewJobRequestMove` · `commitJobRequestMove` |
| **Priority & emergency dispatch** (P0–P3, SLA, cascade) | `updateJobPriority` · `listEmergencyCandidates` · `previewEmergencyReschedule` · `commitEmergencyReschedule` |
| **Absence resolve** (sick call — re-staff a technician's whole day) | `previewAbsenceResolve` · `commitAbsenceResolve` |
| **Technician time off** (record a sick day / leave, read existing leave) | `createTechnicianTimeOff` · `listTechnicianTimeOff` |
Typical agent flow:
```
listSkills / What people ask about crisphive-mcp
What is crisphive/crisphive-mcp?
+
crisphive/crisphive-mcp is mcp servers for the Claude AI ecosystem. Field operations over MCP — constraint-based scheduling on a deterministic solver, manageable from Claude or ChatGPT. Match crews to jobs by location, skills & availability; booking, work orders, dispatch, CRM, fleet (HVAC, plumbing, electrical, home services). It has 3 GitHub stars and its last recorded update is dated 2026-09-27.
How do I install crisphive-mcp?
+
You can install crisphive-mcp by cloning the repository (https://github.com/crisphive/crisphive-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is crisphive/crisphive-mcp safe to use?
+
Our security agent has analyzed crisphive/crisphive-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains crisphive/crisphive-mcp?
+
crisphive/crisphive-mcp is maintained by crisphive. The last recorded GitHub activity is dated 2026-09-27, with 0 open issues.
Are there alternatives to crisphive-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy crisphive-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/crisphive-crisphive-mcp)<a href="https://claudewave.com/repo/crisphive-crisphive-mcp"><img src="https://claudewave.com/api/badge/crisphive-crisphive-mcp" alt="Featured on ClaudeWave: crisphive/crisphive-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
The fastest path to AI-powered full stack observability, even for lean teams.