@descryy/mcp

中文文档
0.23.1发布于 2026/10/30MITTypeScriptES Module近 30 天下载 2454

Descry的MCP服务器:代理发车前门过查询层. stdio运输是JSON-RPC 2.0由手接取,而不是17个HTTP和OAuth的包. 18个工具;大多数阅读了图表,没有其他工具。 @ descryy 依赖性在此 f

中文使用文档
文档目录12 节
  1. 所需资源
  2. 快速启动
  3. 工具
  4. 确认行动
  5. 运行评价
  6. 读取结果
  7. 解决问题
  8. 分析说没有源代码读取/ 适配器未确认
  9. Claude 代码权限和自动模式
  10. 已知限制
  11. 隐私
  12. 许可证

@descryy/ mcp (英语)

Descry的MCP服务器. 它将一个寄存器的源头读入一个代码,路线,表格和测试的图中,让一个编码代理来问该图一个变化到达了什么,测试了什么,以及应用程序运行时什么中断.

它报告了一些调查结果,可以提出证据,并明确列出它无法核实的内容。 无法读到的东西被报告为"不可分析",从未如此干净.

一切都运行在你的机器上。 地图是存放在仓库里的 .descry/ 文件夹.

所需资源

  • 节点(Node.js 22.5或更新)(该图使用节点所建的SQLite).
  • 一个有至少一个承诺的 Git 仓库 。 图表中每个节点都用它读到的承诺来盖上印章,所以一个不是寄存器的文件夹,或者一个没有承诺的寄存器无法被建造.
  • Linux 用于沙箱跑道. 这个 observe 财务报告和审定财务报表 generate_test 工具在沙盒内运行您的代码 : 默认的泡泡包装, 网络被拒绝, 或者 Docker 带有 sandboxBackend: "container"如果两者都不起作用,它们就拒绝启动而不是运行不受限制。 Descry自己的测试在Linux上运行;macOS和Windows还没有被验证.
  • Chromium,只用于浏览器工具. npx -y @descryy/cli setup 安装它。 没有它,这些工具拒绝并说原因.

快速启动

  1. 在寄存器中,写入其配置 :

    npx -y @descryy/cli init
    

    这将检测识别寄存器的语言适配器, 并将其写入 .descry/config.json,并用此服务器的精确版本打印下两个步骤.

  2. 向您的代理注册服务器 。 克劳德代码:

    claude mcp add descry --scope local -- npx -y @descryy/mcp@<version> "$(pwd)"
    

    使用该版本 init 已打印过。 对于任何其他MCP客户端来说,服务器是一个stdio命令: npx 与论据 -y, (中文(简体) ), @descryy/mcp@<version>,以及存储器的绝对路径.

  3. 在经纪人,呼叫 workspace 带有动词的工具 analyze (或运行) npx -y @descryy/cli analyze) (中文(简体) ). 这张图就是这个 每一个其他工具然后从中解答,大多数工具会先用它来建立自己.

无寄存器 .descry/config.json或者一个没有 sources,连接但无法构建。 任何工具的首个回复都这么说 并命名固定:运行 init 命令上方,或调用 workspace 动词 setup。 。 。 .

提交 .descry/config.json 财务报告和审定财务报表 .descry/.gitignore。所有其它内容 .descry/ 这是机器的,被git忽略.

工具

十八个工具 十九个工具, descry_confirm只有客户在每次通话前都会询问当事人 班上说一个电话能做什么: read 只读, stateful-read 可写出Descry自己的衍生文件(图表、目录),并可安全重复 action 执行不是普通读取(运行寄存器代码、驱动浏览器、或写配置或存储)的东西。 工具的类是其最严格的动词. tools/list 还携带 verbClasses 对于一个动词不同的工具, 和每个答复的 class 是被称作动词的类,所以 questions 没有记录 read,一个答案是 stateful-read 财务报告和审定财务报表 workspace 动词 analyze 实值 stateful-read。一个动词,如果一个调用时没有可确认的运行,无论它的工具等级如何;每个工具的描述都表示哪个动词先问.

