mcpbeat Sign in

Serpmantics MCP Server

by amaurydvl Your server? Claim it
answering

Serpmantics is answering right now. Last checked 11 min ago. It exposes 31 tools.

French-first SEO: semantic content guides, scoring, E-E-A-T audits for Google, ChatGPT & Claude.

Uptime history 47 days of history
47 days agonow
100.0%
Uptime 24h
91 of 91 checks
31
Tools
read from the server
359 ms
Response time
average over 24h
open, no key
Access
streamable-http

What changed 10

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 21 August 2026. No other catalogue keeps this.

18 Sep 3 tools appeared create_persona_brief, discover_persona_brief_pages, get_persona_brief
18 Sep a tool description was rewritten delete_guide
8 Sep a tool description was rewritten get_guides
8 Sep a tool changed the parameters it asks for get_guides
4 Sep a tool changed the parameters it asks for update_guide
23 Aug a tool description was rewritten2 times that day get_guide
21 Aug a tool description was rewritten get_guide
and 1 more, back to 21 August 2026

Nothing serious here today

Today is the operative word: we check Serpmantics every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 11 min ago.

run in your terminal
claude mcp add serpmantics --transport http https://app.serpmantics.com/api/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "serpmantics": {
      "url": "https://app.serpmantics.com/api/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.serpmantics]
url = "https://app.serpmantics.com/api/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "serpmantics": {
      "url": "https://app.serpmantics.com/api/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "serpmantics": {
      "url": "https://app.serpmantics.com/api/mcp"
    }
  }
}

Available tools 31

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

