mcpField
E
Eclipse Legacy Recon MCP

Eclipse Legacy Recon MCP

本地服务
eclipsebazaar.com开发工具0今天更新

关于 Eclipse Legacy Recon MCP

Eclipse Legacy Recon MCP 是供 Agent 和团队评估旧软件的本地只读代码库扫描器。它生成限定范围的架构图,并列出有依据的依赖与生命周期终止风险;现代化输出是评估输入,不是成本或工时估算。

主要功能

  1. 01生成限定范围的架构图
  2. 02分别列出已声明、观察到和推断的依赖
  3. 03标记规则覆盖的终止支持版本及未固定依赖
  4. 04报告现代化评估输入信号
  5. 05为发现项注明证据

适用场景

  1. 01现代化前梳理旧代码库
  2. 02检查依赖和运行时的终止支持风险
  3. 03为评估收集代码规模与耦合输入

MCP 相关

向 MCP 客户端提供四种工具:recon_scan、architecture_map、dependency_risk_list 和 modernization_inputs。服务以只读方式扫描本地路径,不执行目标代码,也不进行网络调用。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Eclipse Legacy Recon MCP

由 Cyan Eclipse Technologies 提供支持 — https://cetech.ai

让 Agent 分析代码库:生成范围收窄的架构图、依赖项/EOL 风险清单和现代化估算输入。

状态——如实标注

v0.1.0,本地、只读。通过 stdio 使用 MCP,仅依赖 Python 标准库。不声称获得任何认证。最新基准卡(-10,2026-10-26)在此前的通用 JS/TS 声明下未通过,得分为 22/25;所有者的决定是将声明收窄至 CLAIM-SCOPE.md 中观察到的范围,而非将产品定性为永久未通过,也不进行第四轮修复。作出任何认证声明前,仍须进行范围限定的重新基准测试。目录条目:legacy-recon-mcp(规范草案:mcp-product-slate-20261023.md §5)。免费;通过服务导向的评估渠道引入 CETech 的旧系统现代化业务。

声明范围——收窄至已观察到的内容

在 CLAIM-SCOPE.md 范围内,报告条目会引用文件路径,以及其依据的清单行、结构事实或推断依据。引擎实现的常设 UNKNOWN 类别均附有原因——绝不猜测技术栈。OBSERVED 是范围限定的正向清单,并非穷尽清单。

规范范围说明中按名称撤回的声明包括:拆分后未闭合斜杠的跨度之后,JS/TS 多行块注释的延续(W1);连续出现的未闭合斜杠 JS/TS 跨度(W2);B-LR-14 无效行标识符后续形式(W3);穷尽式 OBSERVED 召回(W4);动态导入观察或专门的动态导入 UNKNOWN(W5);.mts/.cts 的 OBSERVED 提取(W6);对权限拒绝子树的完整性(W7);对自引用符号链接循环进行报告并跳过处理(W8);以及托管式/需认证/多租户运行(W9)。

创新机制——在收窄范围内,受证据约束的侦察分析

在收窄后的范围内,依赖项清单会以互不混合的独立列表区分:

  • DECLARED — 从清单解析,并以清单行作为证据。
  • OBSERVED — 在 CLAIM-SCOPE.md 范围内,代码中出现的正向导入报告,并以文件和行号作为证据(内部导入标记为 internal);并非穷尽清单。
  • INFERRED — 标记为推断,并注明依据(例如,通过内置映射表将导入根 PIL 映射至发行包 Pillow;未找到匹配声明条目的导入 → 推断为未声明依赖项)。

工具

recon_scan(合并的范围限定报告) · architecture_map · dependency_risk_list · modernization_inputs

所有工具均接受 path(必需字符串)和可选的 max_files(整数,1–50000,默认值为 5000,使用项目统一的 coerce_int_param 防护模式)。

现代化输出是输入,而非估算结果:按语言统计的 LOC、测试文件是否存在/测试 LOC 比率、清单文件系统修改时间信号(明确不是提交时间——v0.1 中 git 历史为 UNKNOWN),以及按扇入量计算的耦合热点。不生成工作量、成本或时长数值。

支持的清单和 EOL 规则