工具类它会做什么
workspace动作构建图表( E)analyze,状态读取),跨链接寄存器构建一个图表(index),宣布共享的工作空间(link),停止读取共享图表或去除死链接(unlink,写入此寄存器的适配器(setup,确认适配器的配置名称(trust_sources) (中文(简体) ).
change_scope动作Diff的爆炸半径(diff),即一个分支与其合并基分拆成测试和未测试的分支(pr),或每一次在回复中进行预推检查(pre_push,这需要 head 以审查一个未检查的分支,所有只读. record 存储符号分支更改 check cross_pr 可以与其他分支进行比较 forget 移除一个.
code_context读取按名称查找代码( N)search,概要文件或文件夹 (outline),爆炸半径并覆盖试验和事故(impact),合并变化的文件(history),其中值流动(propagation),点击处理器(chain),排名为失败原因(root_cause) (中文(简体) ).
git_context读取生活读取了git,而不是存储的图:diff(diff)和一个文件的历史(log) (中文(简体) ). 工作没有图表.
disclosure读取迄今的答复没有涵盖的内容:coverage),引用图表无法解决(unresolved),并检查您引用的路径或目标是否通过较早的呼叫被退回(verify_claim) (中文(简体) ).
check读取呼叫没有到达任何路线和路线,没有呼叫contracts),缺入 vars 和无序迁移(validate),文件通常一起更改并在同一代码上进行飞行中更改 (cross_pr错误处理和类似危害的线索,绝不是缺陷(hazards,它接受 limit 并说它剪了多少个.
reach读取数据变化达到的页(predict),以及从diff所接触的页面起只航行的旅程(propose) (中文(简体) ). 从不驱动浏览器 .
prove_reach动作在真实浏览器中驱动预想的行程并锁定结果. 一个干净的页面载荷被报告为未经证实,而不是作为没有错误的证据.
draw_conclusion读取通过治理门运行一个图表路径和运行时间证据(gate),并将存储的发现读回(get, (中文(简体) ), list) (中文(简体) ).
questions状态读取列出解禁最多的未决问题(只读; verb 选择列表、回答或忘记),并记录或删除您的答案,首先验证数值。 一个答案被下一个构件所使用,并在可靠性B被封顶.
slop读取更改中的低质量代码( E)scope 更改、 默认)或整个寄存器(repo:被发明的参考文献,占位符体,吞入错误,未用添加,无需要的包装,复制版,测试不能失败. 报告代码的属性,从来没有谁或什么写它,编辑什么,并列出它无法运行的每个检查.
similar_incidents读取排名记录的事件与被触碰的文件或出错文本相近.
mark_incident动作记录一个缺陷和它所居住的文件,所以以后的失败可以与之相匹配,并再次删除一个记录与 unmark。 。 。 .
observe动作启动或附属于应用程序并记录其所作所为(runtime),或运行项目自己的测试套件和测试运行的记录(tests) (中文(简体) ).
browser_read状态读取只读浏览器操作 : snapshot, (中文(简体) ), navigate, (中文(简体) ), wait_for, (中文(简体) ), close, (中文(简体) ), layout, (中文(简体) ), record_start, (中文(简体) ), record_stop。 。 。 .
generate_test动作查找没有覆盖测试的已更改的函数( N)targets,只读),运行生成的测试,并仅保留那些通过,在代码被更改后失败并通过3个运行(verify),并写出一个提案(apply) (中文(简体) ).
qa动作储存库的测试所证明的以及缺少证据的地方:漏洞、库存、薄弱和陈旧的测试、授权缺口、假设情景(scenarios 带 includeSources 添加引用的源文本,默认取消),并完整报告(analyze),这些都运行没有代码. gaps 财务报告和审定财务报表 analyze 默认为紧凑; 通过 compact: false 完整的答复. workflows 不再在读取时创建存储的工作流程 : refresh 默认为虚假,并说它创造了多少当真实. delete_scenario, (中文(简体) ), delete_manual 财务报告和审定财务报表 delete_workflow 删除存储的情景、手动大小写或工作流程. validate_tests 运行你的测试 针对故意更改 他们覆盖的代码.
browser动作驱动一个真实的浏览器, 每个调用一个动词 : start_session, (中文(简体) ), click, (中文(简体) ), type, (中文(简体) ), fill, (中文(简体) ), select, (中文(简体) ), submit, (中文(简体) ), save_scenario, (中文(简体) ), run_scenario, (中文(简体) ), explore, (中文(简体) ), autopilot。 。 。 .
descry_confirm动作核准一个待采取行动。 仅列出克洛德代码版本,每通电话前都会询问此人;见下文.

按动词说明必要的参数。 计划只保留 verb 因为有些主机拒绝有条件的策略,所以每个参数的描述都说哪些动词需要它,而策略中的规则是一样的 x-requiredByVerb 关键词 一个不给一个电话的电话 被拒绝之前,任何事情运行,命名它。 A 类 limit 其默认值因动词而异,逐一列出默认值,且 x-defaultsByVerb 把它们当作数字.

Long calls在客户端发送进度令牌时报告进度:每几秒钟就发出一条信息来命名该呼叫以及它运行了多久. 取消一个呼叫停止了它的进度,也没有给它发送任何答案,尽管一个不读取其取消信号的工具可能会一直工作到结束.

确认行动

一个运行代码,写入寄存器或驱动有写作安全的浏览器的动词在其第一次调用时没有任何作用. 它返回一个描述 它到底会做什么,a confirmToken,和(如果有队列)批准编号。 再用这个符号调用同一个工具 运行它,但只有在一个人批准 准确的描述。 一个符号是单用,与第一次呼叫的论据相接(第二次呼叫的更改参数被丢弃并命名在回函中),15分钟后失效. 打电话的代理人凭自己的授权出示的证明书被拒绝,拒绝书列出了获得批准的方式。 拒绝后仍有效,因此批准可以稍后到达.

其中任何一种标志都得到批准:

  1. descry_confirm克劳德代码. 经纪人打电话来 descry_confirm 与 token 并带有 summary 将第一个调用返回的句子设定为字符。 该工具被标记 anthropic/requiresUserInteraction,因此克洛德代码在每一次通话中,在包括汽车在内的每个许可模式中,显示自己的许可提示,允许规则不能跳过. 这个人在那个提示中读了这句话. 然后代理再次用同样的论据调用动词 confirmTokenA级 summary 所保存的句子不会被拒绝,也不会改变任何东西;被拒绝的句子会留下符号。 单位 dontAsk 在无人接听的无头跑道中 Claude Code否认了电话 其它路线也适用 该工具仅当客户端将自己命名为支持旗帜的克洛德码版本时才被列出,并被荣誉;对于其他任何客户端则不存在并被回覆取出其他路线的名称. 每个结果都记录在 ~/.descry/approvals-audit.jsonl (一个简短的指代,从来不是指代).
  2. MCP诱导. 如果客户端宣布,第二通电话直接询问当事人,显示准确的文字. 只有在他们同意的情况下才能运行 一个人的下降是最终的 下降的速度快于任何人读取的速度,据报是无人看管的,而信使则停留在等待另一条路由.
  3. descry approvals在终点站. 门牌动词的首个调用会排队批准 ~/.descry/approvals (15分钟,最多50分钟,从来不是辩论本身). descry approvals list 显示什么是等待, descry approvals approve <id> 显示句子,并让个人键回id,以及 descry approvals deny <id> 拒绝。 代理的下一个电话 与它的代号 然后运行一次。 这不需要客户端支持,因此在VS代码扩展,汽车模式和无头运行中有效.
  4. 常年批准, 在一个终端. descry approve 创建文件 ~/.descry/grants,对用户保密,绑定在这个寄存器上,有时间限制,没有 --yes数字 : browser --origin <address> 用于关于确切来源的只读会话(最多7天), browser --write --origin <loopback address> 仅供本地主机编写级会议使用,127.0.0.1或[:1], tests --command <command> 对于一个准确输入的测试命令, sandbox 页:1 qa validate_tests 财务报告和审定财务报表 generate_test verify 和 store 写给德斯克里自己的店 最后三个和写字的种类最多持续24小时. descry approve --list 给他们看 --revoke <id> 移除一个。 一个呼吁的赠款覆盖 说哪一笔赠款批准了它.
  5. 动词的命令行对等,对于一个人或管道: descry browse, (中文(简体) ), descry observe tests, (中文(简体) ), descry qa validate-tests, (中文(简体) ), descry scenario record, (中文(简体) ), descry trust, (中文(简体) ), descry init, (中文(简体) ), descry setup, (中文(简体) ), descry analyze。每个打印的文本与服务器的相同,在终端询问,没有终端拒绝,除非 --yes 给出。 提示从控制终端读取,丢弃任何在出现之前被粘贴的东西,只取其后被打出的东西. 独自运行每个命令 等待它的快.

DESCRY_REQUIRE_HUMAN_CONFIRMATION 除非设置为 0。如果启用它,由于默认,没有客户端能够自行确认。 准备吧 0 在服务器环境中,只用于一个设置,其中呼叫代理是用来确认自己的动作(一个您写的脚本和信任).

不要通过侧面客户端,脚本或 shell 命令来赎回令牌,不要添加一个可以批准戴斯克里所问事项的钩子. 步骤的价值在于一个人看见了句子.

在你见到他们之前 有三个确认是值得知道的.

workspace 动词 trust_sources。 。 。 . .descry/config.json 列出适配器模块,并用寄存器选择的选项加载其代码。 因为一个寄存器可以更改文件,所以在这个机器确认之前,一个源不会被加载. 第一个调用列出了哪个模块、导出和选项将装入;第二个调用记录了寄存器外的确认,在 ~/.descry/confirmed-sources.json。对模块的更改、导出或选项再次询问. init 财务报告和审定财务报表 setup 确认他们自己写的适配器。 要确认一个寄存器, 请运行 descry trust (单位:千美元)npx -y @descryy/cli trust在它内。 要信任服务器打开的每一个寄存器, 设置 DESCRY_TRUST_CONFIGURED_SOURCES=1 在服务器环境中; 覆盖每个寄存器, 而不仅仅是一个. 虽然适配器不可信,但每个读取的图表都以"来源不读"为标题并报告其新鲜度为: unread。 。 。 .

重放保存的情景 . browser 动词 run_scenario 重放已承诺的文件 descry/scenarios/假设此机在其当前内容上未获批准,则首先获得双打确认。 第一个调用名称是文件,其内容散列,其访问的出处和它输入的秘密引用,并重放任何内容. 批准存储于 ~/.descry/approved-scenarios.json; 再次编辑文件询问 .

运行您的代码. observe 财务报告和审定财务报表 generate_test 在上述沙盒中开始应用或测试. qa 动词 validate_tests 也进行测试,反对故意更改它们覆盖的代码, 并接受同样的两个电话。 第一通电话说要开始什么.

运行评价

一个无人看管的跑步(一个基准,一个CI工作,一个特工用具)没有人回答同意的提示,所以在第一次通话之前设定:

  1. 运行 npx -y @descryy/cli init --yes 首先在仓库里。 写着 .descry/config.json 并证实它检测到的适配器,因此第一个工具调用读取了源而不是要求设置.
  2. 一次用 npx -y @descryy/cli analyze,或打电话 workspace 动词 analyze。 。 。 .
  3. 对于运行代码,写入文件或驱动浏览器的动词,从上面"确认动作"中选择一条路由. 对于您所写并信任的绳索,请启动服务器 DESCRY_REQUIRE_HUMAN_CONFIRMATION=0 所以,代理的第二次通话与它的 confirmToken 运行。 添加 DESCRY_TRUST_CONFIGURED_SOURCES=1 如果仓库是 .descry/config.json 名称适配器 此机器尚未确认 。 两种设置都适用于服务器所打开的每个寄存器;使其远离日常设置.
  4. 读取每个回复的类别及其"本回复不包含的"列表. 拒绝或部分结果被报告为一体,并被评为错误的答案来衡量错误的事情.

读取结果

每一份答复都说明它依赖多少。 调查结果包含其中的一类:

  • confirmed-observed:证实,并附有申请中实际提出的证据.
  • confirmed-code-only:仅由代码确认,由两种或两种以上独立的机制直接证明。 没有观察到任何活动.
  • strongly supported:证据有力,但没有得到证实.
  • unconfirmed:一个预测. 它从来没有被报告为事实.
  • not analysable: Descry 无法读取这部分,在这里. 这和"一无所获"不同.
  • unsupported: Descry完全不这样做.

每一份答复还列出了它没有涵盖的内容,包括一个陈旧的图表,一个没有适配器的语言,并且引用图表无法解决. 试验覆盖范围是一个单独的轴线,报告为核查状态.

解决问题

npx -y @descryy/cli doctor

检查节点版本和内置的 SQLite, 引擎的复制件安装完毕, CLI 和旁边的服务器是一起发布的版本, npx 的缓存一个半提取的软件包, 常态审批和等待您的批准, 在一个寄存器中, 它的 git状态, 配置, 适配器, 这个机器是否确认它们, 以及图表 。 每个发现的名字 它的固定. --fix 仅从 npx 的缓存中删除已破碎的 Descry 项 .

常见的首发消息 :

  • "还没有.descry/config.json"或"没有来源":运行 npx -y @descryy/cli init,或打电话 workspace 动词 setup。 。 。 .
  • "本机未确认"或"未读出出处":见下项.
  • "不是git仓库"或"还没有承诺":运行 git init 并做出第一个承诺.
  • "descry-mcp:没有找到"或 ENOTEMPTY 从 npx: 运行 doctor --fix。 。 。 .

分析说没有源代码读取/ 适配器未确认

那么图中只有Git历史,没有代码. 按这个顺序处理:

  1. 运行 npx -y @descryy/cli init --yes 在寄存器中,记录了这台机器对它所写的适配器的确认. 或运行 descry trust [--yes] [path],这证实了一个寄存器在这个机器上配置的适配器,每个寄存器. descry analyze 然后从命令行中构建图表.
  2. 如果配置已经列出适配器,请打电话 workspace 动词 trust_sources 并批准它提出的要求 不能显示批准提示的客户端不能完成这一步骤;使用步骤 1.
  3. 打电话 workspace 动词 analyze 复(或运行) descry analyze) (中文(简体) ).

未设置 DESCRY_TRUST_CONFIGURED_SOURCES=1 在全局服务器条目中. 它信任服务器所打开的每一个寄存器,一个寄存器可以通过编辑一个已承诺的文件来改变它的适配器列表. 如果您需要, 请设置为一个可信任的寄存器, 在寄存器自己的服务器条目中 .

Claude 代码权限和自动模式

Claude Code在Descry看到之前决定每个工具调用,通过许可规则,询问规则,或者在自动模式下,一个分级器;Descry自己的批准会随之而来. 允许规则只回答第一个。 规则被命名 mcp__<server-name>__<tool>时 <server-name> 是给定的名称 claude mcp add内 .claude/settings.local.json数字 :

{
  "permissions": {
    "allow": [
      "mcp__descry__code_context",
      "mcp__descry__git_context",
      "mcp__descry__disclosure",
      "mcp__descry__check",
      "mcp__descry__reach",
      "mcp__descry__similar_incidents",
      "mcp__descry__draw_conclusion"
    ]
  }
}

这七只读了。 带有写出或运行动词的工具(workspace, (中文(简体) ), change_scope, (中文(简体) ), qa, (中文(简体) ), generate_test, (中文(简体) ), observe, (中文(简体) ), browser, (中文(简体) ), browser_read, (中文(简体) ), prove_reach, (中文(简体) ), questions, (中文(简体) ), mark_incident)也可以按规则允许,因为他们的第一通电话没有任何变化,而且有人被问到: descry_confirm,允许规则不能跳过。 允许他们也让克洛德代码的分类者停止拒绝无害的一通电话. 允许 mcp__descry__descry_confirm claude Code仍然每通电话都问他.

如果一秒钟之内门铃声响起 就会有人拒绝 寻找一个 Elicitation 钩子( r)grep -n Elicitation ~/.claude/settings.json .claude/settings.local.json),用于 --permission-prompts none,用于非交互式发射。 一个 Elicitation 钩住被子接受会击败该步骤;如果写出一个,只接受一个给一个回转源和只读或沙箱动词取名的信息,然后在没有另作决定的情况下退出. autoMode 设置在 ~/.claude/settings.json 可以用道词描述设置(a) .descry/ 存储和回路dev app。它们不能命名一个工具,只能从用户或管理下的设置读取.

