Skip to main content
cubic’s MCP server lets your coding agent read review findings, look up codebase documentation, request PR reviews, triage PR or codebase scan issues, and manage billing and team access. You can use these tools directly from your agent. Skills add workflows for tasks such as fixing review comments. To review changes in your local checkout, use the cubic CLI.
Sign in with your cubic account. Repository tools require access to the repository’s installation. Billing and team tools check your access to the requested organization. Connecting MCP does not grant access to additional organizations or repositories.

Endpoint

Use this exact URL:
Some MCP clients compare the protected resource URL exactly. Use https://www.cubic.dev/api/mcp, not https://cubic.dev/api/mcp.

Authentication

Use OAuth for new MCP connections. Your MCP client opens a browser, you approve cubic access, and the client stores and refreshes tokens. Existing cubic API keys are still accepted. For new connections, use OAuth without adding an Authorization header or API key to your configuration.

Install and log in

Cursor and VS Code support one-click MCP install links. For other clients, use the CLI or manual config steps below.
  1. Click Add cubic to Cursor.
  2. Confirm the install in Cursor.
  3. Click Connect and complete OAuth.
Manual fallback:Add cubic to ~/.cursor/mcp.json for all projects, or .cursor/mcp.json for one project. If the file already has servers, add the cubic entry inside its mcpServers object:
Open Cursor’s MCP settings, connect cubic, and complete the browser sign-in flow.

Try your first prompt

After connecting, ask your agent:
Replace the URL with a PR you can access. The agent should call get_pr_issues and show the open findings with their file locations, severity, and descriptions. An empty result means there are no open cubic findings on that PR; it does not trigger a new review. For workflows that also investigate and fix the findings, install cubic’s skills.

Available tools

Use issue IDs from get_pr_issues with update_pr_issue_status. For codebase scans, use IDs from get_scan with get_issue or update_issue_status. The two update tools change issue state. update_pr_issue_status also changes the GitHub review thread and posts its reply asynchronously. trigger_pr_review starts a cloud review.

Billing and team management

Start with list_organizations and use the returned GitHub organization login in the organization argument. Use get_subscription to check purchased capacity and pending changes, and list_members to find a member’s ID and current role and seat state. Member lists support search; organization and member lists support pagination using the returned nextCursor.

Permissions and supported subscriptions

Your MCP client uses your cubic permissions. Reading billing and member information requires organization access. Changing subscriptions, seats, or roles requires an organization admin; cubic checks current permissions on every mutation. Admins retain billing access when their own review seat is disabled. MCP mutations require an active paid Stripe subscription. Free customers receive a link to upgrade in cubic. Vercel customers must make changes through the cubic UI or Vercel Marketplace. Reads remain available subject to organization access.

Assign seats and change roles

update_member_seat uses existing purchased capacity and never buys seats. Supply memberId from list_members, plus either or both of these pairs:
  • enabled and expectedEnabled: the desired seat state and the current seatEnabled value.
  • role and expectedRole: the desired and current role, each one of admin, member, or viewer.
Combined seat and role changes either both apply or neither applies. If the member’s state has changed, refresh list_members before submitting another change. Repeating a change that already matches the desired state returns a no-op. Admins cannot remove their own admin role or disable the last active human admin. Bots cannot be admins. If no purchased seats are available, increase capacity with update_subscription before enabling another billable member.

Buy seats or upgrade the plan

update_subscription accepts seats, plan: "pro", or both, plus an idempotencyKey for the purchase. seats is the desired total, not the number to add: to go from 5 seats to 8, pass seats: 8. The billing interval stays the same. Pro upgrades must meet the organization’s minimum seat requirement; an error tells you the required count. A subscription can cover multiple organizations through a shared billing account. Purchases apply to that subscription; the result reports the number of affected organizations. Use the cubic UI for seat reductions, downgrades, billing-interval changes, or subscriptions with an existing scheduled, pending, or cancellation change.

Payments and retries

Check the returned status before treating a purchase as complete: For a retry, reuse the same idempotencyKey with identical arguments. After a timeout, check get_subscription before proceeding; do not generate a fresh key merely because the response was lost. Retry deduplication follows Stripe’s key-retention limits. Reusing a retained key with different purchase parameters can be rejected.

Common prompts

  • “Show open cubic review issues on PR #42 in acme/backend”
  • “Start a cubic review of PR #42 in acme/backend”
  • “List wiki pages for acme/backend”
  • “Show me the authentication system wiki page”
  • “List codebase scan issues in acme/backend with severity at least 7”
  • “Mark scan issue abc as false positive with feedback”
  • “What review learnings apply to this repository?”
  • “How many purchased and available seats does acme have?”
  • “Enable Alice’s review seat in acme using our available capacity”
  • “Make Alice an admin in acme”
  • “Increase acme’s total purchased seats from 5 to 8”
  • “Upgrade acme from Team to Pro with 8 seats”

Troubleshooting

Confirm your configured URL is exactly https://www.cubic.dev/api/mcp. Replacing www.cubic.dev with cubic.dev can cause OAuth clients to reject the connection.
Run your client’s login command again and complete the browser flow. If you still use a legacy API-key config, migrate it to OAuth.
Restart your AI client after updating configuration. For Cursor Agent, make sure the server is in ~/.cursor/mcp.json or project .cursor/mcp.json, not only Cursor’s settings.json.
Confirm the repository has an AI Wiki generated, verify you have access to the repository’s installation, and check that owner and repo match GitHub exactly.
MCP provides cloud findings and context. Install and sign in to the cubic CLI to run a local review. If you want to start it from your agent, also install the skills.

Automatic flex capacity

get_subscription includes flex availability, spending settings, configured purchase size and price, and paid/pending usage. list_organizations reports canUpdateFlexCapacity; mutations still check current permissions and billing eligibility. Use update_flex_capacity with organization and at least one of enabled or spendingLimitCents. The cap is an absolute USD-cent amount per quota period, not an increment or a charge amount; it carries forward into future periods. Omitting a field preserves it. For example, spendingLimitCents: 10000 sets a $100 cap. Changing the cap alone does not enable flex. An organization admin can enable flex on an eligible active paid Stripe subscription. Free, trial, and Vercel customers must use the UI. Disable-only requests remain available after a Stripe billing lapse and preserve the saved cap. Any request that edits the cap requires an active paid subscription, including requests that also disable flex. This version does not change purchase size or support unlimited spending. Flex and automatic seat purchases can both be enabled. Changing one setting preserves the other. Saving settings does not initiate a charge, but ongoing or subsequent review processing can purchase capacity automatically. Obtain an explicit user instruction before enabling flex or increasing its cap. The result reports applied or no_change for settings, not a completed purchase. Disabling or lowering the cap does not cancel existing invoices, refund spending, or stop in-flight purchases. Pending invoices consume budget but grant no capacity until paid. Retry blocked reviews separately.