Token导航 LogoToken导航

MCP Server · AI代理

Opentable MCP

一个基于MCP协议的服务器,为AI助手提供搜索餐厅、检查实时预订可用性、拉取菜单和阅读评论的功能。

stdio官方级别未说明来源级核验工具 5playwright
TypeScriptClaudeAI代理CursorWindsurf

快速开始

作者 / 组织
duaragha
提供方
duaragha
运行时
Node.js

工具数量

5

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Opentable MCP 属于AI代理类 MCP Server,公开资料标注 5 个工具,通过stdio 本地进程接入,适配 Claude、Cursor、Windsurf,有可以直接复制的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

npx playwright install chromium

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 5 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

OpenTable MCP服务器

一 主控程序 服务器,使人工智能助手能够搜索餐馆,检查实时预订情况,提取菜单,并直接从OpenTable读取评论-无需API键。

内置于 剧作家 用于从OpenTable的React前端进行可靠的数据提取。

特性

  • 搜索 按名称、菜肴、地点、日期、时间和聚会规模列出的餐厅
  • 检查可用性 对于特定的餐厅、日期、时间和聚会规模,返回实际可预订的时段
  • 获取餐厅详细信息 包括营业时间、地址、价格范围、着装要求、停车位等
  • 拉式菜单 包含部分、项目名称、描述和价格
  • 阅读评论 包括总分、维度评分(食物、服务、氛围、价值)、噪音水平和个人评论文本

工具

工具说明参数
search_restaurants在OpenTable中搜索餐厅query, location, date?, time?, partySize?
check_availability检查可用的预订时段restaurantUrl, date, time, partySize
get_restaurant_details获取完整的餐厅信息(营业时间、地址等)restaurantUrl
get_restaurant_menu拉取当前菜单restaurantUrl
get_restaurant_reviews获取评分和评论文本restaurantUrl, maxReviews?, sortBy?

快速开始

先决条件

  • 包子 (推荐)或 18+
  • Playwright捆绑的Chromium(在下面的设置步骤中自动安装),或基于Chromium的浏览器(Edge、Chrome)

1.克隆和构建

git clone https://github.com/duaragha/opentable-mcp.git
cd opentable-mcp
bun install
bunx playwright install chromium
bun run build

Using npm instead of bun

git clone https://github.com/duaragha/opentable-mcp.git
cd opentable-mcp
npm install
npx playwright install chromium
npm run build

2.连接到您的AI客户端

选择以下选项之一:

克劳德代码(CLI)

添加 ~/.claude/settings.json:

{
  "mcpServers": {
    "opentable": {
      "command": "bun",
      "args": ["/absolute/path/to/opentable-mcp/build/index.js"]
    }
  }
}
克劳德桌面

添加到您的 claude_desktop_config.json:

操作系统配置路径
macOS~/Library/Application Support/Claude/claude_desktop_config.json
窗户%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "opentable": {
      "command": "bun",
      "args": ["/absolute/path/to/opentable-mcp/build/index.js"]
    }
  }
}
Cursor/Windsurf/其他MCP客户端

遵循客户的MCP服务器配置文档。服务器通过以下方式进行通信 标准 使用标准MCP协议。

{
  "command": "bun",
  "args": ["/absolute/path/to/opentable-mcp/build/index.js"]
}

3.配置浏览器(推荐)

重要提示: OpenTable的反机器人保护可能会阻止Playwright捆绑的Chromium。建议使用本地安装的浏览器(Edge或Chrome)以获得可靠的结果。通过环境变量进行配置:

变量默认值描述
OPENTABLE_BROWSER_CHANNEL*(捆绑铬)*要使用的浏览器: msedge, chrome,或省略铬
OPENTABLE_LOCALEen-US浏览器区域设置(例如。 en-CA, en-GB, fr-FR)
OPENTABLE_TIMEZONE*(系统时区)*IANA时区(例如。 America/Toronto, Europe/London)

Edge示例(推荐):

{
  "mcpServers": {
    "opentable": {
      "command": "bun",
      "args": ["/absolute/path/to/opentable-mcp/build/index.js"],
      "env": {
        "OPENTABLE_BROWSER_CHANNEL": "msedge",
        "OPENTABLE_LOCALE": "en-CA",
        "OPENTABLE_TIMEZONE": "America/Toronto"
      }
    }
  }
}

4.重新启动AI客户端

添加配置后,重新启动客户端。OpenTable工具现在应该可用了。

使用示例

连接后,只需自然地与您的AI助手交谈:

搜索餐馆

“在多伦多约克维尔寻找高档意大利餐厅”
“下周五晚上7点在曼哈顿为4人搜索寿司店”

检查预订可用性

“4月4日下午3点,Trattoria Nervosa有5个人的桌子吗?”
“查看本周六晚上BLU Ristorante的2人餐厅的空房情况”

获取餐厅详细信息

“索托索托的营业时间和着装要求是什么?”
“告诉我独木舟餐厅的情况——地址、停车场、价格范围”

拉菜单

“给我看看乔治餐厅的晚餐菜单”
“Amal的菜单上有什么素食选择?”

阅读评论

“人们对La Vecchia有什么看法?查看最新评论”
“获取Miku Toronto的最高评价”

