Skip to main content
DevTune exposes a Model Context Protocol (MCP) server so that AI agents can query your AI search visibility data directly. This lets agents like Codex, Claude, Cursor, and other MCP-compatible tools access your metrics and data directly.

Server URL

The server uses Streamable HTTP transport at:
The MCP server supports two setup paths:
  • OAuth for interactive tools like Codex
  • API key for non-interactive agents, CI jobs, or clients without OAuth support

Setup

Codex

Codex users can install the DevTune plugin from the DevTune plugin marketplace:
After adding the marketplace:
  1. Restart Codex
  2. Open the plugin list
  3. Install the DevTune plugin
  4. Sign in when Codex opens the browser authorization flow
  5. Select the DevTune project the plugin should access
Once authorized, ask Codex to use DevTune for visibility summaries, citations, competitive positioning, actions, traffic, adoption metrics, or content gaps.

Other OAuth MCP Clients

Use this configuration when your MCP client supports OAuth:
When your client prompts for authorization, sign in to DevTune, select a project, and approve access.

API Key

Use API keys for non-interactive agents, CI jobs, or clients without OAuth support. Pass your key in the Authorization header:

Claude Desktop

Add to your Claude Desktop config file: macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor

Open Settings > MCP Servers > Add Server, or edit .cursor/mcp.json:

Claude Code

REST vs MCP

Use REST when you are building an app, job, warehouse sync, dashboard, or webhook consumer. Use MCP when an AI agent should inspect DevTune data and decide what to do next inside a workflow.

Available Tools

Each windowed tool accepts only its documented fixed rolling windows and returns JSON data. Existing visibility tools use 30 and 90 days; the ground-truth tools mirror the application’s 7, 28, and 90 day windows, with 365 also available for the Outcomes ledger. Tool access depends on the project and permissions from your connection:
  • OAuth connections use the project you selected during setup and your DevTune role
  • API key connections use the project and permissions assigned to the key
devtune_get_404_demand uses the existing traffic.read scope for API keys and OAuth connections. The other ground-truth tools require an API key with the corresponding pages.read, audit.read, outcomes.read, or referrals.read scope and are intentionally excluded from existing OAuth grants until OAuth supports explicit per-grant scope consent. Managed-agent read tools require agents.read, while devtune_run_agent requires agents.run. Existing API keys do not receive new scopes automatically. Write-capable tools, including devtune_generate_action_brief, require permission to manage actions for the selected project. devtune_get_content_gaps maps to GET /api/v2/projects/{projectId}/content-gaps/list. It exposes topic and prompt-cluster signals from the Actions system, including signalStrength, component metrics, and bounded evidence. Workflow state, briefs, interventions, and opportunityScore stay on the Actions tools.

Tool Inputs

For devtune_get_actions, the most useful filters are:
  • detailLevel: summary or context; summary is default
  • surface: recommendation or backlog
  • status: active, backlog, in_progress, blocked, done, canceled
  • aliases: open, completed, and dismissed map to backlog, done, and canceled
  • priority and channel for narrower work queues
Use detailLevel: "context" when the agent needs to understand why an action matters before deciding what to do. Context responses are capped to keep tools fast and predictable: up to 3 evidence blocks and 5 citation/source references per action, plus scores, metrics, brief readiness, and follow-up links. Guard-rail evidence includes googleEligibility only when the caller is entitled and the evidence has a fresh observation from a live exact-domain GSC source. It includes canonical, crawlable, indexed, and structuredData states (pass, fail, or unmeasured), together with observedAt and Google’s coverageState. For visibility, citation, content-gap, traffic-summary, adoption, and intelligence tools, windowDays accepts 30 or 90 and defaults to 30. Ground-truth tools accept the windows shown above and default to 28. Citation top-list tools and content gaps use cursor pagination and return nextCursor when another page is available. Citation top-list tools support simple prefix search on URL and domain. devtune_get_citation_stats returns aggregate totals only and does not accept pagination or search inputs. Unsupported arbitrary ranges and undocumented filters are rejected instead of being handled downstream.

Which Tool Should I Use?

Triggering a Managed-Agent Run

devtune_run_agent requires the explicit agents.run API-key scope and a caller-generated UUID in requestIdempotencyKey. Retrying with the same key reuses the existing run. The tool delegates to the same gated dispatch path as the application, including the ground-truth feature flag, model-catalog validation, autonomy rules, and credit reservation and settlement. It creates no external draft-write capability; completed draft artifacts are read with devtune_get_agent_run and approval remains in the application.

Generating Action Briefs

devtune_generate_action_brief is the MCP write operation for the Actions workspace. It takes the following inputs: When project content preferences are enabled, briefStyle must respect the project’s allowed and blocked formats. Requests for blocked formats are rejected instead of silently generating the blocked style. The tool is idempotent for a ready or already-running brief:
  • If the brief is ready, it returns status: "ready"
  • If generation is already running, it returns status: "generating"
  • If generation can start, it queues background work and returns status: "queued"
The response includes success, message, actionId, and, when queued, an eventId. Use devtune_get_action_brief afterward to poll for readiness and retrieve the generated markdown.

Example Prompts

Once connected, you can ask your AI agent questions like:
  • “What is my current share of voice across AI platforms?”
  • “Show me the competitive position trend for the last 30 days”
  • “Show my top citation pages and domains for the last 90 days”
  • “Summarize my aggregate citation stats for the last 30 days”
  • “List active recommendations for this project”
  • “Load the stored brief for action 6f1e2d3c-1a2b-4c5d-8e9f-0123456789ab and summarize the execution plan”
  • “Generate the action brief for action 6f1e2d3c-1a2b-4c5d-8e9f-0123456789ab”
  • “Show backlog items that are blocked or in progress”
  • “Which content-gap signals are strongest this month, and what evidence supports them?”
  • “Show page-level blind spots and guard rails for the last 28 days”
  • “Summarize open Audit findings and measured Outcomes for this project”
  • “List available agents and their recent runs”
  • “Run the Technical Auditor with idempotency key 6f1e2d3c-1a2b-4c5d-8e9f-0123456789ab”
  • “How much traffic am I getting from AI chatbots?”