Connect Struvia to your AI
Let ChatGPT, Claude, Codex, Cursor, VS Code, or another MCP client work with your jobs, plans, estimates, bid packages, and project communications.
OAuth is the recommended connection
Hosted clients can discover Struvia's sign-in flow from the endpoint. No API key needs to be copied into the AI.
Add the endpoint
Create a custom MCP connector and paste the Struvia endpoint.
Sign in to Struvia
Your client opens Struvia login and shows the consent screen.
Approve and verify
After approval, list tools and run bidi.whoami to confirm the account.
Built-in safety
Access follows your existing Struvia account, company, jobs, and permissions.
Actions that spend money or contact someone return a preview and require a second confirmed call.
Credentials stay in OAuth or your client's secret storage—they should never appear in a prompt.
Choose your client
Connect in a few minutes
Start with OAuth. Use the API-key fallback only when a local client cannot complete OAuth.
ChatGPT
Custom connector via Developer mode (Plus, Pro, Business, Enterprise, Edu)
- In ChatGPT, open Settings, then Apps (Advanced settings), and enable "Developer mode". Available on Plus, Pro, Business, Enterprise, and Edu plans.
- On the Apps/Connectors page, click Create, name the connector Struvia, paste https://struvia.co/api/mcp/mcp as the MCP server URL, and choose OAuth.
- Sign in to Struvia when prompted and approve access.
- In a chat, open the "+" menu and select the Struvia connector. Write tools ask for a per-conversation confirmation—that is expected.
- On Business or Enterprise, an admin creates the connector, then publishes it to the workspace.
Struvia also implements ChatGPT's search/fetch connector contract, so it works with ChatGPT's connector-based knowledge features too.
Claude (claude.ai, Desktop, mobile)
Custom connector on Free (1 connector), Pro, Max, Team, and Enterprise
- In claude.ai (or Claude Desktop/mobile), open Settings, then Connectors.
- Click "Add custom connector" and paste https://struvia.co/api/mcp/mcp.
- Complete the OAuth sign-in to Struvia and approve access.
- Available on Free (1 connector), Pro, and Max. Team and Enterprise admins add it org-wide from Organization settings.
Codex
Codex CLI, desktop, and IDE share the same MCP configuration
codex mcp add struvia --url https://struvia.co/api/mcp/mcp
codex mcp login struviaClaude Code
Add the HTTP server, then authenticate from the MCP menu
claude mcp add --transport http struvia https://struvia.co/api/mcp/mcp
# Then run /mcp inside Claude Code and complete the OAuth sign-in.
# API-key fallback (no OAuth):
# claude mcp add --transport http struvia https://struvia.co/api/mcp/mcp --header "Authorization: Bearer bidi_..."Cursor
One-click install, or add the config manually and enable the server
{
"mcpServers": {
"struvia": {
"url": "https://struvia.co/api/mcp/mcp"
}
}
}VS Code
Install with one click, the CLI, or a .vscode/mcp.json file, then complete sign-in
code --add-mcp '{"name":"struvia","type":"http","url":"https://struvia.co/api/mcp/mcp"}'{
"servers": {
"struvia": {
"type": "http",
"url": "https://struvia.co/api/mcp/mcp"
}
}
}Give this to an agent
One installer prompt for any local AI
This prompt tells an agent to detect its host, configure Struvia safely, and prove the connection with read-only calls.
Connect this environment to the Struvia MCP server. Do it now, without editing application source code.
Server name: struvia
Endpoint: https://struvia.co/api/mcp/mcp
Transport: Streamable HTTP. OAuth is discoverable from the endpoint via RFC 9728 protected-resource metadata, so OAuth-capable clients can sign in with no key.
1. Detect which MCP client you are running inside, then register the server with its native mechanism:
- Claude Code: claude mcp add --transport http struvia https://struvia.co/api/mcp/mcp
then run /mcp and complete the OAuth sign-in.
- Codex CLI: codex mcp add struvia --url https://struvia.co/api/mcp/mcp
then: codex mcp login struvia
- Cursor: merge {"mcpServers":{"struvia":{"url":"https://struvia.co/api/mcp/mcp"}}} into .cursor/mcp.json (project) or ~/.cursor/mcp.json (global), then enable the server.
- VS Code: code --add-mcp '{"name":"struvia","type":"http","url":"https://struvia.co/api/mcp/mcp"}'
- Any other MCP client or CLI: register a Streamable HTTP server named "struvia" at the endpoint using that client's own configuration format.
2. Prefer OAuth. If this client cannot complete OAuth, fall back to a per-user API key:
- I can create one at https://struvia.co/dashboard/settings?section=integrations (keys look like bidi_<64 hex chars>).
- Send it as an "Authorization: Bearer <key>" header, sourced from the client's environment-variable or secret storage (suggested name: BIDI_USER_API_KEY).
- Never ask me to paste the API key into chat, print it, commit it, or write it into a project file.
3. Reload or restart the client if it caches MCP configuration.
4. Verify: list the server's tools, then call the read-only bidi.whoami tool and report which Struvia account is connected. Do not invoke write, send, approval, or estimate-running tools during setup.API-key fallback
If your local client cannot use OAuth, generate a key in Struvia Settings and expose it to the client asBIDI_USER_API_KEY. Never paste the key into an AI conversation or commit it to a repository.
{
"mcpServers": {
"struvia": {
"type": "http",
"url": "https://struvia.co/api/mcp/mcp",
"headers": {
"Authorization": "Bearer ${BIDI_USER_API_KEY}"
}
}
}
}What your AI can do
One connection, your project workflow
Jobs
Create projects, track status, and keep job details current.
Plans & documents
Upload plan sets, follow processing, and pull sheets and documents.
Estimates & takeoff
Run estimates, inspect takeoff quantities, and approve completed work.
Bid packages & subs
Build bid packages and find matching subcontractors.
Bids
Collect, compare, and award subcontractor bids.
Read project threads and, with confirmation, send Gmail or RFP messages.