工具参考

search_restaurants

搜索OpenTable的餐厅目录。

参数类型必填说明
querystringYes餐厅名称、菜肴或关键字(例如。 "Italian", "Trattoria Nervosa")
locationstringYes城市或社区(例如。 "Toronto", "Yorkville Toronto")
datestring否日期 YYYY-MM-DD 格式
timestring否时间 HH:MM 24小时制(例如。 "19:00")
partySizenumber否客人数量

退货: 一系列餐厅,包括名称、网址、菜肴、价格范围、评级、评论数、邻居。

______________________________________________________________________

check_availability

查看特定餐厅的实时预订情况。

参数类型必填说明
restaurantUrlstring是完整OpenTable URL(例如。 https://www.opentable.ca/r/trattoria-nervosa-toronto)
datestring是日期 YYYY-MM-DD 格式
timestring是所需时间 HH:MM 24小时制
partySizenumber是客人数量

退货: 餐厅名称、请求的参数、可用时段和任何状态消息(例如“无空房”、“通知我”)。

______________________________________________________________________

get_restaurant_details

获取餐厅的详细信息。

参数类型必填说明
restaurantUrlstring是完整OpenTable URL

退货: 姓名、地址、邻居、美食、价格范围、评级、评论数、描述、营业时间、用餐风格、着装要求、停车位、付款方式、网站、电话、标签。

______________________________________________________________________

get_restaurant_menu

从OpenTable中提取餐厅的菜单。

参数类型必填说明
restaurantUrlstring是完整OpenTable URL

退货: 菜单部分数组,每个部分都有部分名称和项目(名称、描述、价格)。

注意:并非所有餐厅都会将完整菜单上传到OpenTable。如果菜单是空的,请尝试查看餐厅自己的网站。

______________________________________________________________________

get_restaurant_reviews

获取餐厅的评级和评论。

参数类型必填说明
restaurantUrlstring是完整OpenTable URL
maxReviewsnumber否最多可返回评论数(默认值:10)
sortBystring否"newest", "highest",或 "lowest" (默认值: "newest")

退货: 总体评分、食品/服务/氛围/价值评分、噪音水平、总评论数以及带有文字、日期和评级的个人评论。

运作原理

OpenTable的网站是一个React/Next.js单页应用程序。传统的HTTP抓取不起作用,因为内容是在客户端呈现的,并受到反机器人措施的保护。

此服务器使用 混合提取方法:

  1. Playwright浏览器自动化 --启动一个无头Chromium浏览器,像真实用户一样加载页面
  2. 网络侦听 -捕获OpenTable前端从其后端获取的JSON API响应(比HTML更干净、更结构化)
  3. DOM解析 -当API拦截没有捕获所有内容时,从呈现的页面中提取数据作为后备

这使得它比纯粹的CSS选择器抓取更可靠,每次OpenTable更改类名时,这种抓取都会中断。

建筑

src/
  index.ts              # MCP server entry point, tool registration
  browser.ts            # Shared Playwright browser lifecycle
  types.ts              # TypeScript interfaces
  tools/
    search.ts           # search_restaurants implementation
    availability.ts     # check_availability implementation
    details.ts          # get_restaurant_details implementation
    menu.ts             # get_restaurant_menu implementation
    reviews.ts          # get_restaurant_reviews implementation

发展

# Watch mode — recompiles on file changes
bun run dev

# One-time build
bun run build

# Run the server directly
bun run start

MCP检验员测试

这 MCP检查员 允许您在没有AI客户端的情况下交互式测试工具:

bunx @modelcontextprotocol/inspector bun build/index.js

这将打开一个web UI,您可以在其中列出工具、填写参数并查看原始响应。

调试

服务器登录到 stderr (不是 stdout,这是为MCP协议消息保留的)。要查看日志,请执行以下操作:

bun build/index.js 2>debug.log

故障排除

“找不到浏览器”或剧作家错误

bunx playwright install chromium

服务器未启动/未显示任何工具

确保你先构建:

bun run build

验证服务器初始化:

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | bun build/index.js

OpenTable页面上的超时

OpenTable的加载速度可能较慢。默认超时为每页加载30秒。如果你的连接速度很慢,你可能需要增加源代码的超时时间。

搜索或菜单中的空结果

OpenTable的页面结构会定期更改。如果工具返回空数据,CSS选择器可能需要更新。打开一个问题或PR。

贡献

PR欢迎。如果OpenTable更改了它们的页面结构并且工具中断,修复通常是更新相关CSS选择器 src/tools/*.ts 文件。

许可证

麻省理工学院

工具与能力

工具数量

5

资源数量

0

提示词数量

0

能力标签

餐厅搜索TypeScript本地部署预订管理菜单获取评论阅读AI助手

支持客户端

ClaudeCursorWindsurf

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 5 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor、Windsurf,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Opentable MCP

MCP World · 本页

5stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Opentable MCP 怎么安装?

公开资料给出的安装命令是 npx playwright install chromium,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Opentable MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Opentable MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Opentable MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Opentable MCP 支持哪些客户端?

公开资料标注支持 Claude、Cursor、Windsurf;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP