The Service Marketing Guys Audit
Read-only audit of any local service business, Open Service Profile conformance first.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"audit": {
"url": "https://www.theservicemarketingguys.com/api/audit-mcp"
}
}
}원격 엔드포인트
https://www.theservicemarketingguys.com/api/audit-mcpstreamable-http할 수 있는 일
도구 목록
도구 (7)
🟢check_agent_readiness(url)
Check whether a local service business is legible to AI agents. Headline: Open Service Profile conformance (manifest at https://<host>/.well-known/open-service-profile validated against the spec, level claimed versus automated Level 1 checks, LocalBusiness and ScheduleAction JSON-LD on the home page). Secondary: the isitagentready.com signal, which degrades to unavailable when that service is down. Synchronous. Returns the final result, usually within about 30 seconds. Reuses a check from the last hour.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2048,
"description": "Website URL, http or https. The scheme is optional."
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_site_speed(url)
Start a Google PageSpeed run (mobile and desktop) for a website. Free. For a running result, wait pollAfterSeconds, then call get_audit_report with runId. Repeat while status is running. Cached completed results need no polling.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2048,
"description": "Website URL, http or https. The scheme is optional."
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_ai_visibility(businessName, city, state, trade, url)
Start an AI visibility check: does the business appear when AI assistants are asked for local providers in its city? It uses up to five prompts to the configured OpenAI model. Paid, drawn from a shared daily budget; when the budget is used up the result says quota_reached with the UTC reset time. For a running result, wait pollAfterSeconds, then call get_audit_report with runId. Repeat while status is running. Cached completed results need no polling.
입력 스키마
{
"type": "object",
"properties": {
"businessName": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Business name as it appears on Google."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "US state, two-letter code or full name."
},
"trade": {
"description": "Trade, for example hvac, plumbing, auto repair, marine. Optional; inferred when omitted.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2048,
"description": "Website URL, http or https. The scheme is optional."
}
},
"required": [
"businessName",
"city",
"state"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_local_rank(placeId, businessName, city, state, trade)
Start a Google Maps rank grid (49 points, 8 miles) for a business by Google Place id, or by business name and city. Paid, drawn from a shared daily budget; when the budget is used up the result says quota_reached with the UTC reset time. For a running result, wait pollAfterSeconds, then call get_audit_report with runId. Repeat while status is running. Cached completed results need no polling.
입력 스키마
{
"type": "object",
"properties": {
"placeId": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Google Place id, for example ChIJ...."
},
"businessName": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Business name as it appears on Google."
},
"city": {
"description": "City, required with businessName when no placeId is given.",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "US state, two-letter code or full name."
},
"trade": {
"description": "Trade, for example hvac, plumbing, auto repair, marine. Optional; inferred when omitted.",
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢start_audit(url, businessName, city, state, placeId, ...)
Start the full visibility audit: site speed, agent readiness, and Open Service Profile conformance, plus the paid engines when their inputs are given. city enables AI visibility. placeId enables local rank. Provide businessName and state for accurate identification. If the paid budget cannot cover this request, nothing starts; use the individual free tools. For a running result, wait pollAfterSeconds, then call get_audit_report with runId. Repeat while status is running. Cached completed results need no polling.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2048,
"description": "Website URL, http or https. The scheme is optional."
},
"businessName": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Business name as it appears on Google."
},
"city": {
"description": "City. Needed for the AI visibility check.",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "US state, two-letter code or full name."
},
"placeId": {
"description": "Google Place id. Needed for the local rank grid.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"trade": {
"description": "Trade, for example hvac, plumbing, auto repair, marine. Optional; inferred when omitted.",
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_audit_report(runId)
Fetch the status and, when finished, the report for a runId returned by check_site_speed, check_ai_visibility, check_local_rank, or start_audit. For a running result, wait pollAfterSeconds, then call again with the same runId. Repeat while status is running.
입력 스키마
{
"type": "object",
"properties": {
"runId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The runId returned by an async tool."
}
},
"required": [
"runId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢explain_check(checkId)
Plain-language explanation of one check id: what it looks at, why it matters to a service business, and what to do. Explains osp-1 through osp-20 and agent-readiness check ids. Other engines' finding ids are not supported.
입력 스키마
{
"type": "object",
"properties": {
"checkId": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A check id from a result, for example osp-7 or discoverability.robotsTxt."
}
},
"required": [
"checkId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거