当克洛德代码开始一个新会话到更新的德克瑞时,它自己的工具列表仍然可以显示旧动词. 德克丽宣布 notifications/tools/list_changed 一次在它的工具表面变化后的第一个连接上,这使得客户端能够遵守它重新列出;对于一个保存自己的缓存,重启会话或重新连接服务器的客户端.

已知限制

  • Playwright 和其他端到端测试仅通过已执行覆盖连接到代码(observe 动词 tests) (中文(简体) ). 测试的静态链接 page.goto 仅限于精确的文字路径,所以在覆盖运行之前,这样的套房节目是注册的,但没有覆盖任何东西.
  • 变化镜解答的可靠性类是被接入的边缘上的最低值. 一个宽的diff可以成为C级,因为有少数R0边缘.
  • 只有前端寄存器的图中没有 API 路由,所以 check 动词 contracts 在后端寄存器链接到 workspace 动词 link。 。 。 .

隐私

Descry没有主机组件,这个服务器呼唤没有Descry服务. 你记录的图表、证据、调查结果和答案是: .descry/ 在您的存储器中, 而且只有 config.json 这是注定要承诺的。 将确认保存在 ~/.descry/ 和存储的浏览器证书 在那里加密。 浏览器和运行时工具只与您给出的应用程序地址交谈.

