Search / com.tofubofu/ai-visibility
TofuBofu AI Visibility
R0· no sign-inFree AI visibility scan for any B2B company: see how often AI engines recommend it, plus the fixes.
v1.0.0 · active · descriptor JSON · versions
Search / com.tofubofu/ai-visibility
R0· no sign-inFree AI visibility scan for any B2B company: see how often AI engines recommend it, plus the fixes.
v1.0.0 · active · descriptor JSON · versions
{
"mcpServers": {
"ai-visibility": {
"type": "http",
"url": "https://tofubofu.com/mcp"
}
}
}claude mcp add --transport http ai-visibility https://tofubofu.com/mcp[mcp_servers.ai-visibility]
url = "https://tofubofu.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-visibility": {
"type": "remote",
"url": "https://tofubofu.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"ai-visibility": {
"type": "http",
"url": "https://tofubofu.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=ai-visibility&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdG9mdWJvZnUuY29tL21jcCJ9"
}{
"servers": {
"ai-visibility": {
"type": "http",
"url": "https://tofubofu.com/mcp"
}
}
}{
"mcpServers": {
"ai-visibility": {
"httpUrl": "https://tofubofu.com/mcp"
}
}
}extensions:
"ai-visibility":
enabled: true
name: "ai-visibility"
type: streamable_http
uri: "https://tofubofu.com/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations2 of 2 tools declare readOnlyHint or destructiveHinttools.directory_hints1 of 2 tools declare all four hints; missing: get_visibility_report (destructiveHint, idempotentHint)tools.token_costabout 1,438 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes1 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagescan_ai_visibilitychangedinput schemaFull history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +reachable +uptime-100% ~updated-96d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://tofubofu.com/mcp streamable-http | none | yes | 100% | 213 ms | 2025-11-25 | 2026-10-20 |
get_visibility_reportread-only | Fetch the results of an AI-visibility scan started with scan_ai_visibility. Args: report_id: The id returned by scan_ai_visibility. Returns: While running: {status: "running", progress}. When done: the visibility score, how often AI mentions the brand, share of voice, top competitors winning the answers, and the highest-priority fixes, plus the report_url. |
scan_ai_visibility | Start a free AI-visibility scan for a B2B company's website. Checks how often AI engines (ChatGPT, Claude, Perplexity, Gemini, Google AI Mode, Microsoft Copilot) name the company when buyers ask for vendor recommendations, and finds the gaps. The scan runs in the background (roughly 1-2 minutes); call get_visibility_report with the returned report_id to read the score and findings. ASK THE USER for geo_scope and sells_to before calling, if you do not already know them. Everything past `email` is optional and the scan runs without it, but geo_scope changes EVERY question we generate: a firm that sells across one country, scored on one city's questions, looks invisible when it is not. Guessing is worse than asking, and asking costs one line of conversation. Where you do not know, omit the field rather than inventing a plausible value: an omitted field is recorded as unknown, and the report says its framing was assumed. Every parameter carries its own description, generated from the one intake contract the in-app scan form renders from, so what you are told here and what a customer is asked are the same question. Returns: report_id, a report_url to view live, whether an existing report was reused (free scan already used this month), and which intake answers were missing, so you can offer to re-run with them. |
Schemas: list_tools.
{
"name": "com.tofubofu/ai-visibility",
"title": "TofuBofu AI Visibility",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://tofubofu.com/mcp",
"type": "streamable-http"
}
],
"version": "1.0.0",
"description": "Free AI visibility scan for any B2B company: see how often AI engines recommend it, plus the fixes."
}