Two ways to connect

  • Sign in (recommended). Add Searchlark's server URL to the app, sign in to Searchlark, and choose a workspace and an access level. No key or file. Works with Claude on the web, desktop and mobile, ChatGPT, Claude Code, Cursor and VS Code.
    https://searchlark.com/mcp
  • Run it on your computer with an API key. Download searchlark-mcp.mjs (needs Node.js 20 or later), create a key in Workspace settings, API and MCP, and point your app at the file. Use this for scripts, your own agents, and apps without remote servers. Download searchlark-mcp.mjs.

Who can connect, and what they can change

  • During the free trial, connections are read-only: the app can look at sites, articles, keywords, AI visibility and site health, but not change anything.
  • On Growth and Agency, owners, admins and editors can also allow changes: planning, writing, approving and publishing articles, and re-checking fixes. Viewers connect read-only.
  • A signed-in connection acts as you, in one workspace. An API key acts for the whole workspace; only owners and admins create keys.
  • Each connection or key may make 120 requests a minute.

Set up your app

Claude (web, desktop, mobile)

Sign in

  1. In Claude, open Settings, then Connectors, and choose Add custom connector.
  2. Name it Searchlark and paste the server URL: https://searchlark.com/mcp
  3. Choose Connect. Sign in to Searchlark, pick the workspace and the access level, and choose Allow.
  4. In a chat, turn the Searchlark connector on from the tools menu. It then works on the web, in the desktop app and on mobile.

With an API key

  1. Claude Desktop only. Download searchlark-mcp.mjs and create an API key (below).
  2. Add this to claude_desktop_config.json (Settings, Developer, Edit Config), then restart Claude.
claude_desktop_config.json
{
  "mcpServers": {
    "searchlark": {
      "command": "node",
      "args": [
        "/path/to/searchlark-mcp.mjs"
      ],
      "env": {
        "SEARCHLARK_API_KEY": "sl_live_…",
        "SEARCHLARK_API_BASE": "https://searchlark.com"
      }
    }
  }
}

Custom connectors are a Claude feature in beta; Anthropic decides which plans include them and how many.

Claude Code

Sign in

  1. Run this once in your terminal.
  2. Then type /mcp in Claude Code, choose searchlark and sign in to Searchlark in the browser that opens.
bash
claude mcp add --transport http searchlark https://searchlark.com/mcp

With an API key

  1. Download searchlark-mcp.mjs, create an API key (below), and run this once.
bash
claude mcp add --transport stdio --env SEARCHLARK_API_KEY=sl_live_… \
  --env SEARCHLARK_API_BASE=https://searchlark.com searchlark -- node /path/to/searchlark-mcp.mjs

ChatGPT

Sign in

  1. In ChatGPT, turn on developer mode: Settings, Apps, Advanced settings.
  2. Create an app (connector) with the MCP server URL https://searchlark.com/mcp and OAuth authentication.
  3. Sign in to Searchlark, pick the workspace and the access level, and choose Allow.
  4. In a chat, add the Searchlark app from the tools menu. ChatGPT asks you to confirm each action that changes something.

Developer mode and custom apps are an OpenAI feature; OpenAI decides which ChatGPT plans include them and whether they can make changes.

Cursor

Sign in

  1. Add this to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for every project).
  2. Open Cursor Settings, MCP, and choose Connect next to searchlark to sign in.
.cursor/mcp.json
{
  "mcpServers": {
    "searchlark": {
      "url": "https://searchlark.com/mcp"
    }
  }
}

With an API key

  1. Download searchlark-mcp.mjs, create an API key (below), and add this instead.
.cursor/mcp.json
{
  "mcpServers": {
    "searchlark": {
      "command": "node",
      "args": [
        "/path/to/searchlark-mcp.mjs"
      ],
      "env": {
        "SEARCHLARK_API_KEY": "sl_live_…",
        "SEARCHLARK_API_BASE": "https://searchlark.com"
      }
    }
  }
}

VS Code (GitHub Copilot)

Sign in

  1. Add this to .vscode/mcp.json in your workspace.
  2. Choose Start above the server in the file, then sign in to Searchlark when VS Code asks.
