Works with your stack

Circuit connects where feedback lives and where code ships.

Get started free →

Where AI specs go

Cursor and Claude Code via MCP

Circuit is the feedback MCP for Cursor and Claude Code — the feedback to spec pipeline, delivered via the Model Context Protocol. Pull priorities, fetch specs, search feedback and take actions from inside your coding tool. Use circuit.act to mark as shipped, notify customers, submit feedback or submit a transcript. Ship from terminal.

See how specs are generated →

Setup

  • Cursor: Add Circuit MCP to your Cursor config
  • Claude Code: Run claude mcp add circuit
  • First run opens a browser for OAuth authentication
  • Token cached locally for 30 days
View circuit-mcp on npm →

4 MCP tools

circuit.prioritiesRanked priorities ready to build
circuit.specFull spec for any priority with all 5 sections
circuit.askSearch feedback and priorities for context
circuit.actShip from terminal: mark shipped, notify customers, submit feedback or transcripts, assign, correct, park

Example: asking for priorities in Cursor

> What should I build next? circuit.priorities → 3 results 1. Keyboard shortcuts — Score: 87 42 mentions · urgency: high · revenue: $18k MRR 2. CSV column mapping — Score: 71 28 mentions · urgency: medium · revenue: $12k MRR 3. Dark mode — Score: 64 35 mentions · urgency: low · revenue: $9k MRR

GitHub. Codebase comprehension for every spec

Connect your repo and Circuit reads the codebase to generate specs that reflect how your team builds — not just file paths, but what's inside them. Specs can only reference files that exist in your codebase. The system won't generate paths it hasn't seen. Circuit reads your .cursorrules and CLAUDE.md before generating, so the spec your coding tool receives already follows your team's rules. Create GitHub issues directly from any spec. The result is a codebase-aware product spec — not a generic template.

What Circuit reads

  • File signaturesexports, types and key functions from relevant source files
  • .cursorrules / CLAUDE.mdspecs follow your team's coding rules
  • Testing patternsa sample test file so specs match your testing style
  • Directory structurecompact file tree for accurate path suggestions
  • Open issuesavoids duplicating existing tracked work
  • Recent merged PRsinforms which files are suggested as relevant
  • Tech stackdetected framework, language and environment
  • CI/CD + config filesworkflow names and config files present
  • READMEproject overview when no AI config files exist

All read-only. Circuit never writes to your repository.

What specs include

Actual file paths marked as new or modify, coding conventions that follow your .cursorrules and CLAUDE.md rules, and a Heads Up section when similar open issues already exist in your repo.

As your team refines .cursorrules and CLAUDE.md over time, Circuit's specs improve automatically — both systems read from the same source of truth.

Where feedback comes from

Slack. Automatic feedback collection

Connect your workspace and Circuit monitors selected channels with no manual forwarding. OAuth connection with AI-suggested channel selection. Polled every 10 minutes. Messages parsed for customer metadata and revenue band.

Slack setup guide →

Google Sheets. Bulk import

Connect Google Drive, select a spreadsheet, review the auto-detected column mapping and import. Useful for historical feedback or tools that export to Sheets.

Google Drive setup →

CSV. Drag and drop

Upload any CSV. Circuit auto-detects delimiter, encoding and headers. Map columns, review and import.

Surfaces. Five ways to collect feedback on your site

One script tag, five surface types. No authentication needed for submitters. Each surface is a 1-line embed with a live preview editor and per-surface analytics.

Surface types

  • BubbleMost responses. Best for open-ended feedback.
  • EmbedSubtle. Works well in docs and help pages.
  • BannerHigh visibility. Good for announcements or surveys.
  • ThumbsThumbs up/down with optional written follow-up. Per-feature tracking with data-context.
  • TriggerZero footprint. Best in forms or settings.

Use data-context to tag feedback by page, flow or feature — filter it in Surface Analytics later. Call .identify() from your JS to pass customer email and revenue tier automatically.

Feedback Surface docs →

Transcripts. Customer calls into priorities

Upload call recordings or interview transcripts and Circuit extracts feedback segments automatically — up to 25 per call, with speaker attribution. Supports Otter.ai, Fireflies, Grain and Whisper exports. Import directly from Google Drive. A research interview feeds the same priority pool as widget feedback.

Manual entry

Paste feedback from anywhere. Email threads, support tickets, meeting notes. Processed through the same AI pipeline as every other source.

API. Submit feedback programmatically

Single and batch endpoints for submitting feedback from your own backend, support tools or data pipelines. Supports deduplication, customer metadata and revenue tier. See API docs →

Automation and events

Webhooks. Connect anything else

Send events to any HTTP endpoint, Slack channel, Linear, GitHub or PagerDuty.

Available events

  • Spec generated
  • Build status changed (ready → building → shipped)
  • New priority created
  • Priority volume spike (>20% increase)
  • New feedback received

Test any hook before going live with full execution history, timestamps and status codes. All integrations included on every plan.

See pricing →

FAQ

Add the Circuit Slack integration. Circuit polls your selected channels every 10 minutes, classifies each message by intent, urgency and sentiment, and feeds it into the priority pipeline. No manual sorting.
Install circuit-mcp from npm. Four tools: circuit.priorities (ranked list), circuit.spec (full spec with file paths), circuit.act (ship, assign, correct) and circuit.ask (search feedback). Specs arrive where code gets written.
Six sources: Circuit Surfaces (embed on any site), Slack, Google Sheets, CSV upload, transcript upload (Otter, Fireflies, Grain, Whisper) and manual entry. All feed the same pipeline.
No. Circuit reads from Slack, spreadsheets and support threads — wherever feedback already lives. It adds the layer that was missing: scored priorities and codebase-grounded specs.

Connect your stack.

Get started