loading…
Search for a command to run...
loading…
A secure, high-performance MCP server that gives AI models and agents (like Cursor and Claude Desktop) direct access to the FullMention Public API to monitor AI
A secure, high-performance MCP server that gives AI models and agents (like Cursor and Claude Desktop) direct access to the FullMention Public API to monitor AI search visibility, manage keywords, and calculate brand Share of Voice.
The FullMention Model Context Protocol (MCP) Server is a secure, high-performance gateway that allows Large Language Models (LLMs) and AI agents (such as Claude Desktop, Cursor, or custom agent networks) to interact directly with the FullMention Public API.
By exposing FullMention’s stateless recommendation snapshots as native MCP tools and structured resources, your AI models can seamlessly monitor AI visibility, manage keywords, estimate credit costs, and trigger batch analysis runs.
[!WARNING]
⚠️ Crucial: Tag-Prefix Sensitivity
FullMention uses a prefix-based tag hierarchy to keep things organized (e.g.,
client:<name>,market:<country>, orcategory:<topic>).
- Exact Matches Only: If a keyword is registered with the tag
client:acme, querying or filtering byacmewill NOT match. The prefix is part of the tag name.- Best Practice: Always instruct your AI models to use the fully qualified, prefixed tag name (e.g.,
client:acmeinstead of justacme) when creating keywords, triggering runs, or calculating Share of Voice.
Since the server is published as a zero-install NPM package, you can connect it instantly using npx.
Add the following configuration to your claude_desktop_config.json (typically located at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"fullmention": {
"command": "npx",
"args": ["-y", "@fullmention/mcp-server"],
"env": {
"FULLMENTION_API_KEY": "your_fm_live_or_test_key_here"
}
}
}
}
[!TIP] Version Pinning: To prevent breaking changes from affecting your production workflows, consider pinning a specific SemVer version when starting via npx:
"args": ["-y", "@fullmention/[email protected]"]
FullMentionstdionpx -y @fullmention/mcp-serverFULLMENTION_API_KEY and paste your key.Designed from the ground up to be AI-safe and highly resource-efficient, automatically shielding your API quotas and credit budgets:
[POLLED_TOO_FAST_CACHED_WARNING], saving network overhead and API stress.409 Conflict scenarios if a run is already active under specific tag filters, automatically extracting the active runId and returning [RUN_ALREADY_PROCESSING_CONFLICT] to guide the AI model without crashing.get_share_of_voice to completely prevent mathematical hallucinations in LLMs.format: "markdown" parameter. Instead of sending raw verbose JSON to the LLM, the MCP server automatically compiles your data into highly compressed, dense Markdown tables, saving massive token overhead and drastically reducing your LLM input cost.For SaaS and cloud architectures, the FullMention MCP Server supports SSE (Server-Sent Events) HTTP Transport dynamically out of the box.
To spin up the HTTP gateway on port 3000 (or configured PORT / FULLMENTION_MCP_PORT):
npx -y @fullmention/mcp-server --sse
For public gateways or shared team environments, you can configure the MCP server in a strictly read-only mode by passing FULLMENTION_MCP_READONLY=true. This blocks all mutating actions (such as triggering runs, creating or deleting keywords):
PORT=3000 FULLMENTION_MCP_READONLY=true npx -y @fullmention/mcp-server --sse
When hosted in SSE mode, you can inspect diagnostics and live caching performance metrics via:
curl http://localhost:3000/diagnostics
FullMention MCP server exposes 17 dedicated tools. Below is the complete parameter schema and response shape for each tool:
get_statusRetrieve dynamic system and search engine status.
{
"status": "operational",
"engines": {
"openai": "operational",
"gemini": "operational"
}
}
get_quotaRetrieve account quota limits and current usage.
bypassCache (boolean, optional): If true, bypasses in-memory caching.{
"monthlyLimit": 10000,
"remaining": 7450,
"reserved": 200,
"used": 2350
}
get_usage_statsRetrieve detailed credit usage stats and pricing matrix.
bypassCache (boolean, optional): If true, bypasses in-memory caching.list_keywordsList all monitored keywords in FullMention with pagination.
tags (string, optional): Comma-separated tags to filter by (e.g., "client:acme,market:dk").tagMode ("and" | "or", optional, default: "or"): Match mode for tag filter.country (string, optional): Country name filter (e.g., "Denmark").language (string, optional): Language name filter (e.g., "Danish").location (string, optional): City level location (e.g., "Copenhagen").engine ("openai" | "openai-mini" | "gemini", optional): AI search engine.limit (number, optional, default: 100): Limit keywords per page.cursor (string, optional): Cursor for pagination.format ("compact" | "raw" | "markdown", optional, default: "compact"): Return payload format.bypassCache (boolean, optional): If true, pulls live data.create_keywordsCreate one or more keywords idempotent.
keywords (array of objects, required):keyword (string, required): Search query intent (e.g., "best running shoes").country (string, required): Country name (e.g., "Denmark").countryCode (string, required): ISO 2-letter code (e.g., "DK").language (string, required): Language name (e.g., "Danish").languageCode (string, required): ISO 2-letter code (e.g., "da").location (string, optional, nullable): City/local level (e.g., "Copenhagen").engines (array of strings, optional, default: ["openai-mini"]).tags (array of strings, optional): Prefixed tags.idempotencyKey (string, optional): Unique UUID to prevent double-creation.bulk_create_keywordsBulk-create keywords using a simple string array with shared geographical parameters.
keywords (array of strings, required): Intents to create.country / countryCode / language / languageCode / location (optional): Shared config.engines (optional, default: ["openai-mini"]): Target AI engines.tags (optional): Shared tags.idempotencyKey (string, optional).update_keywordUpdate settings or tags for an existing keyword.
keywordId (string, required): The target keyword ID.keyword / country / countryCode / language / languageCode / location / engines / tags (optional).idempotencyKey (string, optional).delete_keywordDeactivate or soft-delete a keyword.
keywordId (string, required): Keyword ID.idempotencyKey (string, optional).list_tagsList active tags currently utilized across your keywords.
prefix (string, optional): Prefix filter (e.g., "client:").limit / cursor / bypassCache (optional).estimate_runPre-estimate credit consumption prior to starting a batch analysis.
tags (array of strings, required): Tag filters determining keywords.tagMode ("and" | "or", optional): Match mode.fanout (boolean, optional): Enable web search search.{
"estimatedCredits": 25,
"keywordCount": 25,
"insufficientCredits": false
}
trigger_runTrigger an asynchronous batch analysis (run) on all matching keywords.
tags (array of strings, required): Target tags.tagMode ("and" | "or", optional).fanout (boolean, optional): Enabling search query fanout costs extra credits.idempotencyKey (string, optional).get_run_statusFetch progress and active status of a batch run.
runId (string, required): Run ID.cancel_runCancel an active batch analysis run and release remaining reserved quota.
runId (string, required): Run ID.list_runsList recent batch runs with timestamps and status logs.
limit / cursor / bypassCache (optional).get_latest_resultsRetrieve the latest AI search visibility recommendations.
tags (string, optional): Comma-separated tag filter.tagMode / country / language / location / engine / keywordId (optional).limit / cursor / bypassCache (optional).format ("compact" | "raw" | "markdown", optional, default: "compact").get_share_of_voiceCalculate brand Share of Voice % and average placements server-side.
tags (string, required): Target tags for calculation.tagMode ("and" | "or", optional).engine (optional): Specific search engine filter.brands (array of strings, optional): Brands to isolate.format ("json" | "markdown", optional, default: "markdown").bypassCache (boolean, optional).get_fanout_sourcesRetrieve the underlying web query search sources that influenced a recommendation.
resultId (string, required).limit / cursor (optional).Your AI models can consume structured datasets directly using these resource URIs:
fullmention://keywords/active — Real-time markdown table containing all active keywords.fullmention://schema/openapi — The complete machine-readable OpenAPI spec.fullmention://results/latest/tag/{tag} — Live markdown recommendation summaries for a given tag.engine (specifically gemini since Gemini does not support web search fanout) can occasionally return a 500 Internal Server Error from the backend API.engine parameter to fallback safely to the default openai-mini pipeline.Выполни в терминале:
claude mcp add fullmention -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.