## RapidEye in Claude, ChatGPT, Claude Code and Codex (MCP)

RapidEye also runs a remote [Model Context Protocol](https://modelcontextprotocol.io)
server, so a RapidEye customer can use their own account from Claude, ChatGPT, Claude Code
or Codex.
It is a customer feature, not a partner integration surface: it acts as the person
who connected, never as a partner key, and partners keep using `/v1`.

**Address:** `https://api.rapideyeinspections.com/mcp`

A customer adds that address as a custom connector in Claude or ChatGPT, or with one
command in Claude Code or Codex (the customer guides below have each app's steps),
signs in with RapidEye, and chooses
between "Full access" and "Read only". The connection works in every workspace the person
is in, including ones they join later, with their role in each; Full access is
still limited to that role, and Read only can't use RapidEye tools that make changes. Write
tools work in Claude on every plan and in ChatGPT where the plan allows custom apps
to write (Business, Enterprise and Edu at the time of writing). The customer guides
are [Connect Claude](https://rapideyeinspections.com/docs/claude/) and
[Connect ChatGPT](https://rapideyeinspections.com/docs/chatgpt/).

### Protocol and sign-in

- Streamable HTTP, stateless, JSON responses: one `POST /mcp` per message. Protocol
  revisions `2025-06-18`, `2025-11-25` and `2026-07-28` are served. `GET` and
  `DELETE` on `/mcp` answer `405`.
- A request without a valid token answers `401` with
  `WWW-Authenticate: Bearer resource_metadata="https://api.rapideyeinspections.com/.well-known/oauth-protected-resource/mcp"`.
- Protected resource metadata (RFC 9728): `/.well-known/oauth-protected-resource/mcp`.
- Authorization server metadata (RFC 8414): `/.well-known/oauth-authorization-server`.
  Authorization code with PKCE `S256` only, public clients
  (`token_endpoint_auth_method: none`), Client ID Metadata Documents preferred and
  dynamic registration (RFC 7591) as the fallback, `resource` (RFC 8707) validated
  and bound to every token, `iss` in the authorization response (RFC 9207). Scopes:
  `rapideye` and `offline_access`. No OpenID Connect scopes.
- Only Claude (web, desktop and mobile), ChatGPT, Claude Code and Codex may connect.
  Claude Code and Codex are identified only by their vendors' Client ID Metadata
  Documents and receive the code at a loopback callback on the person's own computer
  (RFC 8252), never through dynamic registration. Any other
  client is refused before a person sees a consent screen.
- A person may connect one app more than once (two Claude accounts, or Claude Code on
  two computers). Each connection is listed, switched and disconnected on its own.
- Access tokens are opaque and last one hour; refresh tokens rotate, and a reused
  one ends the connection. A reuse within 10 seconds of the first is taken as the
  client's own retry: it is refused and the connection stays. A connection nobody
  uses for 90 days ends.

### Tools

Twenty-six tools, eleven that read and fifteen that write. Every write is annotated
as one (`readOnlyHint: false`): Claude asks the person before running it, and ChatGPT
may run an additive write without asking.

Every tool but `list_workspaces` takes `workspace`, a name or id from
`list_workspaces`. It may be left out when the person has one workspace; with several,
a call without it answers with an error listing them, never with data from a default.
Every answer names the workspace it came from.

| Tool | What it does |
|---|---|
| `list_workspaces` | The person's workspaces, their role in each, and whether the connection is read only. |
| `get_workspace_overview` | Who is signed in, their role, this month's numbers, reports awaiting sign-off, homes not recorded lately. |
| `get_setup_status` | What is left to set up, for the account or one home, with the next step for each item. |
| `find_homes` | Search homes; filter to off, missing a baseline or checklist, or not recorded in N days. |
| `get_home` | One home: status, baselines and rooms, checklists, last walkthroughs, report delivery, recording link. |
| `find_inspections` | Walkthroughs by date, home, type and state, the review queue included. |
| `get_inspection_report` | One report: findings, checklist outcomes, comments, tags, PMS tasks, and the transcript on request. |
| `find_findings` | Findings across homes by date, home, severity, category or tag, optionally grouped by home. |
| `view_finding_photo` | One finding's photo, or a video frame, as an image up to 1400 px on the long edge (a frame up to 1568 px), and on request a link to the original photo that opens for 15 minutes. |
| `get_performance` | Cleaner and home performance and cleaner accountability for a date range. |
| `get_settings` | Team, report delivery or PMS settings. |
| `add_homes` | Add up to 100 homes; duplicates are skipped. |
| `reactivate_home` | Turn a home that is off back on. |
| `start_walkthrough` | Create walkthroughs and return their recording links. |
| `save_checklist` | Replace or copy a checklist; the old one is returned. |
| `draft_checklist_from_video` | Draft a checklist from the baseline video. Saves nothing. |
| `update_baseline` | Import photos, attach a scan, reuse another baseline's material, name baselines and rooms. |
| `annotate_finding` | Comment on a finding, edit your own comment, add or remove tags. |
| `mark_report_reviewed` | Sign off up to 10 reports. |
| `create_pms_task` | Create a PMS task from a finding, with its photo, or add it to an existing task. |
| `manage_team` | Invite, resend or cancel invites, change roles, answer join requests. |
| `update_slack` | Default and per-home Slack channels, matching by name. |
| `update_email_recipients` | Change who gets report emails and the morning summary. |
| `set_up_pms` | Choose and connect the PMS, check it, change what it does, and save a Trellis or Track key the person pastes into the chat. Owners and admins; only the key's last four characters are ever shown back. |
| `complete_setup_step` | Record a Get Started step. |
| `update_accountability_settings` | Set the short-walkthrough threshold. |

These stay in the dashboard and have no tool: deleting a walkthrough or a home,
removing a teammate or transferring ownership, turning a home off, billing,
disconnecting Slack or a PMS, re-recording, unlinking a PMS task, deleting a
comment, and removing baseline photos, rooms or scans. The API and the database
refuse them for these connections too.

### Limits

Per connection: 60 tool calls a minute, 2,000 a day and 20 writes a minute. Per
workspace: 300 calls a minute across its connections. Lists page at 50, and a
report with more than 25 findings lists the 25 most severe.
