StruviaSTRUVIA
Model Context Protocol

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.

https://struvia.co/api/mcp/mcp

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.

1

Add the endpoint

Create a custom MCP connector and paste the Struvia endpoint.

2

Sign in to Struvia

Your client opens Struvia login and shows the consent screen.

3

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)

  1. In ChatGPT, open Settings, then Apps (Advanced settings), and enable "Developer mode". Available on Plus, Pro, Business, Enterprise, and Edu plans.
  2. 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.
  3. Sign in to Struvia when prompted and approve access.
  4. In a chat, open the "+" menu and select the Struvia connector. Write tools ask for a per-conversation confirmation—that is expected.
  5. 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

  1. In claude.ai (or Claude Desktop/mobile), open Settings, then Connectors.
  2. Click "Add custom connector" and paste https://struvia.co/api/mcp/mcp.
  3. Complete the OAuth sign-in to Struvia and approve access.
  4. 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

Ready to use
codex mcp add struvia --url https://struvia.co/api/mcp/mcp
codex mcp login struvia

Claude Code

Add the HTTP server, then authenticate from the MCP menu

Ready to use
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

Add to Cursor
Ready to use
{
  "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

Ready to use
code --add-mcp '{"name":"struvia","type":"http","url":"https://struvia.co/api/mcp/mcp"}'
Ready to use
{
  "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.

Ready to use
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.

Open API-key settings
Ready to use
{
  "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.

Email

Read project threads and, with confirmation, send Gmail or RFP messages.

Async work returns pollable job handles
External sends require confirmation
Every tool checks project access