关于 Or Dmv
Or Dmv 是提供俄勒冈州 DMV 办公点信息和实时排队数据的 MCP 服务,适合查询现场等待时间或查找办事处,并将数据未报告与零分钟等待区分开。
主要功能
- 01按办事处查询实时等待时间
- 02按城市和地区筛选
- 03提供地址及联系方式
- 04将不可用等待数据标记为未报告
- 05排序并限制办事处结果
适用场景
- 01根据当前等待时间选择办事处
- 02按城市或邮编查找 DMV 办事处
- 03确认办事处是否营业或仅接受预约
MCP 相关
向 MCP 客户端提供俄勒冈州 DMV 等待时间和办事处详情工具。可通过 Pipeworx 网关使用,也可作为本地 stdio 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/or-dmv/mcpclaude mcp add --transport http pipeworx-io-or-dmv https://gateway.pipeworx.io/or-dmv/mcp{"mcpServers":{"pipeworx-io-or-dmv":{"type":"http","url":"https://gateway.pipeworx.io/or-dmv/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-or-dmv":{"type":"http","url":"https://gateway.pipeworx.io/or-dmv/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-or-dmv":{"type":"http","url":"https://gateway.pipeworx.io/or-dmv/mcp"}}}{"mcpServers":{"pipeworx-io-or-dmv":{"serverUrl":"https://gateway.pipeworx.io/or-dmv/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/or-dmv
Oregon DMV MCP——提供俄勒冈州全部 60 个 DMV 办事处的实时等候时间,以及同一份数据中的办事处查询功能。无需密钥。
属于 Pipeworx——一个将 AI Agent 连接到 1679+ 个实时数据源的 MCP 网关。
Oregon 和 North Carolina 是美国仅有的两个 DMV 会发布机器可读实时等候数据的州。其他州的数据要么受验证码限制、被云端出口屏蔽、无法使用,要么只在手机应用中提供。
工具
or_dmv_wait_times(office?, city?, region?, open_only?, sort?, limit?)— 各办事处的平均等候分钟数及当前排队人数。or_dmv_offices(office?, city?, zip?, region?, limit?)— 地址、城市、ZIP、电话、纬度/经度、ODOT 区域、是否仅限预约,以及办事处的 ODOT 页面。
身份验证
无需身份验证。无需密钥,也无需认证。
数据来源
https://dmv2u2.odot.state.or.us/waittimes/home/map
从 HTML 抓取——不存在 JSON 端点
在依赖此工具包之前,有一件事需要了解。
ODOT 在服务端渲染等候时间地图。其背后没有 API:人们可能会猜测的 /api 路径都不会返回任何内容。办事处数组被赋值给页面内联 <script> 标签中的 aveWaitModels。此工具包会查找该标识符,对其后面的数组字面量进行花括号匹配,然后调用 JSON.parse 解析结果。
因此,与基于 API 的工具包相比,俄勒冈州的数据结构更容易出问题——ODOT 模板一旦变更,就可能移动或重命名该标识符,导致提取失败,直到此工具包更新为止。这类失败会明确报告为(the Oregon wait-time page no longer contains the aveWaitModels office array),并提示使用 nc_dmv_wait_times,而不会被误报为我们的解析错误。
此工具包已处理的注意事项
非营业时间会返回 not_reporting,而不是零等待时间
在营业时间之外,ODOT 会将 waitTimeEnabled: false,同时保留 averageMinutesUntilServed 为 -1,并将 customersWaiting 设为 0。如果将其报告为零分钟等待,会让人以为“可以直接进来”,因此这些办事处会以 status: "not_reporting" 返回,并将 wait_minutes: null。
-1 是 ODOT 表示数据不可用的哨兵值;即使 waitTimeEnabled 为 true,它也可能出现,这种情况下同样会映射为 null。响应始终包含 offices_reporting;如果没有任何办事处在报告数据,note 会说明数据流已关闭,而不是表示队列为空。出于同样的原因,sort: "wait" 会将正在报告的办事处排在前面。
有意省略的字段
每个办事处都会提供 ipAddress 和一组 fieldOfficeMachine* 字段。这些是 ODOT 内部队列终端系统使用的字段,不会重新发布。其他字段都会原样传递,包括 open、appointmentOnly 和 closeDescription(作为 closure_note),它们包含有关办事处关闭状态的实际信息。
电话号码以纯十位数字字符串形式提供(5419672014),并会格式化为 (541) 967-2014。
区域
region 会匹配 ODOT 的六个区域分组:Central Oregon、Eastern Oregon、Portland Area、Southern Oregon、The Coast、Willamette Valley。
相关工具
nc_dmv_wait_times/nc_dmv_offices— North Carolina,另一个提供实时 DMV 等候数据的州。ca_dmv_offices— California 办事处(不提供等候数据)。
快速开始
将其添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"or-dmv": {
"url": "https://gateway.pipeworx.io/or-dmv/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/or-dmv/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、
discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于表中所列:单个工具包端点目前会在该工具包自有工具之外,列出大约 30 个共享工具。连接的 initialize 响应会说明其确切范围,是当日情况的权威答案。
这是有意为之,并非意外的多路复用。元工具让限定范围的连接也能回答此工具包未涵盖的问题——通过可跨整个目录路由的
ask_pipeworx,无需再添加第二个 MCP 服务。目前无法挂载不含这些元工具的工具包端点;如果额外的架构占用的上下文超过了路由带来的价值,请只连接一次完整网关,而不要连接多个工具包端点。
或者,连接完整的 Pipeworx 网关,直接列出每个工具包的工具,而不只是当前工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都会连接到同一个网关和相同的 1679+ 个数据源。唯一的区别是直接列出哪个工具包的工具;通过任一端点,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/or_dmv_wait_times \
-H 'Content-Type: application/json' \
-d '{"office":"Portland"}'
首次调用无需账号。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/or_dmv_wait_times。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账号)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账号,也无需往返网关:
{
"mcpServers": {
"or-dmv": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-or-dmv"]
}
}
}
或者直接运行,以确认服务可以启动:
npx -y @pipeworx/mcp-or-dmv
它通过 stdin/stdout 使用 MCP,并为 initialize/tools/list/tools/call 提供响应,仅限此工具包的工具——不含上述网关连接所添加的任何共享元工具。相同的源代码,相同的工具,没有 ask_pipeworx 路由。
使用 ask_pipeworx
你可以不用直接调用工具,而是用通俗的英语提问——此功能既适用于上面的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Or Dmv data" })
网关会选择合适的工具,并自动填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。