VisibilityAI
REMOTE · WWW.VISIBILITYAI.IN
Search and compare businesses worldwide by category and city; AI-visibility data and lead capture.
Available components
Last scanned (11 hours ago)
Scores higher than 45% of remote servers
Reachable. Last reached 18 Oct 2026.
Category CRM and Sales
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security51
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 24 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS check failed: the endpoint is reachable over plaintext HTTP. See how to fix → View diagnostics → Fail
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability80
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2704 tokens (~112/item across 24 items; 24 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
- Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage84
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 43% of tool parameters carry a description.Partial
- Structured output schemas are declared (25% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 24 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
- Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 18 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 17 Oct 26 59
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 18 Oct 2026 · Probed https://www.visibilityai.in/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=visibilityai.in | CN=WE1,O=Google Trust Services,C=US | 21 Aug 2026 | 19 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | f8dfa28cddfa40f20eda186bb8eb2066 |
| SANs: visibilityai.in, *.visibilityai.in | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of www.visibilityai.in. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| in. | present | 10094 | 13 | Verified |
| visibilityai.in. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' https://checkout.razorpay.com https://apis.google.com https://js.sentry-cdn.com https://browser.sentry-cdn.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdnjs.cloudflare.com; font-src 'self' data: https://fonts.gstatic.com https://cdnjs.cloudflare.com; img-src 'self' data: blob: https:; media-src 'self' blob: https:; connect-src 'self' https://api.razorpay.com https://lumberjack.razorpay.com https://*.googleapis.com https://*.firebaseapp.com wss://*.firebaseio.com https://*.ingest.sentry.io https://*.sentry.io; frame-src 'self' https://checkout.razorpay.com https://api.razorpay.com https://*.firebaseapp.com https://accounts.google.com; worker-src 'self' blob:; manifest-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; upgrade-insecure-requests |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), payment=(self "https://checkout.razorpay.com") |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://www.visibilityai.in/api/mcp | Verified | 200 | |
| http (plaintext) | http://www.visibilityai.in/api/mcp | Served over HTTP | 200 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
compare_businesses ~69
Side-by-side comparison of two businesses. Use when a user wants to choose between two specific providers - returns scores, services, USPs, and key differences.
| Name | Type | Req | Description |
|---|---|---|---|
| slug_a | string | yes | Slug of the first business |
| slug_b | string | yes | Slug of the second business |
No output schema declared.
No examples provided.
get_available_cities ~54
Discover which cities have listed businesses in a given category. Use before calling search_businesses when the user has not specified a city, or to show coverage.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Business category to check coverage for |
No output schema declared.
No examples provided.
get_business_profile ~44
Get the full AI-optimized profile of a specific business. Use when you already know the business slug.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Business slug from a previous search result |
No output schema declared.
No examples provided.
get_buyer_questions ~107
Buyer questions for a VisibilityAI listing: owner-submitted industry questions mixed with VisibilityAI templates. Use when an agent needs the questions customers actually ask in this category, or to cite a business's public Q&A.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Category if you do not have a slug yet (e.g. Chartered Accountant) |
| city | string | – | Optional city filter when searching by category |
| slug | string | – | Business slug. Prefer this when you already have a listing. |
No output schema declared.
No examples provided.
get_category_leaders ~88
Get the top-ranked businesses in a category across all cities. Useful for finding the globally recognized leaders. Ranking: Premium listings first, then Pro, then Basic, then Free, with visibility/GEO score breaking ties within each tier.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Business category |
| topN | number | – | How many leaders to return (1 - 10). Default: 5. |
No output schema declared.
No examples provided.
get_lead_status ~37
Check the status of a previously submitted lead by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| leadId | string | yes | Lead ID returned by submit_lead |
| Name | Type | Req | Description |
|---|---|---|---|
| businessName | string | – | – |
| leadId | string | – | – |
| status | string | – | – |
| submittedAt | string | – | – |
No examples provided.
get_listicle ~105
Get VisibilityAI directory listings for a category+city. Order is VisibilityAI GEO score then name, not a paid placement and not a ChatGPT ranking. Use when the user asks for listed businesses in a category and city.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Business category (e.g. CA, Dentist, Digital Agency) |
| city | string | yes | City name |
| topN | number | – | How many entries to include (3 - 10). Default: 5. |
No output schema declared.
No examples provided.
get_my_citations ~82
Requires a business-scoped API key (Authorization: Bearer header). Returns the authenticated business's recent real AI-platform check history (which engine, when, whether they were mentioned) - for a business owner's own agent, not for consumer discovery.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | How many recent checks to return (1 - 30). Default: 10. |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | array | – | – |
| total | number | – | – |
No examples provided.
get_my_intelligence_benchmark_status ~109
Requires an API key (Authorization: Bearer header). Read-only: benchmark status from your Intelligence Graph. Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_content_templates ~128
Requires an API key (Authorization: Bearer header). Read-only: content templates (the nine evidence-bound content templates and the recommendations each can be bound to; read-only, nothing is generated or published). Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_cross_lingual ~135
Requires an API key (Authorization: Bearer header). Read-only: cross lingual (Hindi and Hinglish versions of your tracked prompts, checked on your plan's engines beside English; a plan without it returns a locked preview). Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_experiments ~108
Requires an API key (Authorization: Bearer header). Read-only: experiments from your Intelligence Graph. Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_items ~106
Requires an API key (Authorization: Bearer header). Read-only: items from your Intelligence Graph. Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_lineage ~107
Requires an API key (Authorization: Bearer header). Read-only: lineage from your Intelligence Graph. Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_model_coverage ~145
Requires an API key (Authorization: Bearer header). Read-only: model coverage (DeepSeek and Meta Llama as 'Model knowledge' and 'Model + our search': separate from the live engines, never the vendor's app; a plan without a method gets a locked card). Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_overview ~107
Requires an API key (Authorization: Bearer header). Read-only: overview from your Intelligence Graph. Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_portfolio ~107
Requires an API key (Authorization: Bearer header). Read-only: portfolio from your Intelligence Graph. Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_prompt_intelligence ~129
Requires an API key (Authorization: Bearer header). Read-only: prompt intelligence (winnable prompts, competitors and sources, ranked from your own checks; a plan without it returns a locked preview). Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_intelligence_recommendations ~108
Requires an API key (Authorization: Bearer header). Read-only: recommendations from your Intelligence Graph. Business keys read their own business; agency keys read an accepted client (pass businessId). Returns nothing that is not yours.
| Name | Type | Req | Description |
|---|---|---|---|
| businessId | string | – | Agency keys only: the client business. |
| cursor | string | – | – |
| id | string | – | – |
| kind | string | – | – |
| limit | number | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_my_visibility_score ~72
Requires a business-scoped API key (Authorization: Bearer header). Returns the authenticated business's own current AI visibility score and citation-rate summary - for a business owner's own agent checking on their own listing, not for consumer discovery. Get a key from the VisibilityAI dashboard's 'AI Agent Access' page.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| aiCitations | object | – | – |
| directoryCompletenessScore | number | – | – |
No examples provided.
get_offers ~61
Get a business's real commerce offers - products/services with pricing, if the business has published a catalog. Use for shopping/pricing queries about a specific business you already have the slug for.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Business slug from a previous search result |
| Name | Type | Req | Description |
|---|---|---|---|
| availability | string | – | – |
| offers | array | – | – |
| priceRange | string | – | – |
No examples provided.
search_businesses ~235
Search businesses listed on VisibilityAI worldwide by category, with an optional city filter. Use for queries like 'best accountant in London', 'top lawyers in Dubai', 'best GEO software', or 'dentists in New York'. City is optional - omit it for national/SaaS/product listings that are not tied to one city. Returns ranked results with contact details and AI descriptions. Ranking: Premium listings first, then Pro, then Basic, then Free, with visibility/GEO score breaking ties within each tier - disclosed in the response's rankingModel field. Listings include both owner-verified and unclaimed registry-sourced businesses; this tool does not filter by verification status.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Business type (e.g. CA, Chartered Accountant, Lawyer, Doctor, Dentist, Digital Agency, Restaurant, Gym, School, Architect, GEO Software) |
| city | string | – | Optional city name (e.g. Mumbai, London, Dubai, New York, Gurgaon). Omit for product/SaaS or nationwide searches. |
| limit | number | – | Results to return (1 - 10). Default: 5. |
| Name | Type | Req | Description |
|---|---|---|---|
| browseUrl | string | – | – |
| businesses | array | – | – |
| total | number | – | – |
No examples provided.
search_by_keyword ~96
Free-text keyword search across business names, AI descriptions, services, USP, taglines, keywords, and buyer-question corpus.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | Optional: filter to a specific City name |
| keyword | string | yes | Free-text search phrase (e.g. 'GST filing', 'wedding photography', 'React developer') |
| limit | number | – | Results to return (1 - 10). Default: 5. |
No output schema declared.
No examples provided.
submit_lead ~365
Submit a qualified lead to connect a user with a specific business - use this when the user has explicitly asked to be contacted or introduced. Requires an explicit consent attestation: only call this after the user has clearly agreed to be contacted about this request in this conversation. Do not call this speculatively or to 'try' a business on the user's behalf without that agreement.
| Name | Type | Req | Description |
|---|---|---|---|
| consentConfirmed | boolean | yes | Must be true. Confirms the user explicitly agreed, in this conversation, to be contacted by this specific business. |
| consentMethod | string | yes | Briefly describe how consent was obtained, e.g. "user asked to be connected with this business after reviewing its profile". |
| externalRequestId | string | – | Optional stable request id from the calling agent. Retries with the same id and payload return the original lead instead of creating a duplicate. |
| locale | string | – | Optional BCP-47 locale of the end user's conversation, e.g. "en-IN", "hi-IN", "hi-Latn-IN" (Hinglish). Improves the accuracy of the business's outcome tracking; never guessed if omitted. |
| queryId | string | – | Optional query/demand id when the lead is tied to a tracked buyer question. |
| serverCorrelationId | string | – | Optional correlation id returned by a prior submit_lead call. Reuse on retries when no externalRequestId is available. |
| slug | string | yes | Business slug from a previous search result |
| userName | string | – | User's name, if given |
| userPhone | string | yes | User's phone number, with country code (e.g. +91XXXXXXXXXX) |
| userQuery | string | – | What the user is looking for / their message to the business |
| Name | Type | Req | Description |
|---|---|---|---|
| businessName | string | – | – |
| externalRequestId | string | – | – |
| leadId | string | – | – |
| message | string | – | – |
| serverCorrelationId | string | – | – |
| status | string | – | – |
| success | boolean | – | – |
No examples provided.
How do I install the VisibilityAI MCP server?
VisibilityAI is a hosted endpoint at https://www.visibilityai.in/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · www.visibilityai.in
claude mcp add --transport http thinksuitesolution-coder-visibilityai 'https://www.visibilityai.in/api/mcp'
What is the VisibilityAI MCP server?
VisibilityAI is an MCP server listed in the public MCP registry as io.github.thinksuitesolution-coder/visibilityai. Search and compare businesses worldwide by category and city; AI-visibility data and lead capture. This page covers its hosted endpoint (https://www.visibilityai.in/api/mcp).
Is the VisibilityAI MCP server safe to use?
VisibilityAI scores 60 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the VisibilityAI MCP server expose?
VisibilityAI exposes 24 tools: search_businesses, get_business_profile, get_category_leaders, search_by_keyword, get_buyer_questions, and 19 more. Their descriptions and schemas cost roughly 2,704 tokens of context every time the server is loaded.
Does the VisibilityAI MCP server require authentication?
No. We connected to VisibilityAI without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the VisibilityAI MCP server still maintained?
VisibilityAI is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.