visibilityai
Verified Indian business data and AI-visibility reports for MCP-compatible AI agents.
사용해야 할까요
품질 및 안전성
발견 사항 (4)
- LOWcompare_businesses에서
- LOWget_my_intelligence_recommendations에서
- LOWget_my_intelligence_experiments에서
- LOWget_my_intelligence_benchmark_status에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"visibilityai": {
"url": "https://visibilityai.in/api/mcp"
}
}
}원격 엔드포인트
https://visibilityai.in/api/mcpstreamable-http할 수 있는 일
도구 목록
도구 (20)
🟢search_businesses(category, city, limit)
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.
입력 스키마
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Business type (e.g. CA, Chartered Accountant, Lawyer, Doctor, Dentist, Digital Agency, Restaurant, Gym, School, Architect, GEO Software)"
},
"city": {
"type": "string",
"description": "Optional city name (e.g. Mumbai, London, Dubai, New York, Gurgaon). Omit for product/SaaS or nationwide searches."
},
"limit": {
"type": "number",
"description": "Results to return (1 - 10). Default: 5."
}
},
"required": [
"category"
]
}출력 스키마
{
"type": "object",
"properties": {
"businesses": {
"type": "array",
"items": {
"type": "object"
}
},
"total": {
"type": "number"
},
"browseUrl": {
"type": "string"
}
}
}🟢get_business_profile(slug)
Get the full AI-optimized profile of a specific business. Use when you already know the business slug.
입력 스키마
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Business slug from a previous search result"
}
},
"required": [
"slug"
]
}🟢get_category_leaders(category, topN)
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.
입력 스키마
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Business category"
},
"topN": {
"type": "number",
"description": "How many leaders to return (1 - 10). Default: 5."
}
},
"required": [
"category"
]
}🟢search_by_keyword(keyword, city, limit)
Free-text keyword search across business names, AI descriptions, services, USP, taglines, keywords, and buyer-question corpus.
입력 스키마
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "Free-text search phrase (e.g. 'GST filing', 'wedding photography', 'React developer')"
},
"city": {
"type": "string",
"description": "Optional: filter to a specific City name"
},
"limit": {
"type": "number",
"description": "Results to return (1 - 10). Default: 5."
}
},
"required": [
"keyword"
]
}🟢get_buyer_questions(slug, category, city)
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.
입력 스키마
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Business slug. Prefer this when you already have a listing."
},
"category": {
"type": "string",
"description": "Category if you do not have a slug yet (e.g. Chartered Accountant)"
},
"city": {
"type": "string",
"description": "Optional city filter when searching by category"
}
}
}🟢get_listicle(category, city, topN)
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.
입력 스키마
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Business category (e.g. CA, Dentist, Digital Agency)"
},
"city": {
"type": "string",
"description": "City name"
},
"topN": {
"type": "number",
"description": "How many entries to include (3 - 10). Default: 5."
}
},
"required": [
"category",
"city"
]
}⚪compare_businesses(slug_a, slug_b)
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.
입력 스키마
{
"type": "object",
"properties": {
"slug_a": {
"type": "string",
"description": "Slug of the first business"
},
"slug_b": {
"type": "string",
"description": "Slug of the second business"
}
},
"required": [
"slug_a",
"slug_b"
]
}🟢get_available_cities(category)
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.
입력 스키마
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Business category to check coverage for"
}
},
"required": [
"category"
]
}🟡submit_lead(slug, userPhone, userName, userQuery, consentConfirmed, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Business slug from a previous search result"
},
"userPhone": {
"type": "string",
"description": "User's phone number, with country code (e.g. +91XXXXXXXXXX)"
},
"userName": {
"type": "string",
"description": "User's name, if given"
},
"userQuery": {
"type": "string",
"description": "What the user is looking for / their message to the business"
},
"consentConfirmed": {
"type": "boolean",
"description": "Must be true. Confirms the user explicitly agreed, in this conversation, to be contacted by this specific business."
},
"consentMethod": {
"type": "string",
"description": "Briefly describe how consent was obtained, e.g. \"user asked to be connected with this business after reviewing its profile\"."
},
"externalRequestId": {
"type": "string",
"description": "Optional stable request id from the calling agent. Retries with the same id and payload return the original lead instead of creating a duplicate."
},
"serverCorrelationId": {
"type": "string",
"description": "Optional correlation id returned by a prior submit_lead call. Reuse on retries when no externalRequestId is available."
},
"queryId": {
"type": "string",
"description": "Optional query/demand id when the lead is tied to a tracked buyer question."
},
"locale": {
"type": "string",
"description": "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."
}
},
"required": [
"slug",
"userPhone",
"consentConfirmed",
"consentMethod"
]
}출력 스키마
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"leadId": {
"type": "string"
},
"businessName": {
"type": "string"
},
"message": {
"type": "string"
},
"serverCorrelationId": {
"type": "string"
},
"externalRequestId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"created",
"replayed"
]
}
}
}🟢get_lead_status(leadId)
Check the status of a previously submitted lead by its ID.
입력 스키마
{
"type": "object",
"properties": {
"leadId": {
"type": "string",
"description": "Lead ID returned by submit_lead"
}
},
"required": [
"leadId"
]
}출력 스키마
{
"type": "object",
"properties": {
"leadId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"new",
"contacted",
"closed"
]
},
"businessName": {
"type": "string"
},
"submittedAt": {
"type": "string"
}
}
}🟢get_offers(slug)
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.
입력 스키마
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Business slug from a previous search result"
}
},
"required": [
"slug"
]
}출력 스키마
{
"type": "object",
"properties": {
"offers": {
"type": "array",
"items": {
"type": "object"
}
},
"priceRange": {
"type": "string"
},
"availability": {
"type": "string"
}
}
}🟢get_my_visibility_score
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.
입력 스키마
{
"type": "object",
"properties": {}
}출력 스키마
{
"type": "object",
"properties": {
"directoryCompletenessScore": {
"type": "number"
},
"aiCitations": {
"type": "object"
}
}
}🟢get_my_citations(limit)
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.
입력 스키마
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "How many recent checks to return (1 - 30). Default: 10."
}
}
}출력 스키마
{
"type": "object",
"properties": {
"checks": {
"type": "array",
"items": {
"type": "object"
}
},
"total": {
"type": "number"
}
}
}🟢get_my_intelligence_overview(businessId, id, kind, type, cursor, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"businessId": {
"type": "string",
"description": "Agency keys only: the client business."
},
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"prompt",
"recommendation",
"action"
]
},
"type": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "number"
}
}
}🟢get_my_intelligence_items(businessId, id, kind, type, cursor, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"businessId": {
"type": "string",
"description": "Agency keys only: the client business."
},
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"prompt",
"recommendation",
"action"
]
},
"type": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "number"
}
}
}🟢get_my_intelligence_lineage(businessId, id, kind, type, cursor, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"businessId": {
"type": "string",
"description": "Agency keys only: the client business."
},
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"prompt",
"recommendation",
"action"
]
},
"type": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "number"
}
}
}🟢get_my_intelligence_recommendations(businessId, id, kind, type, cursor, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"businessId": {
"type": "string",
"description": "Agency keys only: the client business."
},
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"prompt",
"recommendation",
"action"
]
},
"type": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "number"
}
}
}🟢get_my_intelligence_experiments(businessId, id, kind, type, cursor, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"businessId": {
"type": "string",
"description": "Agency keys only: the client business."
},
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"prompt",
"recommendation",
"action"
]
},
"type": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "number"
}
}
}🟢get_my_intelligence_benchmark_status(businessId, id, kind, type, cursor, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"businessId": {
"type": "string",
"description": "Agency keys only: the client business."
},
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"prompt",
"recommendation",
"action"
]
},
"type": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "number"
}
}
}🟢get_my_intelligence_portfolio(businessId, id, kind, type, cursor, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"businessId": {
"type": "string",
"description": "Agency keys only: the client business."
},
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"prompt",
"recommendation",
"action"
]
},
"type": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "number"
}
}
}커뮤니티
증거