.vscode/mcp.json
{
  "servers": {
    "searchlark": {
      "type": "http",
      "url": "https://searchlark.com/mcp"
    }
  }
}

With an API key

  1. Download searchlark-mcp.mjs and create an API key (below). VS Code asks for the key once and stores it securely.
.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "searchlark-key",
      "description": "Searchlark API key",
      "password": true
    }
  ],
  "servers": {
    "searchlark": {
      "type": "stdio",
      "command": "node",
      "args": [
        "/path/to/searchlark-mcp.mjs"
      ],
      "env": {
        "SEARCHLARK_API_KEY": "${input:searchlark-key}",
        "SEARCHLARK_API_BASE": "https://searchlark.com"
      }
    }
  }
}

Your own agent (OpenAI Agents SDK, scripts)

With an API key

  1. Run searchlark-mcp.mjs as a stdio MCP server with an API key, or call the REST API directly (the OpenAPI spec at https://searchlark.com/api/v1/openapi.json describes every operation as a tool).
python
import os
from agents import Agent, Runner
from agents.mcp import MCPServerStdio

async with MCPServerStdio(params={
    "command": "node",
    "args": ["/path/to/searchlark-mcp.mjs"],
    "env": {"SEARCHLARK_API_KEY": os.environ["SEARCHLARK_API_KEY"],
            "SEARCHLARK_API_BASE": "https://searchlark.com"},
}) as searchlark:
    agent = Agent(name="SEO assistant", mcp_servers=[searchlark])
    result = await Runner.run(agent, "Which site health problems should I fix first?")
    print(result.final_output)

Other MCP clients

Sign in

  1. Clients that support remote MCP servers with OAuth: add https://searchlark.com/mcp and sign in when asked.

With an API key

  1. Clients that run local servers: run node /path/to/searchlark-mcp.mjs with SEARCHLARK_API_KEY (and SEARCHLARK_API_BASE) set.

What the app can do

Every tool maps to one REST API operation, so the same permissions apply. Tools marked “changes” are hidden from read-only connections.

ToolWhat it doesAccess
list_sitesSites in the workspaceread
list_keywordsKeyword opportunitiesread
list_articlesArticles, by status, 200 per pageread
create_articlePlan an articlechanges
generate_articleWrite the draftchanges
get_jobJob statusread
get_articleArticle and draftread
approve_articleApprove a draftchanges
publish_articlePublish nowchanges
get_analyticsSearch Console summaryread
get_ai_visibilityAI mention ratesread
get_health_planSite health fix planread
get_health_problemOne problem, with an agent promptread
recheck_health_problemRe-check a problem's pageschanges

Prompts

  • fix_health_problem: Fix one site health problem in your codebase, then re-check it. In Claude Code, type / and pick it from the list.
  • fix_health_plan: Work through the site's health fix plan, most important first. In Claude Code, type / and pick it from the list.

Things to ask

  • “Which site health problems should I fix first, and why?”
  • “Plan an article on a topic from my keyword list, write it, show me the draft, and publish it if the fact check is clean.”
  • “Which of my articles lost the most clicks this month?”
  • “How often do AI assistants mention us compared with last month?”

Stay in control

  • Choose read access unless the app needs to make changes. Articles still wait for your approval unless you switched on autopilot.
  • Tool results can include text from your website and other sites. Treat what the app suggests as a draft, and check changes before you approve them.
  • Disconnect an app or revoke a key at any time in Workspace settings, API and MCP. It stops working at once. Signed-in connections renew their access every hour and end after 30 days without use.
  • The AI app you connect is your choice, and its maker's terms and privacy policy apply to what it receives from Searchlark.

If something doesn't work

  • Asked to sign in again: the connection was disconnected, or you left the workspace. Connect again from the app.
  • “plan_required”: the workspace's plan doesn't allow that call. During the trial, changes aren't available.
  • “insufficient_scope”: the connection or key is read-only. Connect again and allow changes, or create a key with write access.
  • The local server doesn't start: check node --version (20 or later) and the full path to searchlark-mcp.mjs.
  • Developers: the API and MCP guide lists every endpoint and error, and the OpenAPI spec describes them for tool-calling frameworks. The server also publishes its OAuth metadata at /.well-known/oauth-authorization-server.