mcpField
O
Or Dmv

Or Dmv

远程服务
pipeworx.io法律与政务05 周前更新

关于 Or Dmv

Or Dmv 是提供俄勒冈州 DMV 办公点信息和实时排队数据的 MCP 服务,适合查询现场等待时间或查找办事处,并将数据未报告与零分钟等待区分开。

主要功能

  1. 01按办事处查询实时等待时间
  2. 02按城市和地区筛选
  3. 03提供地址及联系方式
  4. 04将不可用等待数据标记为未报告
  5. 05排序并限制办事处结果

适用场景

  1. 01根据当前等待时间选择办事处
  2. 02按城市或邮编查找 DMV 办事处
  3. 03确认办事处是否营业或仅接受预约

MCP 相关

向 MCP 客户端提供俄勒冈州 DMV 等待时间和办事处详情工具。可通过 Pipeworx 网关使用,也可作为本地 stdio 服务运行。

配置

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

服务地址https://gateway.pipeworx.io/or-dmv/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 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

@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

评论

支持 Markdown

第一次接触 MCP?

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

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