Connect your AI agent to your developer data.

The Built for Devs MCP integration gives any AI agent direct access to your developer funnel, friction signals, TTV trends, session data, and evaluation reports—all scoped to your account, no manual exports required.

What it enables

Ask your AI agent about your developers

Once connected, your AI agent can answer questions about your developer experience directly from your real data.

“Where are developers dropping off in my onboarding funnel?”

“Which pages are developers rage-clicking? What does that tell us?”

“Has our TTV improved over the last 6 months?”

“What JavaScript errors are developers hitting most often?”

“Walk me through everything developer sarah@acme.com has done in our product.”

“What did the last evaluation report say about our auth setup?”

“What are developers copying most from our docs? Show me the pages and previews.”

Step 1

Get your MCP API key

Go to Settings → Tracking Script and find the MCP Integration card. Your MCP API key is listed there alongside your endpoint URL.

Your MCP key is separate from your tracking script API key. It authenticates AI agent connections to your account and can be rotated independently if needed.

Endpoint

https://builtfor.dev/mcp

Auth header

X-BFD-MCP-Key: <your-key>
Get your MCP key →

Step 2

Connect your AI client

The MCP integration uses the Streamable HTTP transport, which is supported by Claude Code, Claude Desktop, Cursor, and any other client that supports MCP over HTTP.

Claude Code

Add the following to your .mcp.json file in your project root, or to ~/.claude/mcp.json for global access:

