serpmantics
What this MCP does
Creates and manages SEO content guides, SERP analyses, search-intent and E-E-A-T audits, outlines, metadata, internal-linking suggestions, and brand voice briefs.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'question', 'market'], 'properties': {'domain': {'type': 'string', 'description': 'Domain to look for in the answers, or any URL of the site. Reduced to the registrable domain.'}, 'market': {'enum': ['fr-FR', 'en-US', 'es-ES', 'de-DE', 'it-IT'], 'type': 'string', 'description': 'Language and country in which the engines are asked.'}, 'question': {'type': 'string', 'description': 'The question a prospect would ask an AI assistant, 10 to 200 characters once spaces are collapsed.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId', 'html_content'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide to analyze'}, 'html_content': {'type': 'string', 'description': 'HTML of the article to analyze (without `<mark>` tags)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide whose competitors should be analyzed'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['queries', 'lang'], 'properties': {'lang': {'type': 'string', 'description': 'Language code for the guides'}, 'source': {'enum': ['google', 'google_ai_overview', 'google_ai_overview_citations', 'chatgpt', 'chatgpt_citations', 'perplexity', 'perplexity_citations', 'claude', 'claude_citations', 'gemini', 'gemini_citations', 'grok', 'grok_citations', 'mistral', 'mistral_citations', 'deepseek', 'deepseek_citations'], 'type': 'string', 'description': "Target engine AND analysis mode the guide optimizes for. One guide = one source. `google` analyzes the Google SERP (1 credit per guide). Google's AI answers have the same two modes as AI engines : `google_ai_overview` analyzes the TEXT of the AI answers (AI Overview, completed with AI Mode) ; `google_ai_overview_citations` analyzes the content of the web SOURCES those answers cite, the recommended mode for GEO. 1 credit per guide in both modes, same language/country parameters as `google`. For AI engines (chatgpt, perplexity, claude, gemini, grok, mistral, deepseek), pick the mode: `<engine>` analyzes the AI's generated ANSWER for the query; `<engine>_citations` analyzes the content of the web SOURCES the AI cites, which is the recommended mode for GEO (become one of the cited sources). Both AI modes cost 4 credits per guide. Omit for the default `google`."}, 'queries': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of queries to create guides for'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'content': {'type': 'string', 'description': 'Optional content to analyze against the intent (only after intent analysis was created)'}, 'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['urls'], 'properties': {'urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Public http(s) URLs of representative pages of one website, 5 to 10 articles give the best brief. At most 10 URLs, whatever the tier, each of at most 2048 characters.'}, 'force': {'type': 'boolean', 'description': 'True to compute a new brief even when an identical one exists, which answers 202 and consumes quota. Any value that is not a boolean returns 400 INVALID_BODY.'}, 'brandName': {'type': 'string', 'description': 'Optional brand name, on a single line, used in the brief.'}, 'outputLanguage': {'enum': ['fr', 'en', 'es', 'de', 'it'], 'type': 'string', 'description': 'Language in which the brief is written. When omitted, the service chooses it.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId', 'content'], 'properties': {'content': {'type': 'string', 'description': 'Content to analyze'}, 'guideId': {'type': 'string', 'description': 'ID of the guide to analyze'}, 'pageUrl': {'type': 'string', 'description': "Optional. Read only for a visitor of a guide shared in read-only mode: the URL of one of the guide's SERP pages, whose stored content is then analysed instead of the guide's text. Ignored for the owner and for a guide shared in edit mode. Unknown URL: the guide's text is analysed.\n"}, 'saveToGuide': {'type': 'boolean', 'description': 'Whether to save the content and the analysis score back to the guide (default: true)\n'}, 'includeEmbedding': {'type': 'boolean', 'description': 'Whether to compute the semantic embedding analysis, i.e. proximity and PCA (default: true). When false, the embeddingAnalysis key is omitted from the response. Null is treated as "not provided", so the default applies.\n'}, 'scoreProgressive': {'type': 'boolean', 'description': 'Whether to compute the progressive score build-up curve (default: true). When false, progressiveScores is returned empty. Null is treated as "not provided", so the default applies.\n'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The ID of the guide to delete'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['site'], 'properties': {'site': {'type': 'string', 'description': 'URL or domain of the website. A bare domain is completed with https.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkId'], 'properties': {'checkId': {'type': 'string', 'description': 'The checkId returned by the creation call (22 characters).'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'at': {'type': 'string', 'description': 'Date ISO pour reconstruire le solde à cet instant (point-in-time).'}, 'limit': {'type': 'number', 'description': 'Nombre maximum de lignes (défaut 200, max 1000).'}, 'userId': {'type': 'string', 'description': "Identifiant Mongo de l'utilisateur."}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'eeatId': {'type': 'string', 'description': 'Optional filter, ID of one specific analysis of that guide (returned by POST /api/v1/eeat). Omit it to get the latest analysis of `guideId`.'}, 'guideId': {'type': 'string', 'description': 'ID of the guide the analysis belongs to. Required, and access is checked on it.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide whose competitors should be returned'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The ID of the guide to retrieve'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'description': 'Page number for pagination'}, 'group': {'type': 'string', 'description': 'Filter on the guide group. Case-insensitive partial match, interpreted as a regular expression.'}, 'query': {'type': 'string', 'description': 'Filter on the guide query. Case-insensitive partial match, interpreted as a regular expression (see the endpoint description).'}, 'status': {'enum': ['draft', 'active', 'review', 'published', 'archived'], 'type': 'string', 'description': 'Filter on the guide status. Exact match when the value is one of the known statuses, otherwise a case-insensitive regular expression.'}, 'pageSize': {'description': 'Number of guides per page'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'description': 'ID of the guide'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['briefId'], 'properties': {'briefId': {'type': 'string', 'description': 'The briefId returned by the creation call (22 characters).'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The ID of the guide to update'}, 'meta': {'type': 'object', 'properties': {'title': {'type': 'string'}, 'description': {'type': 'string'}}, 'description': 'SEO meta override for the guide', 'additionalProperties': {}}, 'group': {'type': 'string', 'description': 'Group/folder the guide belongs to (triggers cannibalisation analysis on previous and new group)'}, 'status': {'enum': ['', 'draft', 'active', 'review', 'published', 'archived'], 'type': 'string', 'description': 'Editorial status of the guide. Empty string clears the status.'}, 'linkedUrl': {'type': 'string', 'description': 'Public URL where the guide content is published (validated as URL)'}, 'shareState': {'enum': ['private', 'shared-read', 'shared-edit'], 'type': 'string', 'description': 'Sharing mode. Any value outside the enum is rejected with 400 (the check is case-sensitive). Plan must allow shared-read or shared-edit, otherwise 403 is returned.'}, 'hiddenExpressions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Expressions to hide from the optimisation suggestions'}}}
Recent tool changes
Similar MCP servers
Hermoso
Supports ad research, competitor analysis, video and static ad creation, campaign policy checks, content publishing, and performa…
Heista
Analyzes video advertising, builds brand intelligence profiles, researches markets, and generates advertising scripts and creativ…
Spook SEO
Provides SEO analysis, keyword and content generation, AEO checks, ad copy tools and automated article generation and publishing.
VarynForge
Supports SEO research and content planning through niche analysis, competitor and keyword research, opportunity discovery, and wr…
AfterLaunch: the agentic growth marketing engine
Runs growth-marketing workflows covering SEO, AI-search visibility, competitor analysis, content planning, distribution channels,…
RoboWrite
Supports brand setup, content briefs, AI-generated drafts, editorial review, quality checks, and publishing workflows.
ai-content-drop
Generates AI images, videos, UGC clips, avatars, and finished ads, while organizing creative assets and campaign boards.
Newswire Com
Searches and retrieves recent press releases from Newswire.com's public newsroom feed.