许可证

麻省理工学院

版本与发布记录

@descryy/mcp 共发布 47 个版本,首次发布于 2026/08/31;过去 12 个月发布了 47 个版本。

版本发布日期距今
0.23.1latest2026/10/3014 天前
0.23.02026/10/3014 天前
0.22.02026/10/2915 天前
0.21.02026/10/2123 天前
0.20.02026/10/2024 天前
0.19.02026/10/1925 天前

关于 @descryy/mcp 的常见问题

@descryy/mcp 是什么?

Descry的MCP服务器:代理发车前门过查询层. stdio运输是JSON-RPC 2.0由手接取,而不是17个HTTP和OAuth的包. 18个工具;大多数阅读了图表,没有其他工具。 @ descryy 依赖性在此 f

如何安装 @descryy/mcp?

在项目目录运行 npm install @descryy/mcp,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 descry-mcp,可以用 npx descry-mcp 直接运行。

@descryy/mcp 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@descryy/mcp 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@descryy/mcp 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.5。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@descryy/mcp 可以商用吗?

@descryy/mcp 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@descryy/mcp 的下载量有多少?

根据 npm 官方下载统计,@descryy/mcp 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,454 次,日均约 82 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@descryy/mcp 还在维护吗?

最新版本 0.23.1 发布于 2026/10/30(14 天前);至今共发布 47 个版本,其中过去 12 个月发布了 47 个;首次发布于 2026/08/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。