{
  "mcpServers": {
    "builtfordevs": {
      "type": "http",
      "url": "https://builtfor.dev/mcp",
      "headers": {
        "X-BFD-MCP-Key": "<your-mcp-key>"
      }
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "builtfordevs": {
      "type": "http",
      "url": "https://builtfor.dev/mcp",
      "headers": {
        "X-BFD-MCP-Key": "<your-mcp-key>"
      }
    }
  }
}

Cursor

Go to Cursor Settings → MCP → Add new global MCP server and paste:

{
  "builtfordevs": {
    "type": "http",
    "url": "https://builtfor.dev/mcp",
    "headers": {
      "X-BFD-MCP-Key": "<your-mcp-key>"
    }
  }
}

After saving, restart your AI client. The Built for Devs tools will appear automatically—your agent can start using them immediately without any additional setup.

Tools

What your agent can access

Developer Journey Funnel

read-only

get-developer-funnel

Returns your complete developer journey funnel from the most recent monthly snapshot. Includes session counts, drop-off rates, and average time spent at each of the seven stages: Discovery, First Impression, Onboarding Setup, First Value, Adoption, Expansion, and Advocacy. Also returns a list of all identified developers who have been observed in your product, with their current journey stage and last seen timestamp. Use this as the starting point to understand the overall health of your developer onboarding—where developers are getting stuck, how long the critical path to first value actually takes, and which stage has the worst drop-off.

Friction Signals

read-only

get-friction-signals

Returns aggregated behavioral friction signals from the last 30 days, grouped by type and page. Built for Devs tracks four categories of developer frustration that most analytics tools miss entirely: rage clicks (rapid repeated clicks in the same spot, indicating broken or confusing UI), copy events (what developers are copying and from which pages—with a 40-character preview; when a key or token is detected the preview is suppressed and replaced with a key_type label like "API key" or "Bearer token" so you know what they found without seeing the value), JavaScript errors (uncaught exceptions and unhandled promise rejections with filename and line number), and scroll depth patterns (how far developers scroll on key pages before leaving). Use this to surface exactly where your developer experience is breaking down, which pages are causing the most frustration, and what content developers are extracting for later use.

TTV Trend

read-only

get-ttv-trend

Returns Time to Value (TTV) trend data for your product, broken down by month, showing whether developer onboarding is getting faster or slower over time. TTV measures the median time in seconds from a developer's first session to the moment they reach your defined "first value" event—the moment they've successfully built something meaningful with your product. Pass months (1–12) to control the lookback window; default is 6 months. Each data point includes the month, the median TTV in seconds, the number of developers who reached first value that month, and a comparison delta versus the prior period. Use this to measure the long-term impact of developer experience improvements—if you rewrote your getting started guide, this is where you'd see whether it worked.

Developer Session

read-only

get-developer-session

Returns a complete behavioral profile for a specific developer or a single session. Pass a developer_id (the identifier you set via BFD.identify()) to retrieve every session that developer has had across your product—their full journey, every page visited, time spent per page, and any friction events encountered. Pass a session_id to drill into a single session. Each session includes an AI-generated narrative summary of what the developer was doing and where they got stuck, a chronological list of pages visited with timestamps, a breakdown of event types that occurred, and details on any rage clicks or JavaScript errors. Use this when a specific developer reports a problem, when you want to understand why someone churned, or to build an accurate mental model of what onboarding actually feels like in practice.

Evaluation Report

read-only

get-evaluation-report

Returns the published findings report from a completed evaluation project. Built for Devs evaluation projects are live sessions where real developers attempt to build something with your product while their screen is recorded. After transcription and AI analysis, a structured findings report is generated. This tool exposes that report: the executive summary, a scored rubric across key developer experience dimensions, critical blocking issues, quick wins that would have the highest impact, specific things developers praised, and the full narrative report. Pass a project_id from your Evaluations page. Recording files and raw transcripts are never exposed. Use this to bring your evaluation findings directly into your planning workflow—have your AI agent summarize findings into Linear issues, prioritize them against your roadmap, or write a post-mortem.

Query Events

read-only

query-events

Raw, paginated access to your tracking events with full filtering. Supports filtering by date range (max 90 days), event type (pageview, click, scroll_depth, copy, rage_click, js_error, form_focus, form_submit, return_visit, external_link, time_on_page), page URL (partial match), session ID, or developer ID. Returns up to 200 results per page. Bots and internal traffic are always excluded. Each event includes the URL it occurred on, its type, a timestamp, the session ID, the developer's identifier (if identified), and a metadata field whose contents vary by event type—see the event reference on this page. Use this when you have a specific question the higher-level tools don't answer: "show me every form_submit event on the quickstart page in the last two weeks," "what pages did this session visit before they hit a JS error," or "how many developers clicked this specific button."

Developer CRM

Identify developers across sessions

By default, Built for Devs tracks developers anonymously by session. To unlock per-developer views in the MCP—and in your dashboard—call BFD.identify() when a developer authenticates in your product.

Example

// Call this after the developer logs in
BFD.identify('sarah@acme.com');

// Or use any stable identifier—user ID, UUID, hash
BFD.identify('usr_8f3k2m9x');

The identifier is your choice—an email address, a user ID, a hashed value, whatever fits your privacy model. Built for Devs doesn't prescribe the format and doesn't cross-reference it with any external data.

Once a developer is identified, you can ask your AI agent to pull their full history across every session:

“Show me everything developer sarah@acme.com has done in our product, and flag any errors or friction points she hit.”

Their complete session history—every page visited, every error encountered, every rage click—is available through get-developer-session and query-events filtered by their identifier.

Event reference

What each event contains

The metadata field returned by query-events varies by event type. Every event also includes the URL it occurred on, the session ID, the developer ID (if identified), and a timestamp.

pageview Fired on every page load. Referrer URL is in the referrer field on the event.
click Fired on interactive elements (buttons, links, inputs).
tag HTML element tag (button, a, input, etc.)
text Visible text of the element, up to 50 characters.
href Link destination, if applicable.
external_link Fired when a developer clicks a link leaving your domain.
tag HTML element tag.
text Link text, up to 50 characters.
href Full destination URL.
destination_hostname The external domain being navigated to.
rage_click Fired when 3+ clicks occur within 700ms in a 40px radius—a strong frustration signal.
tag Element tag at the click location, if interactive.
text Element text, up to 50 characters.
x / y Pixel coordinates of the click cluster.
click_count Number of rapid clicks detected.
is_interactive Whether the clicks landed on an interactive element.
copy Fired when a developer copies text on the page.
preview First 40 characters of the copied text. Null when key_type is set.
length Total character count of the copied selection.
key_type Credential type detected—e.g. "API key", "Secret key", "Bearer token", "JWT". Null when nothing was detected.

Key detection runs client-side before transmission. When a key is detected, preview is suppressed at the source and key_type tells you what category of credential the developer copied—useful signal for understanding where they are in your onboarding (e.g. a developer copying an API key from your quickstart page is a strong first-value indicator).

scroll_depth Fired at 25%, 50%, 75%, 90%, and 100% scroll milestones.
percent Scroll milestone reached (25, 50, 75, 90, or 100).
js_error Fired on uncaught JavaScript errors and unhandled promise rejections.
message Error message, up to 200 characters.
filename Source file where the error occurred, up to 200 characters.
lineno / colno Line and column number of the error.

event_name is set to unhandled_rejection for promise rejections.

form_focus Fired when a developer focuses a form (intent to fill it out).
form_id The form's id attribute, if set.
form_name The form's name attribute, if set.
form_submit Fired when a form is submitted.
form_id The form's id attribute, if set.
form_name The form's name attribute, if set.
action The form's action path (path only, no domain or query params).
time_on_page Fired when the developer leaves the page. Duration in seconds is in the time_on_page field on the event.
return_visit Fired alongside a pageview when the developer has visited this page before in a prior session.

Security

Your data stays yours

Every MCP request is authenticated against your account. An AI agent using your MCP key can only ever see data scoped to your product—no other account's data is accessible, regardless of what's requested.

All 6 tools are read-only—no agent can write, delete, or modify any data through the MCP integration
Session recording files and transcripts are never exposed through any MCP tool
When a developer copies something that looks like an API key or token, the value is suppressed before it ever leaves their browser—you receive a key_type label ("API key", "Secret key", "Bearer token") so you understand what the developer found without seeing the value. This is always on and cannot be disabled.
Your MCP key can be found in Settings and treated like any API key—keep it out of version control and rotate it if compromised

Ready to connect?

Get your MCP key from Settings, add it to your AI client, and start asking questions about your developer experience.

Get your MCP key →