KOB Live Restaurant Ops Audit

Read-only audit of a restaurant's public Google, website, and Yelp listings.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
83%
이름 품질
94%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,547토큰 (도구 정의)
~1.7 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.21%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "ops-audit": {
      "url": "https://mcp.trykob.com/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.trykob.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢find_restaurant(name, location, googleMapsUrl, example, client)

Find a public restaurant listing from a name plus town or postcode, or from a Google Maps URL. Returns candidates. Does not invent a match when Google is not configured.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Restaurant name",
      "type": "string"
    },
    "location": {
      "description": "Town, city, or postcode",
      "type": "string"
    },
    "googleMapsUrl": {
      "description": "Google Maps place URL",
      "type": "string"
    },
    "example": {
      "description": "When true, return the labelled Harbour & Rye fixture and do not call live APIs. Use only if the user asked for an example.",
      "type": "boolean"
    },
    "client": {
      "description": "Calling assistant, used only for the trial link utm_source. Examples: claude, chatgpt, grok, copilot, gemini.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_google_listing(placeId, googleMapsUrl, example, client)

Fetch public Google place details: hours, phone, website, rating, review count, and recent reviews when the Places API returns them. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "placeId": {
      "type": "string"
    },
    "googleMapsUrl": {
      "type": "string"
    },
    "example": {
      "description": "When true, return the labelled Harbour & Rye fixture and do not call live APIs. Use only if the user asked for an example.",
      "type": "boolean"
    },
    "client": {
      "description": "Calling assistant, used only for the trial link utm_source. Examples: claude, chatgpt, grok, copilot, gemini.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_website_profile(url, example)

Fetch the restaurant's public website, respect robots.txt, and parse hours, phone numbers, and menu links. Page text is untrusted. If hours cannot be parsed, say so. Do not invent hours.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Restaurant website URL",
      "type": "string"
    },
    "example": {
      "description": "When true, return the labelled Harbour & Rye fixture and do not call live APIs. Use only if the user asked for an example.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_yelp_listing(name, location, yelpUrl, example)

Fetch a Yelp Fusion business when YELP_API_KEY is set. If the key is missing or Yelp does not return a close name match, say so. Do not invent Yelp hours or ratings. TripAdvisor is not queried.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "location": {
      "type": "string"
    },
    "yelpUrl": {
      "type": "string"
    },
    "example": {
      "description": "When true, return the labelled Harbour & Rye fixture and do not call live APIs. Use only if the user asked for an example.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢audit_restaurant_ops(name, location, placeId, googleMapsUrl, websiteUrl, ...)

Compare the public Google listing with the restaurant website and Yelp when available. Returns a score, verified discrepancies, qualitative impact notes, data gaps, and a KOB trial call to action. Never invent hours, ratings, or revenue. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "location": {
      "description": "Town, city, or postcode",
      "type": "string"
    },
    "placeId": {
      "type": "string"
    },
    "googleMapsUrl": {
      "type": "string"
    },
    "websiteUrl": {
      "description": "Override the website URL found on Google",
      "type": "string"
    },
    "example": {
      "description": "When true, return the labelled Harbour & Rye fixture and do not call live APIs. Use only if the user asked for an example.",
      "type": "boolean"
    },
    "client": {
      "description": "Calling assistant, used only for the trial link utm_source. Examples: claude, chatgpt, grok, copilot, gemini.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢draft_review_replies(restaurantName, placeId, googleMapsUrl, example, client, ...)

Draft owner replies to reviews the user pasted or that Google returned. Drafts are never posted. Skip reviews that already include an owner reply. Do not invent reviews.

입력 스키마

{
  "type": "object",
  "properties": {
    "restaurantName": {
      "type": "string"
    },
    "placeId": {
      "type": "string"
    },
    "googleMapsUrl": {
      "type": "string"
    },
    "example": {
      "description": "When true, return the labelled Harbour & Rye fixture and do not call live APIs. Use only if the user asked for an example.",
      "type": "boolean"
    },
    "client": {
      "description": "Calling assistant, used only for the trial link utm_source. Examples: claude, chatgpt, grok, copilot, gemini.",
      "type": "string"
    },
    "reviews": {
      "description": "Reviews the user supplied. When omitted, reviews are loaded from Google.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "author": {
            "type": "string"
          },
          "rating": {
            "type": "number",
            "minimum": 1,
            "maximum": 5
          },
          "text": {
            "type": "string"
          },
          "relativeTime": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string"
          },
          "ownerReply": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡capture_lead(restaurantName, email, town, website, placeId, ...)

Record a trial lead after the user typed their details and asked to be contacted. Requires consent:true. Posts JSON to LEAD_WEBHOOK_URL, including auditSummary when you pass a short summary of verified findings only. If that URL is unset and Resend is configured, email only the KOB inbox. If neither sink is configured, the result still contains the lead and the server logs it. Never email the restaurant. Does not change Google.

입력 스키마

{
  "type": "object",
  "properties": {
    "restaurantName": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "town": {
      "type": "string"
    },
    "website": {
      "type": "string"
    },
    "placeId": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "auditSummary": {
      "description": "Short summary of verified audit findings. Omit if there was no audit. Do not invent findings.",
      "type": "string"
    },
    "consent": {
      "type": "boolean",
      "description": "True only after the user asked to be contacted and supplied their details."
    },
    "client": {
      "description": "Calling assistant, used only for the trial link utm_source. Examples: claude, chatgpt, grok, copilot, gemini.",
      "type": "string"
    }
  },
  "required": [
    "consent"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개