Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

veddata

PYPI · VEDDATA · SCANNED SEP 20

MCP server for AI agents: discover a web page's data sources and drive the page to reach them.

Available components

+20 this week 70 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 26 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
Schema Quality & AI Usability70
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4917 tokens (~163/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 97% of tools have a non-trivial description (not blank, and not just the tool's name).Partial
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "ved_act" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the veddata MCP server?

veddata runs locally as a PyPI package, launched with uvx veddata. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · veddata

# add to Claude Code
claude mcp add sanzineo-veddata -- uvx veddata
// .cursor/mcp.json
{
  "mcpServers": {
    "sanzineo-veddata": {
      "command": "uvx",
      "args": [
        "veddata"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "sanzineo-veddata": {
      "command": "uvx",
      "args": [
        "veddata"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add sanzineo-veddata -- uvx veddata
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sanzineo-veddata": {
      "type": "local",
      "command": [
        "uvx",
        "veddata"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add sanzineo-veddata --command uvx --arg veddata
# ~/.hermes/config.yaml
mcp_servers:
  sanzineo-veddata:
    command: "uvx"
    args: ["veddata"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "sanzineo-veddata": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "veddata"
      ]
    }
  }
}
# add to Vellum
assistant mcp add sanzineo-veddata -t stdio -c uvx -a veddata
// mcp.json
{
  "mcpServers": {
    "sanzineo-veddata": {
      "command": "uvx",
      "args": [
        "veddata"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +15
    • Malware scan: unverified → pass security
  • 17 Sept 26 +4
    • Stability: unverified → 0.23 functional
  • 15 Sept 26 −15
    • Malware scan: pass → unverified security
  • 14 Sept 26 +15
    • Malware scan: unverified → pass security
  • 10 Sept 26 50

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/veddata@0.1.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 26 packages
Packages resolved 26
Stale 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 30 exposed · ~4,614 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
ved_act ~259

Execute actions on the page: input, scroll, click, or select. Two modes: 1. Single step: ved_act("scroll", "bottom") ved_act("input", "python教程", target="搜索") ved_act("click", target="下一页") ved_act("select", "最多播放", target="综合排序") ved_act("click", target="css=a[href*='/download/']") ← target 也接受选择器 ved_act("click", target="//a[contains(@href,'/download/')]") 2. Chain: ved_act(actions=[ {"action": "input", "value": "python教程", "target": "搜索"}, {"action": "scroll", "value": "bottom"}, {"action": "click", "target": "最多播放"}, ]) Each step reports new API method + path inline so AI sees them immediately.

NameTypeReqDescription
actionstring"input", "scroll", "click", or "select" (single mode).
actionsList of action dicts for chain mode.
targetVisible text of the target element.
valueText input or scroll target (bottom/top/down/up/px).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_apis ~114

列出已捕获的所有数据。包括网络请求、DOM 内嵌数据、JS 变量等。每条记录标注触发时机,不贴类型标签。

NameTypeReqDescription
keyword按 path 或响应体过滤(可选)。
limitinteger本次返回条数(默认 30)。
offsetinteger从第几条开始(默认 0)。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_chain ~706

工具链:一次把多个工具按顺序交给服务端连续执行。 解决 MCP 回合制的两个硬伤: 1. **别错过** —— 动作与等待/取样在服务端紧挨着跑,中间不经过模型, 瞬时事件(请求/日志/中间态/弹窗)不会被回合间隔吞掉。 2. **给因果** —— 每个动作步骤自动算差分,报告里直接写"+3 requests: …", AI 不用再靠"点前点后各取一次"去猜哪个请求是哪个动作触发的。 步骤(三种写法): {"tool": "ved_act", "args": {"action": "click", "target": "下一页"}} {"wait": {"network": "**/joblist**", "timeout": 8}} wait 支持:ms / network(等指定请求出现)/ network_idle(网络静默)/ element(+state=visible|hidden) {"repeat": {"times": 5, "steps": [ ... ]}} # 只允许一层,翻页用 典型链路(翻页抓接口:现在 12+ 回合 → 2 回合): ved_chain(steps=[ {"tool": "ved_open"}, {"tool": "ved_goto", "args": {"url": "https://…"}}, {"tool": "ved_watch", "args": {"observations": [{"type": "request", "pattern": "**/api/**"}]}}, {"tool": "ved_act", "args": {"action": "click", "target": "下一页"}}, {"wait": {"network_idle": 800, "timeout": 10}}, {"tool": "ved_watch", "args": {"collect": True, "timeout": 10}}, ]) 行为约定: - 撞上登录/验证/风控 → 停在该步;用户处理完用 ved_chain(resume="<id>:<步号>") 续跑,**不重放**前面动作 - 状态被工具之外改动(页面自跳 / 用户开标签页)→ 停,并说明原因 - 每步都过和单独调用时同一套门禁(链不是后门) - 只允许既有工具里的动作/读取类;ved_close 与 ved_chain 自身禁用 - 上限:30 步 / repeat 20 次 / 单步 30s / 整链 300s - 报告每步一行 + 因果差分,细节留服务端(用 ved_apis / ved_inspect / ved_watch(collect) 取)

NameTypeReqDescription
on_errorstring"stop"(默认)或 "continue"。
resumestring"<chain_id>:<步号>" —— 从该步继续跑同一条链。
step_delay_msinteger步间基础延迟(毫秒,另加 0~50% 随机抖动,贴近人的交互节奏)。
steps步骤列表。不传且 resume 为空时,列出最近执行过的链。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_close ~34

Close the browser and clear all captured data. Closes the Playwright context and resets all state. Returns: Status message.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

ved_console ~144

操作页面控制台:执行 JS / 查看 log/warn/error 消息。 code 非空 → 在页面执行 JS,返回执行结果。 code 为空 → 返回控制台历史消息(log/warn/error,来自官方内置缓冲)。 tail → 只看最近 N 条;filter → 按文本过滤。

NameTypeReqDescription
codestring要执行的 JS 代码(空 = 查看历史消息)。
filterstring按文本过滤消息。
tabstringCDP short ID(空 = 当前激活 tab)。
tailinteger只看最近 N 条消息(0 = 全部)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_context ~55

Search all data sources for keyword, returning field paths and values.

NameTypeReqDescription
keywordstringyesSearch term, or comma-separated terms for OR logic.
tabstringCDP short ID (empty = current active tab).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_cookies ~76

View cookies for the current page.

NameTypeReqDescription
all_domainsbooleanFalse = current domain only, True = all domains.
all_infobooleanFalse = name/value/domain only, True = include path/httpOnly/secure/expires.
tabstringCDP short ID (empty = current active tab).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_dom_locate ~144

通过路径定位一个 DOM 节点。 路径要**从根节点开始**(第一段必须匹配 ``html``)—— 例如 ``html > body.win > div#app > div.feed-card``(可直接从 ved_dom_tree 的输出里抄)。 段格式:``tag[.class][#id][:nth-child(n)]``,``>`` 分隔。

NameTypeReqDescription
depthinteger子树的显示深度(默认 3)。
pathstringyes节点路径(从 html 开始)。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_dom_search ~120

在内存 DOM 树中搜索文本。 不调浏览器,直接在保存的树结构里查找。返回匹配的节点路径和上下文。

NameTypeReqDescription
keywordstringyes搜索关键字(匹配文本/属性/id,大小写不敏感)。
limitinteger本次返回条数(默认 30)。
offsetinteger从第几处匹配开始(默认 0)。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_dom_tree ~106

输出当前页面的 DOM 目录树(内存快照,含容器/字段/交互标记)。 首次调用或页面导航后会自动重新扫描;此后从内存读取,不再调浏览器。

NameTypeReqDescription
depthinteger树的显示深度(默认 2,够看清结构;要细看传 4-8)。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_export ~146

导出捕获到的 API 数据源(一个或多个)。

NameTypeReqDescription
formatstring"raw" | "compact" | "both"(默认 both)。compact 只返回字段文档,不写盘。
indexintegerAPI ID(来自 ved_apis 输出)。用 indices 时传 0。
indicesstring逗号分隔的 API ID(如 "2,4"),优先于 index。
output_dir本次落盘目录(**绝对路径**),覆盖启动参数 --response-dir。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_export_all ~98

一次导出当前 tab 捕获到的所有 API 数据源。

NameTypeReqDescription
formatstring"raw" | "compact" | "both"(默认 both)。compact 只返回字段文档,不写盘。
output_dir本次落盘目录(**绝对路径**),覆盖启动参数 --response-dir。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_fetch ~107

获取页面全文,辅助定位数据关键词。当需要从页面文本中选取关键词来反查数据时使用。 First call scrolls to bottom and writes a JSON cache file. Subsequent calls with start_index read from cache (no re-scroll).

NameTypeReqDescription
max_lengthintegerCharacters per chunk (default 5000).
start_indexintegerStart position (default 0).
tabstringCDP short ID (empty = current active tab).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_goto ~164

导航到目标页面,自动发现所有数据来源。返回 DOM 结构、网络请求、内嵌数据清单。 Starts network monitoring BEFORE navigating (event-driven attach happens at tab registration, which precedes goto). Use new_tab=True to open in a new tab while keeping the current page.

NameTypeReqDescription
depthintegerDOM 树深度(默认 2,够看清结构;要细看传 4-8)。
limitinteger捕获清单预览条数(默认 10;完整清单用 ved_apis 分页取)。
new_tabbooleanTrue = create new tab; False = navigate current tab.
urlstringyesTarget URL to navigate to.
NameTypeReqDescription
resultstringyes

No examples provided.

ved_inspect ~96

Show full request and response details for one or more APIs.

NameTypeReqDescription
detailstring"preview" or "full".
indexintegerAPI ID (from ved_apis output). Use 0 when using indices.
indicesstringComma-separated API IDs (e.g. "2,4"). Overrides index.
tabstringCDP short ID (empty = current active tab).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_list_scripts ~133

列出页面所有 JS 脚本的 URL、大小和行数。 用于定位目标脚本后传给 ved_script_source。内联的 ``data:`` 脚本**只给摘要** —— 页面里常有几百 KB 的 wasm/base64,整段吐出来会一次性烧掉大量上下文。

NameTypeReqDescription
limitinteger本次返回个数(默认 30)。
offsetinteger从第几个脚本开始(默认 0)。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_open ~75

启动数据发现会话。打开浏览器以开始捕获页面数据源。浏览网页是前置步骤,不是终点。 Launches a Playwright Chromium session (persistent context) and clears old state. Does NOT navigate — use ved_goto() for that. Returns: Browser session status.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

ved_peek ~75

快速探测指定 URL 的数据源。打开页面 → 自动捕获 API → 返回字段文档。

NameTypeReqDescription
methodOptional HTTP method filter ("GET" or "POST").
path_containsOptional API path filter (e.g. "/search/notes").
urlstringyesTarget page URL.
NameTypeReqDescription
resultstringyes

No examples provided.

ved_request ~180

Send a test HTTP request — replay from captured API or fully custom. Two modes: 1. Replay: index=3, params='{"page":2}' — uses API #3's URL/method/headers. 2. Manual: url="...", method="POST", body="..." — fully custom. Cookies are auto-synced from the current browser tab.

NameTypeReqDescription
bodystringJSON string of request body.
headersstringJSON string of extra headers.
indexintegerAPI record number to replay (0 = manual mode).
methodstringHTTP method (default "GET").
paramsstringJSON string of query parameters.
tabstringCDP short ID for cookie sync (empty = current active tab).
urlstringRequest URL (manual mode).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_scan ~189

Comprehensive page data source scanner. MODE "all" — full page scan (default): 1. Network APIs — requests captured by the event listener 2. DOM Structure — snapshot tree with repeated-container marks 3. Embedded JSON — script-tag / window-global data records MODE "dom" — keyword-targeted DOM scan: Searches the in-memory DOM tree for the keyword.

NameTypeReqDescription
keywordFor mode "dom" — search keyword.
limitintegerFor mode "dom" — 本次返回条数(默认 30)。
modestring"all" for full scan, "dom" for keyword-targeted DOM scan.
offsetintegerFor mode "dom" — 从第几处匹配开始(默认 0)。
urlFor mode "dom" — optional URL to open before scanning.
NameTypeReqDescription
resultstringyes

No examples provided.

ved_screenshot ~81

截图当前页面。

NameTypeReqDescription
full_pagebooleanTrue = 整页,False = 当前视口。
namestring可选的文件名前缀(留空则只用站点名+时间戳)。
output_dir本次落盘目录(绝对路径),覆盖 --response-dir。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_script_source ~250

局部查看:查看某个脚本源码,支持搜索高亮和上下文。 url: 脚本 URL(从 ved_list_scripts 或 ved_search_scripts 获取)。 query: 搜索字符串,匹配行会高亮(>>> 前缀)——压缩成一行的 bundle 用这个,别翻页。 context_lines: 匹配行前后显示几行上下文。 start_line / line_count: 按行翻页(大文件分段读;单行超过 2000 字符会被截断)。 读到任意窗口即视为"已读该脚本":之后才允许在它上面打 JS 观测点(ved_watch 的先读后打)。

NameTypeReqDescription
context_linesinteger匹配行上下文行数。
line_countinteger每次显示行数。
querystring可选搜索字符串。
start_lineinteger起始行(0 = 从头)。
tabstringCDP short ID(空 = 当前激活 tab)。
urlstringyes脚本 URL。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_search ~83

在已捕获的所有数据中搜索关键词。包括网络请求、DOM 内嵌 JSON、页面渲染文本和 JS 全局变量。 Supports comma-separated keywords for OR search.

NameTypeReqDescription
keywordstringyesSearch term, or comma-separated terms for OR logic.
tabstringCDP short ID (empty = current active tab).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_search_scripts ~137

全局搜索:在所有已加载的 JS 源码中搜索字符串。 结果按文件分组,显示每个文件的匹配行数(有上限,见 limit / per_file)。 支持正则(query 以 / 开头和结尾时)。

NameTypeReqDescription
limitinteger最多显示几个文件(默认 5)。
per_fileinteger每个文件最多显示几行(默认 5)。
querystringyes搜索字符串,或 /regex/ 形式。
tabstringCDP short ID(空 = 当前激活 tab)。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_status ~117

状态体检:现在有哪些标签页、各自在哪个页面、有没有撞上人机门。 用户说"登录好了 / 验证过了"之后**先调这个** —— 不要重新导航(会再次触发风控)。 它同时是一次"重新建档":调过之后依赖活状态的工具才放行。 Returns: 浏览器模式、状态账本、当前页、标签页清单、捕获到的 API 条数、人机门判定。

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

ved_tab_close ~74

Close browser tab(s) by CDP short ID and prune their API records. Supports comma-separated IDs for batch close (e.g. "C724404D,5FD84E84"). Empty = close current tab.

NameTypeReqDescription
tabstringCDP short ID(s), comma-separated. Empty = current tab.
NameTypeReqDescription
resultstringyes

No examples provided.

ved_tab_switch ~57

Switch the active tab by CDP short ID (from ved_tabs output). After switching, ved_goto() targets the new tab.

NameTypeReqDescription
tabstringyesCDP short ID (first 8 chars, from ved_tabs output).
NameTypeReqDescription
resultstringyes

No examples provided.

ved_tabs ~80

List all open browser tabs with their URLs — 这是"重新建档"的入口。 页面自己跳走、用户开关标签页之后,依赖活状态的工具会被拒绝; 先调这个(或 ved_status)确认现状,再继续。 Returns: Tab list with short IDs, URLs, titles and current marker.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

ved_trace_value ~100

全局搜索一个值出现在哪些地方。 搜索范围: JS 源码 → 网络请求 → DOM 内嵌 → 渲染文本 → JS 变量 → WS。 每条匹配标注位置和上下文,支持直接设观测点。

NameTypeReqDescription
tabstringCDP short ID(空 = 当前激活 tab)。
valuestringyes要追踪的值(如 "userid")。
NameTypeReqDescription
resultstringyes

No examples provided.

ved_watch ~614

批量观测:注册请求/JS 观测点 → 触发操作 → 一次性取回快照。 四种用法(都不传 = 列出当前观测点): 1. 注册:``ved_watch(observations=[{...}, {...}])`` —— 一次可打多个点 2. 列表:``ved_watch()`` —— 看 id / 类型 / 目标 / 命中数 / 状态 3. 收集:``ved_watch(collect=True)`` —— 等所有点命中(或超时)后返回报告 4. 删除:``ved_watch(remove="w1,w3")``,``remove="all"`` 清空 observation 项: {"type": "request", "pattern": "/api/*"} — 请求(glob 或 /regex/) {"type": "js", "url": "...app.js", "line": 147, "variables": ["userid", "secret"]} — JS 断点(line 是 **1-based**) 可选字段:{"id": "login", "max": 1} id —— 自定义 id(缺省自动分配 w1/w2…,单调递增、跨批次不重复) max —— 该点最多记几次命中,默认 1;**达到后自动移除该点**(0 = 不限,仍受全局上限) 原理:JS 观测点用的是 CDP ``Debugger.setBreakpointByUrl`` —— 和人工断点同一个接口, 区别只在命中后自动读值并 resume,不打断页面。但也因此:断点打在热点行会反复中断, 所以默认只取第一次(要连续观察就调大 max)。 **先读后打**:JS 观测点要求先读过该脚本(``ved_script_source(url=...)``)。没读过会被 拒绝并提示去读;读完之后脚本变了(页面重载/内容不同)也要重读 —— 否则等于拿旧认知 在错误的行上设断点。请求观测点不涉及代码,没有这个要求。

NameTypeReqDescription
collectbooleanTrue = 等待收集并返回报告(保留观测点;清理用 remove)。
limitinteger报告里最多显示几条快照(默认 5)。
observations观测点列表。
removestring要删除的观测点 id,逗号分隔;"all" 表示全部删除。
tabstringCDP short ID(空 = 当前激活 tab)。
timeoutnumber收集超时秒数(默认 15)。
NameTypeReqDescription
resultstringyes

No examples provided.

Common questions

What is the veddata MCP server?

veddata is an MCP server listed in the public MCP registry as io.github.SanZiNEO/veddata. MCP server for AI agents: discover a web page's data sources and drive the page to reach them. This page covers its PyPI package (veddata).

Is the veddata MCP server safe to use?

veddata scores 70 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the veddata MCP server expose?

veddata exposes 30 tools: ved_open, ved_goto, ved_close, ved_tabs, ved_tab_switch, and 25 more. Their descriptions and schemas cost roughly 4,614 tokens of context every time the server is loaded.

Is the veddata MCP server still maintained?

veddata is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.