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
- In Claude, open Settings, then Connectors, and choose Add custom connector.
- Name it Searchlark and paste the server URL: https://searchlark.com/mcp
- Choose Connect. Sign in to Searchlark, pick the workspace and the access level, and choose Allow.
- 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
- Claude Desktop only. Download searchlark-mcp.mjs and create an API key (below).
- Add this to claude_desktop_config.json (Settings, Developer, Edit Config), then restart Claude.
{
"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
- Run this once in your terminal.
- Then type /mcp in Claude Code, choose searchlark and sign in to Searchlark in the browser that opens.
claude mcp add --transport http searchlark https://searchlark.com/mcpWith an API key
- Download searchlark-mcp.mjs, create an API key (below), and run this once.
claude mcp add --transport stdio --env SEARCHLARK_API_KEY=sl_live_… \
--env SEARCHLARK_API_BASE=https://searchlark.com searchlark -- node /path/to/searchlark-mcp.mjsChatGPT
Sign in
- In ChatGPT, turn on developer mode: Settings, Apps, Advanced settings.
- Create an app (connector) with the MCP server URL https://searchlark.com/mcp and OAuth authentication.
- Sign in to Searchlark, pick the workspace and the access level, and choose Allow.
- 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
- Add this to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for every project).
- Open Cursor Settings, MCP, and choose Connect next to searchlark to sign in.
{
"mcpServers": {
"searchlark": {
"url": "https://searchlark.com/mcp"
}
}
}With an API key
- Download searchlark-mcp.mjs, create an API key (below), and add this instead.
{
"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
- Add this to .vscode/mcp.json in your workspace.
- Choose Start above the server in the file, then sign in to Searchlark when VS Code asks.
{
"servers": {
"searchlark": {
"type": "http",
"url": "https://searchlark.com/mcp"
}
}
}With an API key
- Download searchlark-mcp.mjs and create an API key (below). VS Code asks for the key once and stores it securely.
{
"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
- 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).
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
- Clients that support remote MCP servers with OAuth: add https://searchlark.com/mcp and sign in when asked.
With an API key
- 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.
| Tool | What it does | Access |
|---|---|---|
list_sites | Sites in the workspace | read |
list_keywords | Keyword opportunities | read |
list_articles | Articles, by status, 200 per page | read |
create_article | Plan an article | changes |
generate_article | Write the draft | changes |
get_job | Job status | read |
get_article | Article and draft | read |
approve_article | Approve a draft | changes |
publish_article | Publish now | changes |
get_analytics | Search Console summary | read |
get_ai_visibility | AI mention rates | read |
get_health_plan | Site health fix plan | read |
get_health_problem | One problem, with an agent prompt | read |
recheck_health_problem | Re-check a problem's pages | changes |
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.