mcpField
T
The Service Marketing Guys Audit

The Service Marketing Guys Audit

远程服务
theservicemarketingguys.com商业与营销07 周前更新

关于 The Service Marketing Guys Audit

面向本地服务企业的 Open Service Profile 规范、校验器和生成工具,帮助业主发布机器可读的业务信息,并将网站未说明的事实标为 TODO。

主要功能

  1. 01六种用于资料与预约的 MCP 工具
  2. 02JSON Schema 与清单校验
  3. 03基于网站生成资料和 llms.txt
  4. 04未说明的事实保留为 TODO

适用场景

  1. 01发布服务范围、营业时间和预约政策
  2. 02根据企业网站起草资料
  3. 03按规范校验清单

MCP 相关

该规范定义六种 MCP 工具,用于读取资料、检查服务覆盖范围与可预约时间,以及提交预约请求。请求不代表预约已确认;生成工具本身不构建 MCP 服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://www.theservicemarketingguys.com/api/audit-mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Open Service Profile

Open Service Profile(OSP)是一种机器可读的本地服务企业描述,发布在 /.well-known/open-service-profile,用于告知 AI Agent 企业的业务内容、服务区域、营业时间,以及如何请求预约。

它适用于上门服务和到店服务行业:暖通空调、管道、电气、园林绿化、汽车维修、船舶维修等。清单包含身份信息、地点和营业时间、服务项目、ZIP 覆盖范围,以及预约政策。通过模型上下文协议,Agent 可使用六种工具读取资料、查询服务范围、查询可预约时间并提交预约请求。预约请求只是请求,而非确认;规范明确了这一语义,确保 Agent 不会在预约尚未成立时告诉客户预约已成功。

状态

草案 v0.1,于 2026-09-07 发布,并于 2026-09-09 修订(0.1.0-draft.4,纯文本修订)。该草案已足够稳定,可供实现。在 1.0 版本发布前,变更将通过带版本号的发行版发布,并附带变更日志;有关变更决策方式,请参阅 CONTRIBUTING.md。

规范

spec/ 中的 Markdown 是源文本。网站是规范的正式呈现版本,引用时应使用上面的版本化 URL。

维护者

The Service Marketing Guys,一家 EasyServe 公司。欢迎在此提交问题和拉取请求。

此存储库包含什么

spec/
  v0.1.md                         specification source text
schemas/v0.1/
  manifest.schema.json            Appendix A, the manifest document
  tools/
    tools-common.schema.json      shared definitions for tool schemas
    <tool>.input.schema.json      one per tool, Appendix B
    <tool>.output.schema.json     one per tool, Appendix B
examples/v0.1/
  hvac-two-locations.json         Appendix C.1
  auto-repair-single-location.json  Appendix C.2
  marine-repair-yard.json         Appendix C.3
  hvac-two-locations.level1.jsonld  Appendix C.4, Level 1 JSON-LD for the C.1 business
scripts/
  validate-examples.mjs           validates the examples against the manifest schema and the Appendix A constraints
  extract-from-spec.mjs           regenerates schemas/ and examples/ from spec/v0.1.md
bin/
  open-service-profile.mjs        the generator CLI (npx open-service-profile init <url>)
src/
  validate.mjs                    the examples script's and the CLI's validator, a thin call into the generated core
  crawl.mjs                       the CLI's bounded site crawl: pinned connections, private-address policy, host fence
  places.mjs                      optional Google listing lookup (your own key)
  core/                           GENERATED generator core; source of truth is the maintainer's TypeScript
tests/
  cli.test.mjs                    node --test; fixture sites under tests/fixtures/

每种工具的输出架构都是由成功形态和错误形态组成的 oneOf。错误形态为 tools-common.schema.json#/$defs/ErrorResult,并在每种工具的架构中限制为该工具对应的错误代码。

运行 npm run validate 检查示例。此项目没有依赖项。

生成你的资料

此存储库还提供了一个小型命令行工具,可根据企业自己的网站起草 Open Service Profile。它还会生成企业的 llms.txt。需要 Node 20 或更高版本,无依赖项。

npx open-service-profile init example.com

它最多读取十二个页面(主页、联系页面、预约页面、关于页面,然后是网站地图中的服务页面和地点页面),并将五个文件写入 ./open-service-profile/:

文件托管路径
open-service-profile.json/.well-known/open-service-profile,以 application/json 提供,并设置 Access-Control-Allow-Origin: *
llms.txt/llms.txt
llms-full.txt/llms-full.txt(列出每项事实及其来源页面,以及各派生值的生成方式)
robots-ai-section.txt合并到 /robots.txt(在回答两个爬虫问题前,这是一个带注释的模板)
jsonld.html粘贴到主页的 <head> 中(Level 1 JSON-LD:包含 ScheduleAction 的 LocalBusiness 节点)