清单解析器:requirements.txt、Pipfile、pyproject.toml、setup.py/setup.cfg(python_requires)、package.json、composer.json、Gemfile、pom.xml、go.mod、Cargo.toml;运行时版本固定信息来自 .python-version、.nvmrc、.ruby-version、runtime.txt、engines.node、requires-python、pom java.version。

EOL 风险仅来自一份小型且明确、以代码版本化的规则表(recon_engine.py 中的 EOL_RULES_VERSION = 2026-10-25.1):Python 2.7/3.6/3.7/3.8、Node 12/14/16/18、PHP 7.4/8.0、Ruby 2.7/3.0、Django 2.2/3.2/4.0/4.1、AngularJS 1.x、Rails 5.2/6.0、Flask 1.0。每项 EOL 声明都会引用其 rule_id。未匹配规则 = 无声明(没有规则绝不代表声明支持)。未固定版本的已声明版本会标记为 UNPINNED_VERSION。

安全

  • 目标代码绝不会被执行、导入或通过 shell 调用;不会发起网络请求。
  • 绝不遍历符号链接——普通且可解析的符号链接会被报告;指向目标树外部的符号链接会标记为 escape: true。CLAIM-SCOPE.md W8 中列出的例外是自引用的符号链接循环:扫描可能会以 TARGET_PATH_INVALID 拒绝,而不是报告并跳过。
  • 跳过二进制文件并计数,绝不将其解析为文本;超过 1 MB 的文件不会按文本解析。
  • 达到上限时会明确失败:达到 max_files 会设置 truncated: true + MAX_FILES_REACHED——被截断的扫描绝不会显示为完整扫描。
  • 明确列出并采取失败关闭策略的拒绝原因:TARGET_NOT_FOUND、TARGET_NOT_DIRECTORY、TARGET_EMPTY、TARGET_PATH_INVALID、MAX_FILES_INVALID、ARGUMENTS_INVALID。格式错误的协议参数会返回 -32602 并指出参数名称,绝不会返回原始的 -32603。
  • 跳过并列出 VCS/缓存/供应商目录(.git、__pycache__、node_modules、vendor 等)。

运行

python3 server.py                      # stdio
python3 -m unittest discover -s tests  # acceptance + schema fuzz
python3 smoke.py                       # subprocess stdio smoke

测试样例:fixtures/legacy-tree/——包含 Python 和 JS 的合成旧版项目树:Django 3.2 + Python 3.8 + Node 16 + 已终止支持的 AngularJS 版本锁定项、未锁定版本的 requests、一个二进制文件,以及一次符号链接逃逸尝试(escape_link → /etc;若不存在,测试/smoke 会重新创建)。

限制(v0.1)

CLAIM-SCOPE.md 是声明范围的权威依据。具体而言:

  • 不解析锁文件;不提取 Gradle 依赖;不读取 git 历史(清单年龄仅依据 mtime);数据库/CI/部署属于长期 UNKNOWN 类别;EOL 表刻意保持精简,仅涵盖其中列出的规则。
  • 导入扫描基于正则表达式,而非 AST。OBSERVED 提取是限定范围的正向报告,每个物理行最多匹配一个正则表达式。CLAIM-SCOPE.md 中基于基准测试得出的 OBSERVED 准确率范围针对 Python 和 JS/TS;未针对 Go/Ruby/Java/PHP 导入模式单独提出基于基准测试观察到的准确率声明。
  • JS/TS 的召回率可能会漏掉拆分的 require(/import 形式、一行中的第二个导入,以及 CLAIM-SCOPE.md W4 中列出的模板过度屏蔽模式后的导入。Python 的召回率可能会漏掉一行中以分号分隔或后接其他语句的导入、逗号列表中的第二个模块、反斜杠续行,以及相对 from-import。
  • 不会推测动态导入并将其列为 OBSERVED,也没有专门针对动态导入的 UNKNOWN 条目(W5)。
  • .mts 和 .cts 文件不会进行 OBSERVED 提取(W6)。
  • 权限被拒绝的子目录可能会被省略而不设置截断标记,因此不对这类目录树作完整性声明(W7)。

Cyan Eclipse Technologies 的产品。随附的“Powered by Cyan Eclipse Technologies”署名必须一并保留。

评论

支持 Markdown

第一次接触 MCP?

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

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