mcpField
V
voyager

voyager

本地服务
github.com/dir-ai开发工具014 周前更新

关于 voyager

voyager 是面向编码 Agent 的网络资料检索与软件包核验 MCP 服务,将查询整理为带引用和置信度的简报。它以 OSV 漏洞门禁、来源信息及注入内容过滤来处理检索结果。

主要功能

  1. 01核验 npm 与 PyPI 软件包
  2. 02通过 OSV 漏洞门禁
  3. 03生成带引用和置信度的简报
  4. 04检索 GitHub、官方文档与网页
  5. 05过滤提示注入内容并标注证据
  6. 06可在隔离容器中复现安装

适用场景

  1. 01在 CI 中拦截有漏洞的依赖
  2. 02为编码 Agent 汇总网络资料
  3. 03发现 GitHub 项目并查阅官方文档
  4. 04隔离测试软件包能否安装和加载

MCP 相关

提供 MCP 服务,向客户端开放 check_package、retrieve、discover_repos 和 fetch_docs 工具,用于软件包核验与资料检索。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dir-ai-voyager": {
"command": "npx",
"args": [
"-y",
"@dir-ai/voyager"
]
}
}
}
启动命令npx -y @dir-ai/voyager

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@dir-ai/voyager1.4.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
namestring是
versionstring否可选的固定版本(默认:latest)。
ecosystemenum否npm | pypi
projectDepsobject否name → range:针对你的技术栈进行 peer 兼容性检查。
proveInTwinboolean否在隔离容器中安装并进行 smoke-import,以将信念提升为已复现(仅限可信机器)。

详细介绍

voyager

面向编码 Agent 的可信简报生成器。

能够访问开放互联网的 AI 编码 Agent 会获取未经处理、未经签名且可能被投毒的信息块,并将其直接输入自己的提示词。voyager 则位于信息流前端:它将查询转化为带引用、经置信度评分、通过 OSV 门控并强化了注入防护的简报——这是模型唯一能看到的内容。

每条声明都附带来源信息和置信度信号。软件包推荐须通过失败关闭的 OSV 漏洞门控,在有相关信息时展示构建来源信息(npm SLSA 证明),并可在一次性隔离环境中复现——在经过强化、无根且网络隔离的容器内安装并运行冒烟导入测试(绝不在主机上运行)。这能证明软件包可以安装且其入口点可以加载;但不能证明其安全。所有抓取的文本都会被剥除指令形态的载荷(多语言、base64 以及 Markdown / HTML 向量),并被标记为不可信证据,模型必须分析,绝不可遵从。

  • check — 此软件包是否可以安全使用?注册表事实 + OSV 门控(失败关闭)+ 来源信息/许可证/发布时间等供应链信号 + 可选的隔离环境复现。 退出码:0 正常 · 1 已拒绝(不安全)· 2 工具/用法错误(无判定结果)。
  • brief / retrieve — 带引用的简报,整合软件包验证、GitHub 发现、权威文档和开放网络搜索,并对各项信息进行交叉引用。
  • 由设计保障安全 — 单一出站允许列表、仅限 https、流式大小上限、注入剥除 + 证据标记。除非发起查询,否则不产生网络流量。

CLI、库和 MCP 服务。

安装

npm i @dir-ai/voyager
npx -y @dir-ai/voyager check express

CLI

voyager check <name> [--ecosystem npm|pypi] [--version V] [--twin]   # exit 1 if unsafe
voyager brief "<query>" [--package name] [--discover "<intent>"] [--search "<q>"] [--docs <lib>]
voyager discover "<intent>"     # GitHub repo discovery (Tier-A)
voyager search "<query>"        # open-web search (Tier-C, needs a key)
voyager docs <library>          # canonical docs (Tier-B)
voyager doctor                  # which source keys are configured

check 可用作自然的 CI 门控:如果 Agent 选择了易受攻击、已弃用或不存在的依赖项,就让构建失败。

库

import { checkPackage, voyagerRetrieve, setKeyResolver } from '@dir-ai/voyager'

const v = await checkPackage({ name: 'express', ecosystem: 'npm' })
// → { verdict: 'belief' | 'fact' | 'rejected', claim, steps }  (adversarial trace)

const brief = await voyagerRetrieve('a safe date library', {
  packages: [{ name: 'date-fns', ecosystem: 'npm' }],
  discover: 'date library',
})
brief.rendered   // the injection-hardened, framed text to feed a model
brief.claims     // structured, cited, confidence-scored

// Bring your own key store (default is env vars):
setKeyResolver((provider) => mySecrets.get(provider))

MCP 服务

// .mcp.json
{
  "mcpServers": {
    "voyager": { "command": "npx", "args": ["-y", "@dir-ai/voyager", "mcp"] }
  }
}

工具:check_package、retrieve、discover_repos、fetch_docs。

Docker

docker run --rm ghcr.io/dir-ai/voyager check express
docker run -i --rm ghcr.io/dir-ai/voyager mcp   # stdio MCP

层级与信任

层级来源基础信任度
AGitHub · npm · PyPI · OSV(结构化事实)高
B权威文档(仅官方主机)高
C开放网络搜索(Tavily / Exa / Apify)低——信任前需交叉引用
D隔离环境复现(在容器中安装并运行冒烟测试)用于复现,不是安全证明

密钥为可选项:Tier-A 核心(npm/PyPI/OSV,以及未经身份验证的 GitHub)无需密钥。没有密钥时,各 Tier-C 提供方都会直接跳过。设置 GITHUB_TOKEN、TAVILY_API_KEY 等,或注入一个解析器。

安全状况

使用单一出站允许列表(固定的一组公共 API 主机)、仅限 https、redirect: error、会在超大响应体下载过程中中止的流式字节上限,以及注入剥除机制。该机制会移除角色劫持内容 / 聊天模板令牌 / 零宽字符和双向文本控制字符,对 base64 解码后重新扫描,消除 Markdown 图片和 HTML 注释,并匹配多种语言中的指令载荷。真正的防护来自标记机制——剥除机制可防止其被轻易绕过。复现环境仅在经过强化、网络隔离、只读、非 root 的容器内运行软件包代码;如果没有容器运行时,它会拒绝运行(返回 unsupported),而不是在主机上执行。请参阅 SECURITY.md。

缓存

幂等的 Tier-A 事实(npm / PyPI / OSV)会在进程内以及磁盘上的 ~/.voyager/cache 中缓存(基于内容寻址,带 TTL),使重复检查更快、缓存可跨运行保留,并减少网络依赖。任何密钥都不会被写入(身份验证标头绝不会成为缓存键或缓存值)。VOYAGER_NO_CACHE=1 可禁用缓存;VOYAGER_CACHE_DIR 可更改缓存目录。

路线图

基于 deps.dev 的多生态系统事实(crates / Go / RubyGems / Packagist)、拼写相似包检测、PyPI/cargo 复现环境。欢迎贡献。

许可证

MIT © dir-ai

评论

支持 Markdown

第一次接触 MCP?

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

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