API & Connectors — Help Center
Connect Claude, ChatGPT, Claude Code, Codex, Gemini CLI, Cursor or any MCP client with one URL and a browser sign-in. No API key.
How do I connect Claude, ChatGPT, Claude Code, Codex, Gemini CLI or Cursor?
Use Account -> Integrations. Every app connects the same way: one URL, one browser sign-in, no API key.
- Open Account -> Integrations and pick your app: Claude (the Claude app), ChatGPT, Claude Code, Codex CLI, Grok Bot, Cursor, or Other for any other MCP client (Gemini CLI is under it). These are the same apps, in the same order, that a new project and Project Home offer to continue in.
- Copy what the page offers for that app and run or paste it. The next article has the exact command per app.
- Tell the app to sign in. Your browser opens the PrecisionDocs consent page.
- Approve once. The app is connected and the PrecisionDocs tools are listed.
The consent page names the workspace wallet the connection spends from, and lets you set optional daily and monthly credit caps and an end date (after 1, 7, 30 or 90 days) for that one connection. Connecting an app works on every plan, the free plan included.
The app then appears under Connected apps on the same page, with its cap and end date, where Disconnect signs it out immediately, and its card reads Connected. Each setup ends with Start a site study, which opens the app with your first message ready, or copies the message where the app takes none.
What you are copying
- Copy command - the one-liner that registers PrecisionDocs in Claude Code, Codex or Gemini CLI, plus the sign-in command that follows it.
- Copy MCP config / Add to Cursor - the
mcpServers.precisiondocsblock, or the one-click install link. - Copy URL -
https://mcp.precisiondocs.ai/mcp, for Claude, ChatGPT, Grok Bot or any other MCP client. - Copy the setup prompt - the setup steps plus PrecisionDocs operating behavior, for the app's agent or project instructions area.
None of these contain a key. The only copyables that involve one sit under Advanced: API key, and that path exists for ChatGPT Actions and the REST API.
What happens behind the scenes
- Every client uses the hosted
https://mcp.precisiondocs.ai/mcpconnector with PrecisionDocs OAuth, so no key is stored anywhere - not in the app, not in a config file, not in the URL. - The token the app holds is scoped to you: it sees only the projects you own or are shared into, expires after an hour, and refreshes silently for 30 days while the app is in use.
- PrecisionDocs runs the civil-engineering agent server-side; the connected app calls the managed public API through the connector.
The agent prompt tells the connected agent to walk project creation like the wizard, poll the project until it is ready, ask for site and ordinance analysis, recover a slow turn by listing messages rather than re-asking, and never invent regulatory facts.
The endpoint-level reference - every route, tool, error and rate limit - lives in the developer documentation.
What is the exact setup for my app?
Every app registers the same URL and signs in through your browser. Only the command differs.
| App | What to copy | How to sign in |
|---|---|---|
| Claude app (claude.ai or Claude Desktop) | Connect to Claude, or Copy URL into Customize -> Connectors -> Add custom connector | Press Add, then Connect |
| ChatGPT (chatgpt.com) | Open ChatGPT Plugins, press +, choose Add custom MCP server, name it PrecisionDocs, Copy URL into it, choose OAuth, then Create as a plugin | Approve on the PrecisionDocs page ChatGPT opens |
| Claude Code | Copy command: claude mcp add --scope user --transport http precisiondocs https://mcp.precisiondocs.ai/mcp | Run /mcp inside Claude Code, choose precisiondocs, pick Authenticate |
| Codex CLI | Copy command: codex mcp add precisiondocs --url https://mcp.precisiondocs.ai/mcp | Run codex mcp login precisiondocs |
| Grok Bot (grok.com) | Open grok.com connectors, press New Connector, then Custom, and Copy URL into it | Sign in and approve on PrecisionDocs |
| Cursor | Add to Cursor for the one-click install, or Copy MCP config into ~/.cursor/mcp.json | Customize -> MCPs shows the server as needing a sign-in - click it |
| Gemini CLI (under Other) | Copy commands: gemini mcp add --scope user --transport http precisiondocs https://mcp.precisiondocs.ai/mcp | Run /mcp auth precisiondocs inside gemini |
| Other (any other MCP client) | Copy URL | Whatever that client uses to authorize a remote server |
In every case your browser opens the PrecisionDocs consent page. Approve once, then confirm the PrecisionDocs tools are listed before using them for project work.
Five things worth knowing:
- Keep
--scope userin the Claude Code and Gemini CLI commands. It registers PrecisionDocs for every project; without it each adds it to the current folder only, so/mcplists nothing elsewhere. - On Claude Team or Enterprise, an Owner or Primary Owner adds the connector from Organization settings -> Connectors before members can enable it.
- If ChatGPT's Plugins page offers no custom MCP server, turn on Developer mode under Settings -> Security and login; on a Business or Enterprise workspace its owner may need to allow it.
- The same connector serves claude.ai, Claude Desktop and Claude Code. There is no separate desktop config file.
- Gemini Gems cannot use third-party actions the way ChatGPT can. Use Gemini CLI instead.
ChatGPT Custom GPT Actions is the one path that still needs an API key - see the next article.
How do I set up ChatGPT Custom GPT Actions?
ChatGPT Custom GPT Actions is the one setup that still uses an API key, because a GPT Action cannot open a browser to sign in. It lives under Advanced: API key on Account -> Integrations.
- Create a key on Account -> API keys and copy it while it is visible.
- In ChatGPT, create or edit a Custom GPT. You can paste Copy GPT setup prompt into the ChatGPT Create tab first and let the builder scaffold the GPT.
- Go to Configure -> Actions -> Create new action, click Import from URL, and paste
https://api.precisiondocs.ai/v1/openapi.json(use Copy OpenAPI URL). Do not paste it into the large Schema editor. - Set Authentication -> API Key -> Bearer and paste the key in that authentication field only.
- Paste
https://precisiondocs.ai/privacyinto the GPT Privacy policy field. - Use Copy GPT instructions and paste the text into the GPT Instructions field. Do not paste the key into Instructions or into chat.
OpenAI documents GPT Actions, OpenAPI schemas, and API key bearer authentication in Configuring actions in GPTs.
How should I handle PrecisionDocs API keys and connected apps safely?
MCP clients - the Claude app, ChatGPT as a plugin, Claude Code, Codex, Gemini CLI, Cursor - never use a key. They sign in with your account and hold a token scoped to you. Account -> Integrations -> Connected apps lists them, and Disconnect revokes one immediately.
A key exists only for the REST API and ChatGPT Actions. Any active member of the workspace can create a key and revoke their own; owners see and can revoke every key in the workspace. A key is shown once when created or rotated; PrecisionDocs stores only a hash, so an existing key cannot be copied later.
Rules
- Send a key only as the
Authorization: Bearerheader. Never put one in a URL, an MCP config, a chat message, Slack, email, a support ticket, a screenshot, a shared doc, or GPT Instructions. - In ChatGPT, paste the key only in Configure -> Actions -> Authentication.
- Use Rotate if you lost the key or need a fresh copy, and Revoke immediately if a key is exposed.
- The visible prefix, such as
pd_live_abc..., is an identifier only. It is not enough to authenticate.
Limiting what one key can spend
A key can carry a daily and monthly credit cap, so a single integration cannot consume the whole wallet. The cap is enforced whenever the key is used: a key that hits it returns a cap-exceeded error while the rest of the workspace keeps working. There is no self-serve way to set a cap today - neither Account -> API keys nor the public API accepts one - so contact info@precisiondocs.ai to have a cap placed on a key.
A connected app carries the daily and monthly credit caps you chose on the consent page, if any. A connection that hits one returns a cap-exceeded error until the next UTC day or calendar month; to raise it, disconnect and connect again with a higher cap. A key's or connection's cap is checked before every call that spends credits, and counts what that key or connection charged to the wallet.
What the API enforces regardless
- Cross-organization project IDs return
404, not another tenant's data. - Every project path checks project access for the key's organization.
- API activity is charged to the same workspace credit wallet as in-app work, and is labelled API or MCP in usage views.
Can I do everything through the API that I can in the app?
Yes, for the work that matters: all three surfaces - the browser wizard, Email my agent, and the API or an MCP connector - run the same project-prep checks before a project is created, and build the same project knowledge base after it.
What differs is the experience, not the rules:
- Wizard is still the best surface for parcel selection, map review, file upload, and visual confirmation.
- Email is asynchronous. It can create a project, and it asks follow-up questions in-thread when it needs a parcel choice, an ordinance decision, a GIS confirmation, or a duplicate-parcel approval.
- API and connectors are programmable. Project creation returns the same confirmation prompts as the wizard, so a connected agent can put the decision to you instead of skipping it.
A connector that skips a confirmation is not taking a shortcut the wizard offers - the API returns the same prompt and expects the same answer.
What is the normal API workflow?
The API is built around a project knowledge base plus managed agent turns:
create project -> poll readiness -> ask the agent -> download artifacts- Create or preview a site. Project creation runs the same parcel resolution, ordinance discovery and source confirmations as the wizard, and can return a preview and a credit estimate before it commits.
- Poll readiness. Building the knowledge base takes minutes on a new site. Poll the project until it reports that chat is ready rather than asking early.
- Ask the agent. Answers come back grounded, with citations, the tools used, and any artifacts the turn produced. A long turn can run in the background and be collected by its job handle instead of holding the request open.
- Download artifacts. Reports, maps, exhibits and exports come back as artifacts with one-time PrecisionDocs download links you can refresh.
For a brand-new site, the first useful question waits on the knowledge base. Later questions reuse it and are much faster.
Every endpoint, MCP tool, request field, error code and rate limit is documented in the developer documentation, and the machine-readable schema is at https://api.precisiondocs.ai/v1/openapi.json.
How do I connect a client that is not on the list?
The Integrations page covers the first-class clients. Use these details when you are wiring up something else.
- Remote MCP endpoint:
https://mcp.precisiondocs.ai/mcp, Streamable HTTP with OAuth 2.1 - dynamic client registration, PKCE S256, refresh-token rotation. Discovery lives at/.well-known/oauth-protected-resource/mcpand/.well-known/oauth-authorization-server. - A client that only runs local servers bridges with
npx -y mcp-remote https://mcp.precisiondocs.ai/mcp. The bridge runs the same browser sign-in. - OpenAPI schema:
https://api.precisiondocs.ai/v1/openapi.json. - REST authentication:
Authorization: Bearerwith a key from Account -> API keys. The MCP endpoint rejects a key - it authenticates with OAuth only.
Use MCP when the client prefers tool calls. Use OpenAPI when the client has native action, connector, or function import.
The tool roster, every REST route, and the error and rate-limit reference are in the developer documentation.