eeat
create_eeat
Start an E-E-A-T analysis on a guide content Starts an asynchronous E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) analysis on the HTML content provided for a given guide. The analysis runs in the background — use GET /api/v1/eeat to poll for results until `status` is `done` (or `failed`). **Note:** This endpoint uses tokens (check /api/v1/tokens-usage for the cost, might vary).
create_eeat_competitors
Start an E-E-A-T analysis on a guide's top SERP competitors Starts an asynchronous E-E-A-T analysis on the top competitors of the guide's SERP. Each competitor is fetched and scored individually. Use GET /api/v1/eeat-competitors to poll for results until `pending` reaches `0`. **Token cost:** This endpoint charges `eeatCompetitorsTokensCostPerCompetitor` (see /api/v1/tokens-usage) per competitor analyzed, up to 10 competitors. Example: 10 competitors × 5 tokens = 50 tokens. 6 competitors × 5 tokens = 30 tokens. The number of competitors corresponds to the deduplicated URLs in the guide's top-10 SERP results (available via GET /api/v1/guide).
get_eeat
Get E-E-A-T analysis results Retrieves the result of an E-E-A-T analysis. Either pass `eeatId` (returned by POST /api/v1/eeat) to fetch a specific analysis, or pass `guideId` to fetch the latest analysis for that guide. Poll this endpoint until `status` is `done` (results available) or `failed`.
get_eeat_competitors
Get E-E-A-T analysis results for a guide's competitors Retrieves the E-E-A-T analysis results for the top competitors of a guide. Poll this endpoint until `pending` is `0` to know when the full analysis is complete. Individual competitor results are available as soon as their `status` is `done`.
guide
delete_guide
Delete a guide Deletes a specific guide. Deliberately NOT blocked by the 180-day expiry: an expired guide can no longer be read, but it can always be deleted, so that you can still clean up your account.
get_guide
Get data for a specific guide Retrieves details of a specific guide. While the guide is being created, the endpoint returns 202 (poll again later). If the creation failed permanently (explicit terminal flag, or a failure older than 15 minutes with no retry left, see progressStatus.terminalInferred), it returns 200 with success=false, status=failed, a human-readable French error message, creationFailed=true, refunded (whether the consumed credits were automatically given back) and guide.progressStatus (raw reason, message, terminal). Stop polling in that case.
update_guide
Update a guide Updates editable fields of a specific guide (group, status, share state, linked URL, meta, hidden expressions). Only owners may update.
guides
create_guides
Create new guides Create one or more new guides based on provided queries. Each guide targets exactly ONE engine and ONE analysis mode, chosen with the optional `source` field (default `google`). How to request each guide type: 1. Google SERP guide (1 credit per guide): omit `source`, or pass `source: "google"`. Example payload: {"queries": ["best crm"], "lang": "en-us"} 1bis. Google AI Overview guide (1 credit per guide). Two modes, like AI engines: `source: "google_ai_overview"` builds the guide from the TEXT of Google's AI answers (AI Overview, completed with AI Mode answers) ; `source: "google_ai_overview_citations"` builds it from the content of the web SOURCES those answers cite (recommended for GEO). Same language/country parameters as a Google SERP guide, 1 credit per guide in both modes. Example payload: {"queries": ["best crm"], "lang": "en-us", "source": "google_ai_overview_citations"} 2. LLM ANSWER guide (4 credits per guide): pass the engine name alone, e.g. `source: "chatgpt"`. The guide is built from the answer text the AI generates for the query. Example payload: {"queries": ["best crm"], "lang": "en-us", "source": "chatgpt"} 3. LLM CITATIONS guide (4 credits per guide) [RECOMMENDED AI mode]: pass the engine name with the `_citations` suffix, e.g. `source: "chatgpt_citations"`. The guide is built from the content of the web pages the AI cites in its answer. Example payload: {"queries": ["best crm"], "lang": "en-us", "source": "chatgpt_citations"} Which AI mode to pick? For GEO (getting a page visible in AI answers), prefer `<engine>_citations`: AI engines send traffic by CITING pages as sources, so the winning move is to look like the pages they cite. The answer-text mode (`<engine>` alone) is mostly useful to analyze how the AI phrases its own answer. When in doubt, pick `<engine>_citations`. The same two modes exist for every AI engine (chatgpt, perplexity, claude, gemini, grok, mistral, deepseek). To optimize the same page for several engines or modes (e.g. Google AND ChatGPT answers AND ChatGPT sources), create one guide per source value on the same query.
delete_guides
Delete multiple guides Deletes multiple guides at once
get_guides
List user's guides Returns a list of guides for the authenticated user. Use `query` to check whether a guide already exists before creating one (creating a duplicate costs credits). Beware of two behaviours of this endpoint: - `query` and `group` are case-insensitive REGULAR EXPRESSIONS, not exact matches: special characters in the value are interpreted as regex syntax, and an invalid regex returns no result at all. (`status` is different: a known status is matched exactly, any other value falls back to a regex.) Always compare the returned `query` and `source` yourself, and fall back to an unfiltered paginated scan before concluding that nothing exists; - `totalCount` does NOT take `query` nor `group` into account (known limitation: both are applied as application-level regexes that the count query does not know, so it returns 0 as soon as either is used, alone or combined with `status`). Filtering on `status` alone does give a correct `totalCount`, since it is a real stored field. For an existence check, trust the `guides` actually returned; `totalCount` is only reliable for paginating a listing filtered by `status` alone, or not filtered at all. An empty result is returned as a 404 with `success: false` and `error: "No guides returned"`, not as an empty list.
intent
create_intent
Generate search intent analysis for a guide Analyzes search intent for a guide and optionally analyzes provided content against that intent. **Note:** This endpoint uses tokens (check /api/v1/tokens-usage for the cost, might vary).
delete_intent
Delete generated intent analysis for a guide Removes previously generated intent analysis for the given guide.
get_intent
Get search intent analysis for a guide Retrieves existing intent analysis results for a guide
internal
create_internal_links
Generate internal linking suggestions for a guide Analyzes a guide and generates internal linking suggestions based on content analysis. **Note:** This endpoint uses tokens (check /api/v1/tokens-usage for the cost, might vary).
delete_internal_links
Delete generated internal-links suggestions for a guide Removes previously generated internal-links suggestions for the given guide.
get_internal_links
Get internal linking suggestions for a guide Retrieves existing internal linking suggestions for a guide
meta
create_meta
Generate SEO meta titles and descriptions for a guide Generates optimized meta titles and descriptions based on guide content analysis. **Note:** This endpoint uses tokens (check /api/v1/tokens-usage for the cost, might vary).
delete_meta
Delete generated meta for a guide Removes previously generated meta titles/descriptions for the given guide.
get_meta
Get generated meta titles and descriptions for a guide Retrieves generated SEO meta titles and descriptions for a guide
outline
create_outline
Generate content outline for a guide Generates a content outline based on SERP analysis for a guide. **Note:** This endpoint uses tokens (check /api/v1/tokens-usage for the cost, might vary).
delete_outline
Delete generated outline for a guide Removes previously generated outline data for the given guide.
get_outline
Get generated page structure for a guide Retrieves the generated page structure (flat heading list) for a guide.
persona
create_persona_brief
Generate an AI persona and brand voice brief from the pages of a website (free tool) Reads public pages of a website and produces an editorial persona and writing style brief: who writes, for whom, tone on 6 axes, vocabulary, structure, do and don't lists, verified quotes from the pages, style metrics measured on the text, and a ready-to-paste writing prompt for any AI writing tool (`brief.writingPrompt`, plus `brief.writingPromptCompact` of at most 1500 characters). **Asynchronous, poll the result.** This call only starts the job and answers HTTP 202 with a `briefId` and a `pollUrl`. Call `GET /api/v1/tools/persona-brief?briefId=...` every 3 seconds until `status` is `done` or `failed`. A brief takes about 80 seconds plus 5 seconds per page, rounded up to the half minute: about 2 min for 3 pages, 2 min 30 s for 10 pages, 4 min for 30 pages. MCP clients must call the `get_persona_brief` tool again until the status is terminal. **Addresses.** Duplicate URLs, compared once normalized, are read once. A private, local or blocked address is not refused by this call: the brief is created, and that page ends with `status` failed and `failureReason` BLOCKED_ADDRESS (the brief fails with NO_USABLE_PAGE when no other page could be read). **Tiers, per UTC day.** - Without an API key, free anonymous tier: 3 briefs per day per IP address, 10 URLs per brief. - Signed-in account on the web interface, plan without API access: 10 briefs per day, 20 URLs per brief. - API key of an account whose plan includes API access, pro tier: 50 briefs per day, 30 URLs per brief. The API key of an account whose plan does NOT include API access does not authenticate, and the call returns 401. Remove the `Authorization` header to use the free anonymous tier instead. Quota headers: `X-RateLimit-Limit`, `X-RateLimit-Used`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` (Unix time of the next UTC midnight). `Retry-After` is set on 429 and 503. A 502 or 503 answer gives the consumed quota back, and so does a 429 FREE_CAPACITY_REACHED; SERVICE_UNAVAILABLE consumes none. **Request format.** Send the body as JSON with `Content-Type: application/json`: any other content type returns 415. Without an `Authorization` header, a request sent by a web page of another site (an `Origin` other than the SERPmantics app, or `Sec-Fetch-Site: cross-site`) returns 403. Server-to-server calls send no `Origin` header and are not affected.
get_persona_brief
Read an AI persona and brand voice brief, poll until it is done Returns the brief started by `POST /api/v1/tools/persona-brief`. While `status` is `pending`, `fetching`, `analyzing` or `synthesizing`, call again every 3 seconds: `progress` and `pages` show what has been read so far. When `status` is `done`, `brief` holds the structured brief, `brief.writingPrompt` the ready-to-paste prompt and `markdown` the full document. When `status` is `failed`, `failureReason` says why (NO_USABLE_PAGE, LLM_UNAVAILABLE, TIMEOUT, INTERNAL). A page with a `failureReason` did not contribute to the brief. ANALYSIS_FAILED is the only one on a page that was read: it keeps its `title` and `wordCount`, stays counted in `progress.pagesFetched` and never enters `progress.pagesAnalyzed` nor `metrics`. No quota is consumed. The `briefId` is random: whoever holds it can read the brief, which is what makes share links work. Briefs expire after 90 days. Reads that are not attributed to an account are subject to three anti-abuse counters, all per IP address and per UTC day: the total number of requests, the reads of a single brief, and the number of different briefs read. All three are far above any legitimate polling, including the busiest paid account: crossing any of them returns 429 READ_RATE_LIMITED with `Retry-After`. Once the cost ceiling is reached, further requests keep being refused until it resets, whether or not they carry a valid briefId.
aissistant
get_aissistant_tokens
Get the current user's available AI tokens Returns the number of AI tokens available to the authenticated user. These tokens fund EVERY AI feature in SERPmantics — meta, outline, intent, internal-links, EEAT, EEAT competitors, score, AND the AISSistant prompts. The endpoint lives under /aissistant for historical reasons but the balance is shared across all AI features. Do NOT confuse with guide-creation credits (see /api/v1/credits). For a combined view (credits + tokens) prefer /api/v1/credits.
credit
get_credit_ledger
Grand-livre crédits d'un compte (admin) Timeline complète et immuable des mouvements de crédits d'un utilisateur (octrois, consommations, refunds, resets, ajustements admin), avec libellés FR en clair, delta signé, solde après, source, auteur et référence. Inclut le solde reconstruit à une date arbitraire (paramètre `at`) et un contrôle de cohérence (solde == dernier balanceAfter == somme des deltas). Réservé aux administrateurs. Lecture seule.
credits
get_credits
Get user balance (guide credits + AI tokens) Returns the authenticated user's full balance. SERPmantics has TWO distinct currencies: - **credits** (`credits`): how many NEW GUIDES the user can still create. Consumed once per guide creation. `"unlimited"` if the user's plan grants unlimited guide creation (`hasUnlimitedCredits: true`). - **AI tokens** (`tokens`): pool consumed by every AI feature (meta, outline, intent, internal-links, EEAT, EEAT competitors…). Each feature has its own cost — call `/api/v1/tokens-usage` to get the per-feature pricing. Do not confuse the two: running out of `credits` blocks new guides; running out of `tokens` blocks AI features inside existing guides.
discover
discover_persona_brief_pages
Find the representative pages of a website from its sitemaps, before generating a persona brief (free tool) Reads the sitemaps of a website (declared in robots.txt, otherwise /sitemap.xml, /sitemap_index.xml and /wp-sitemap.xml) and returns up to 200 URLs of the same host, editorial pages first. The first URLs, as many as the URL limit of your tier, are flagged `suggested`: send them in `urls` to `POST /api/v1/tools/persona-brief`. Same tiers as the creation call, with their own daily counter per UTC day: 20 discoveries per day per IP address without an API key, 50 for a signed-in account, 200 with the API key of an account whose plan includes API access. A key whose plan does not include API access returns 401: remove the `Authorization` header to use the free anonymous tier. Quota headers: `X-RateLimit-Limit`, `X-RateLimit-Used`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`. `Retry-After` is set on 429 and 503. A 400, 502 or 503 answer gives the consumed quota back; SERVICE_UNAVAILABLE consumes none. **Request format.** Send the body as JSON with `Content-Type: application/json`: any other content type returns 415. Without an `Authorization` header, a request sent by a web page of another site (an `Origin` other than the SERPmantics app, or `Sec-Fetch-Site: cross-site`) returns 403. Server-to-server calls send no `Origin` header and are not affected.
score
create_score
Analyze content optimization score Analyzes the optimization score of the provided content for a specific guide
tokens
get_tokens_usage
Get API token usage costs for different endpoints Returns the number of tokens required for each API endpoint operation. Note: `eeatCompetitorsTokensCostPerCompetitor` is a **per-competitor** cost. The total cost of POST /api/v1/eeat-competitors equals this value × the number of competitors analyzed (deduplicated URLs in the guide's top-10 SERP, capped at 10).
usage
get_usage
Get current API usage and quota status Returns the current period's API guide usage, quota limit, remaining count and the renewal date. Aligned on the Stripe subscription billing cycle. Does not consume credits.

Endpoints

URLTransportStateLatencyChecked
https://app.serpmantics.com/api/mcp streamable-http answering 214 ms 11 min ago

Alternatives to Serpmantics

same job, measured the same way
Gogcli MCP Slides
by chrischall

Google Slides via gogcli for Claude — deck and slide authoring

354 installs/wk local only
AEO Scanner
by convrgent

AI visibility for ChatGPT/Perplexity/Claude — triple score (AEO+GEO+Agent) with fix code. Free.

181 installs/wk 4 tools answering
Agency AI – Meta & Google Ads Automation
by agencyai

Create, launch, and manage Meta + Google ads from Claude and ChatGPT.

answering
That SEO Agent
by thatseoagent

SEO analysis for sites you own: Google Search Console, GA4, PageSpeed, and full site audits.

answering
Gemini
by pavelguzenfeld

MCP server that exposes Google Gemini as tools for Claude Code

55 installs/wk local only
Marketing
by autostackup

Kotler 9-element audit, IMC campaign planning, Meta & Google, audience segmentation for Claude.

50 installs/wk local only
Google Search Console
by acamolese

Google Search Console: SEO audits, performance queries, URL inspection, indexing checks.

367 installs/wk local only
Vexor
by scarletkc

A semantic search engine for files and code.

842 installs/wk local only

Serpmantics — questions

Answers built from our own checks of this server.

What can Serpmantics do?
It exposes 31 tools, read directly from the server on our last check. Among them: create_eeat, create_eeat_competitors, create_guides, create_intent, create_internal_links, create_meta and 25 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Serpmantics mostly used for?
Its tools cluster around eeat, guides and intent. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Serpmantics working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 359 ms. The bar chart above shows every period we have measured.
How do I connect Serpmantics?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Serpmantics need an API key?
No. Serpmantics completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 31 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Serpmantics?
It answers our handshake in 359 ms on average, which is faster than 43% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.