SEO report API
Connect an AI agent (MCP)

Connect SEOReport to Windsurf (Devin Desktop): MCP setup

Windsurf is now Devin Desktop. Add SEOReport's remote MCP server to its mcp_config.json, keep the API key out of git, and run a first SEO audit.

SEOReport runs a remote MCP server, so the agent in Windsurf can start a technical SEO audit, read the findings in fix order and download the report without glue code. [1][3]

Windsurf is now called Devin Desktop; Devin's docs note that Windows installations from before the rename may still sit in a Windsurf folder. Its primary local agent is Devin Local, which reads MCP servers from the Devin CLI config files. The older Cascade agent has its own MCP page. [5][6][8]

What you need

You need an active SEOReport plan and an API key. Create the key at https://seoreport.dev/dashboard/api-keys. API keys require an active plan. [3][4][1]

SEOReport shows the key once. Store it in a secret store or an environment variable, not in a prompt, a project file or your shell history. [4]

The server speaks streamable HTTP at https://seoreport.dev/mcp. It expects the key on every request as an Authorization: Bearer <api-key> header, the same key you use for the REST API. [3][4][1]

Add the server

For Devin Local, add the server to ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows) for all projects, or to .devin/mcp_config.local.json for one project. [7]

A remote server needs a url. transport defaults to Streamable HTTP for URL-based servers, and headers holds custom HTTP headers. [7]

~/.config/devin/mcp_config.json or .devin/mcp_config.local.jsonJSON
{
  "mcpServers": {
    "seoreport": {
      "url": "https://seoreport.dev/mcp",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer sr__live_your_api_key"
      }
    }
  }
}
Legacy Cascade agent: mcp_config.jsonJSON
{
  "mcpServers": {
    "seoreport": {
      "serverUrl": "https://seoreport.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:SEOREPORT_API_KEY}"
      }
    }
  }
}

Versions before v3000.3 keep MCP servers under mcpServers in the main config files, such as ~/.config/devin/config.json. Newer versions move those entries into the dedicated mcp_config files on startup. [7]

If you still use Cascade, its config takes serverUrl or url plus headers, and supports ${env:VAR_NAME} in headers. Devin's CLI page documents ${env:VAR} only for OAuth fields, so the Devin Local example uses the key itself in a file kept out of git. [8][7]

Confirm it works

Devin Local lists everything a session has loaded, including MCP servers. By default it asks for approval before it calls any MCP tool; you can allow one tool or every tool on the server, for the session or permanently. [6]

With Devin CLI, devin mcp list lists the configured servers. Devin's docs also suggest asking the agent to list MCP servers and tools, and note the server may need a moment to initialize. [7]

You should see 9 tools whose names start with seoreport_: seoreport_create_report, seoreport_get_report_status, seoreport_get_report, seoreport_list_reports, seoreport_get_report_download, seoreport_get_account, seoreport_list_plans, seoreport_start_checkout and seoreport_submit_feedback. [3]

Then try a first prompt: "Audit https://example.com and list the three highest-severity findings." The agent can start the audit with seoreport_create_report and read the findings with seoreport_get_report. A report takes up to about 30 seconds. [4][3]

A new site uses one credit from your plan. Running a site you already have a report for again does not use a credit. [1][2]

Keep the key out of version control

Devin's docs say never to commit API keys or secrets to version control, and to use .devin/mcp_config.local.json for sensitive values. That file is gitignored; .devin/mcp_config.json is shared through version control. [7]

The user file ~/.config/devin/mcp_config.json sits in your home folder, outside your repositories. [7]

Troubleshooting

Authentication error or HTTP 401: SEOReport lists and calls tools only for a valid key. Check that the header value is Bearer, one space, then the key. If the key may be wrong or exposed, revoke it and create a new one in the dashboard. [3][4]

Plan or credit error: if seoreport_create_report says an active plan is required or the month's credits are used, the key works but the account cannot start a report. Ask the agent to call seoreport_get_account to see the plan and the credits left. [4]

To subscribe from the agent, it can call seoreport_list_plans and then seoreport_start_checkout. Checkout returns a browser link: an agent can start it, and only a person can pay. Credits reset on the first day of each month (UTC). [4][1]

Tools not listed: open the Devin Local customizations surface and check that the session loaded the server. Devin's Cascade MCP page adds that once a team admin allowlists any MCP server, all servers not on the list are blocked, and the Server ID must match the key name in your config (here, seoreport). [6][8]

In the legacy Cascade agent, the MCPs section of the Cascade panel's Actions menu lists your servers. Cascade can use at most 100 tools at a time. [8]

Every endpoint, the MCP server and the plans are on the SEO report API page. API and MCP access come with every paid plan.

Sources

  1. SEOReport: API and MCP for developers, verified on 2026-10-18
  2. SEOReport: MCP server for AI agents, verified on 2026-10-18
  3. SEOReport: MCP server card (JSON), verified on 2026-10-18
  4. SEOReport: AI agent integration guide (agents.md), verified on 2026-10-18
  5. Devin: Welcome to Devin Desktop, verified on 2026-10-18
  6. Devin: Devin Local, verified on 2026-10-18
  7. Devin: MCP configuration (Devin CLI), verified on 2026-10-18
  8. Devin: Cascade MCP integration, verified on 2026-10-18

Get the complete diagnosis of your site

An evidence-backed report and a prioritized action plan, on a plan with monthly credits.