有一条规则适用于每一行:如果页面没有明确说明某项事实,就将其写为 # TODO: 行,而不是使用看似合理的默认值。不会编造价格、营业时间、服务项目或资质;只有在实际读取的页面中出现过的服务才会列出;页面标记中找到的评分或评论数绝不会复制(规范禁止这样做)。只有在所有 Level 1 事实均已确认、没有任何值是从措辞推断得出、清单通过附录 A 的校验,并且主页已经包含 Level 1 JSON-LD 时,草案才会声明达到 Level 1;它绝不会声明达到 Level 2,因为此工具不会构建 MCP 服务。 有些信息没有任何网站说明,因此工具会提问,而不是猜测:预约政策(最早接受预约的日期、是否接受周末预约、是否提供紧急服务或非营业时间服务、如何确认预约)、两个 robots.txt 选项(AI 助手是否可以读取你的页面;是否可以将其用于训练),以及仅在页面无法确定时询问的服务模式(只要识别出一种已确认的业务类型即可)、主要服务地点(按定义,一个地点是主要地点)和时区(如果州位于同一时区即可确定)。通过标志传入这些信息,或在终端中运行并回答问题;未回答的字段会保留为 TODO 行。三个标准时段仅按 ID 填写,不写具体时刻。

npx open-service-profile init example.com --min-days-ahead 1 --weekend-requests saturday_only --emergency no --contact-methods call,email --ai-read yes --ai-train no

选项:

  • --min-days-ahead <n>(0 到 60)、--weekend-requests <allowed|saturday_only|not_allowed>、--emergency <yes|no>、--contact-methods <call,text,email>:用你自己的说法描述预约政策。
  • --ai-read <yes|no>、--ai-train <yes|no>:robots.txt 选项。不提供这些选项时,该部分会生成注释模板,不会产生任何更改。
  • --service-model <on_site|in_shop|both>、--primary <city or id>、--time-zone <IANA zone>:仅在页面无法确定时询问。
  • --place-id <id> 还会通过 Places API 使用你自己的 GOOGLE_PLACES_API_KEY 读取商家的 Google Business Profile 商家信息。商家信息只用于补充网站上缺失的内容,绝不会覆盖网站信息;并且只有在确认该商家信息属于此商家后才会使用(其网站与爬取的网站一致,或者该商家信息未列出网站时,其电话号码或名称和邮政编码与网站一致)。
  • --out <dir> 用于选择文件的输出位置。使用 --json 则会将完整结果(清单、文件、TODO 列表、带来源的事实)打印到标准输出。
  • --verbose 会在每次获取 URL 时打印该 URL。

爬取过程会拒绝私有、环回、链路本地、唯一本地、多播和云元数据地址,包括所有嵌入 IPv4 地址的 IPv6 形式(映射、兼容、NAT64)。每个主机名只解析一次,判定后会将连接固定到已判定的地址;重定向和站点地图子项只能指向同一主机或其 www 镜像。没有任何选项可以放宽此限制。

同一生成器也作为网页工具运行在其上级网站上:https://www.theservicemarketingguys.com/tools/open-service-profile

生成器的核心(src/core/)由维护者的 TypeScript 生成,并带有说明这一点的标头;请在源文件中编辑,而不要在此处编辑。清单验证器是该核心的一部分,因此网页工具、公开审计、此 CLI 和 npm run validate 都通过同一实现来判断清单。src/crawl.mjs、src/places.mjs、src/validate.mjs 和 bin/ 是此仓库自有的文件。运行 npm test 以执行 CLI 测试(使用 Node 内置运行器,测试夹具网站通过固定连接在本地提供服务)。

技能

skills/ 包含两个 Agent Skills:open-service-profile 适用于代表客户采取行动的 Agent(发现清单、读取清单、调用工具,并按照同意规则发送预约请求);open-service-profile-publish 适用于发布资料的开发者或网站所有者。使用 npx skills add buildmodus/open-service-profile 安装。详见 skills/README.md。

实现

The Service Marketing Guys 在其客户网站上提供 Level 2 清单,清单由驱动各网站的相同数据构建。示例:https://coastalecoheatair.com/.well-known/open-service-profile

规范的附录 D 列出了参考实现与规范仍存在差异的地方。

如何提议更改

提交 issue 或 pull request。CONTRIBUTING.md 说明提案应包含哪些内容,以及如何作出决策和发布版本。尤其欢迎报告规范与实际实现不一致之处。

引用

请引用带版本号的规范,而非此仓库。CITATION.cff 中提供了首选引用方式,GitHub 的“引用此仓库”按钮也会读取该文件。

许可

不同文件适用不同许可证:

  • 规范文本(spec/):知识共享署名 4.0 国际许可协议。请参阅 LICENSE-SPEC.md。
  • JSON Schema、示例、脚本和生成器(schemas/、examples/、scripts/、src/、bin/、tests/):MIT 许可证。请参阅 LICENSE。

版权所有 2026 EasyServe LLC。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。