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,547Token(工具定義)
~1.7 KB典型回應大小
中等的注意力影響(128k 上下文的 1.21%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `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 個工具