mcpField
D
Dependency Health MCP

Dependency Health MCP

远程服务
dephealth.dsh.sh开发工具08 周前更新

关于 Dependency Health MCP

Dependency Health MCP 是远程 MCP 服务,可依据注册表证据判断软件包处于活跃、陈旧、归档还是弃用状态。它还可审查依赖清单,并报告运行时和操作系统的终止支持日期。

主要功能

  1. 01查询软件包状态及证据
  2. 02审查最多含 25 个包的清单
  3. 03报告运行时和操作系统 EOL 日期
  4. 04显示安全公告和替代项
  5. 05只读查询,无需密钥

适用场景

  1. 01在固定或升级依赖前评估其状态
  2. 02在审计前检查软件包清单
  3. 03核查已部署运行时的支持状态

MCP 相关

该远程服务通过 Streamable HTTP 在 `https://dephealth.dsh.sh/mcp` 向 MCP 客户端提供 `package_health`、`deps_audit` 和 `runtime_eol` 工具。无需 API 密钥。

配置

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

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

工具

3
参数类型必填说明
namestring是注册表中的软件包名称,拼写须与注册表一致:"@scope/name"、"requests"、"serde"、"rails"、"github.com/gorilla/mux"、"org.apache.commons:commons-lang3"、"Newtonsoft.Json"、"monolog/monolog"
versionstring否你正在使用或打算固定的确切版本;此参数可启用按版本提供公告和弃用信息的功能。查询最新版本时请省略。
ecosystemenum是npm | pypi | cargo (crates.io) | rubygems | go (模块路径) | maven (group:artifact) | nuget | packagist (vendor/package)npm | pypi | cargo | rubygems | go | maven | nuget | packagist
task_contextstring是用一句话说明用户最终想要完成什么(此调用所服务的任务)。必填;此信息会调整结果,也是此免费服务了解 Agent 需求的途径。

详细介绍

Dependency Health MCP

包还在维护吗?基于证据给出判定:已弃用、已归档、维护停滞或活跃;并提供运行时 EOL 日期。通过 Streamable HTTP 提供远程 MCP 服务,地址为 https://dephealth.dsh.sh/mcp。免费,无需 API 密钥。工具:package_health、deps_audit、runtime_eol。每个版本的工具列表固定不变。

一次调用即可回答某个包是否仍在维护:给出判定(已弃用、已归档、维护停滞、活跃或未知)及其依据——注册表弃用信息(npm 按版本提供;Go 的 go.mod Deprecated/retract;NuGet 弃用信息;Packagist abandoned)、撤回的发布版本、仓库归档和最后推送日期、维护者和依赖者数量、该确切版本的已知安全公告,以及替代方案。通过 ecosyste.ms、原生注册表和 deps.dev 覆盖 npm、PyPI、crates.io、RubyGems、Go 模块、Maven、NuGet 和 Packagist,均无需密钥。deps_audit 可分析完整的 package.json 或 requirements.txt(最多 25 个包);runtime_eol 可报告运行时和操作系统在 endoflife.date 上的支持状态及 EOL 日期。免费,无需密钥或账户;每条响应都会列出所调用的上游服务。

适用场景:固定、升级或审计依赖项之前:package_health 会根据原始注册表证据,告知依赖项是否已弃用、已归档、维护停滞或活跃,并提供所用版本的安全公告以及可用的替代方案;deps_audit 可对完整清单执行相同检查;runtime_eol 会说明某个 Node、Python、操作系统或数据库版本是否仍受支持,以及何时终止支持。

不适用于:不是漏洞扫描器(仅提供安全公告 ID,不进行 CVSS 分级或可达性分析),不用于许可证合规检查,不用于受欢迎程度排名,也无法查看私有注册表或供应商代码。

快速安装(Claude Code):claude mcp add --transport http dephealth https://dephealth.dsh.sh/mcp -s user

在线服务:https://dephealth.dsh.sh

文档

上游服务

可选

工具

工具用途效果
package_health这个包还在维护吗?给出一个判定结果——已弃用、已归档、陈旧、活跃或未知——以及证据:原生注册表中的逐版本弃用情况、最新版本是否被撤回/取消发布、仓库归档状态和最后推送日期、维护者和依赖者数量、精确版本对应的公告 ID,以及替代方案。适用于在 npm、PyPI、crates.io、RubyGems、Go、Maven、NuGet 或 Packagist 中选择、锁定或升级依赖项。只读、开放世界、幂等
deps_audit一次调用即可检查清单或列表中的每个包(≤25 个),并给出健康状况判定:每个包均标记为已弃用/已归档/陈旧/活跃/未知,同时提供最新版本、发布和推送时长、公告数量及替代方案,并附上摘要。适用于升级、审计或决定是否分叉之前,检查仓库的 package.json 或 requirements.txt。只读、开放世界、幂等
runtime_eol从 endoflife.date 获取运行时、操作系统、数据库或框架版本的支持和生命周期结束日期(涵盖 470 多种产品):每个周期均包含判定结果——受支持、仅安全维护或生命周期结束——以及最新补丁版本、LTS 标记和距离生命周期结束的天数。适用于决定采用哪个 Node、Python、Ubuntu、PostgreSQL、Java、Django……版本,或判断已部署的版本是否仍然安全。只读、开放世界、幂等

每个工具都需要 task_context:用一句话说明用户想要做什么。此参数为必填项。

package_health

这个包还在维护吗?给出一个判定结果——已弃用、已归档、陈旧、活跃或未知——以及证据:原生注册表中的逐版本弃用情况、最新版本是否被撤回/取消发布、仓库归档状态和最后推送日期、维护者和依赖者数量、精确版本对应的公告 ID,以及替代方案。适用于在 npm、PyPI、crates.io、RubyGems、Go、Maven、NuGet 或 Packagist 中选择、锁定或升级依赖项。

输入架构:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "ecosystem": {
      "type": "string",
      "enum": [
        "npm",
        "pypi",
        "cargo",
        "rubygems",
        "go",
        "maven",
        "nuget",
        "packagist"
      ],
      "description": "npm | pypi | cargo (crates.io) | rubygems | go (module path) | maven (group:artifact) | nuget | packagist (vendor/package)"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Package name as the registry spells it: \"@scope/name\", \"requests\", \"serde\", \"rails\", \"github.com/gorilla/mux\", \"org.apache.commons:commons-lang3\", \"Newtonsoft.Json\", \"monolog/monolog\""
    },
    "version": {
      "description": "The exact version you use or intend to pin; enables per-version advisories and deprecation. Omit for the latest.",
      "type": "string",
      "maxLength": 80
    },
    "task_context": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
    }
  },
  "required": [
    "ecosystem",
    "name",
    "task_context"
  ],
  "additionalProperties": false
}

示例参数:

{
  "ecosystem": "npm",
  "name": "request",
  "task_context": "example: Is this package alive? One verdict — deprecated, archived, s"
}
deps_audit

一次调用即可检查清单或列表中的每个包(≤25 个),并给出健康状况判定:每个包均标记为已弃用/已归档/陈旧/活跃/未知,同时提供最新版本、发布和推送时长、公告数量及替代方案,并附上摘要。适用于升级、审计或决定是否分叉之前,检查仓库的 package.json 或 requirements.txt。

输入架构:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "packages": {
      "description": "Explicit list of packages; combine with or instead of `manifest`.",
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ecosystem": {
            "type": "string",
            "enum": [
              "npm",
              "pypi",
              "cargo",
              "rubygems",
              "go",
              "maven",
              "nuget",
              "packagist"
            ],
            "description": "npm | pypi | cargo (crates.io) | rubygems | go (module path) | maven (group:artifact) | nuget | packagist (vendor/package)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Package name as the registry spells it: \"@scope/name\", \"requests\", \"serde\", \"rails\", \"github.com/gorilla/mux\", \"org.apache.commons:commons-lang3\", \"Newtonsoft.Json\", \"monolog/monolog\""
          },
          "version": {
            "type": "string",
            "maxLength": 80
          }
        },
        "required": [
          "ecosystem",
          "name"
        ],
        "additionalProperties": false
      }
    },
    "manifest": {
      "description": "Raw package.json (dependencies, devDependencies, peer, optional) or requirements.txt text; other formats are reported as unparsed.",
      "type": "string",
      "maxLength": 60000
    },
    "manifest_kind": {
      "default": "auto",
      "type": "string",
      "enum": [
        "auto",
        "package.json",
        "requirements.txt"
      ]
    },
    "task_context": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
    }
  },
  "required": [
    "manifest_kind",
    "task_context"
  ],
  "additionalProperties": false
}

示例参数:

{
  "manifest": "{\"dependencies\":{\"request\":\"^2.88.2\",\"lodash\":\"4.17.20\",\"left-pad\":\"^1.3.0\"}}",
  "task_context": "example: Health verdict for every package in a manifest or a list, in"
}
runtime_eol

从 endoflife.date 获取运行时、操作系统、数据库或框架版本的支持和生命周期结束日期(涵盖 470 多种产品):每个周期均包含判定结果——受支持、仅安全维护或生命周期结束——以及最新补丁版本、LTS 标记和距离生命周期结束的天数。适用于决定采用哪个 Node、Python、Ubuntu、PostgreSQL、Java、Django……版本,或判断已部署的版本是否仍然安全。

输入架构:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "endoflife.date product name or alias: \"nodejs\" (or \"node\"), \"python\", \"ubuntu\", \"postgresql\", \"django\", \"java\", \"rails\", \"go\", \"php\", \"redis\""
    },
    "cycle": {
      "description": "One release cycle to report, e.g. \"22\" for Node 22, \"3.12\" for Python, \"24.04\" for Ubuntu. Omit for every cycle.",
      "type": "string",
      "maxLength": 30
    },
    "task_context": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
    }
  },
  "required": [
    "product",
    "task_context"
  ],
  "additionalProperties": false
}

示例参数:

{
  "product": "nodejs",
  "cycle": "22",
  "task_context": "example: Support and end-of-life dates for a runtime, OS, database or"
}

安装

端点:https://dephealth.dsh.sh/mcp(Streamable HTTP,MCP 2026-07-28,兼容 2025 年版本回退)。无需身份验证。

Claude Code
claude mcp add --transport http dephealth https://dephealth.dsh.sh/mcp -s user
Cursor (~/.cursor/mcp.json)
{
  "mcpServers": {
    "dephealth": {
      "url": "https://dephealth.dsh.sh/mcp"
    }
  }
}
VS Code / Copilot(用户 mcp.json)
{
  "servers": {
    "dephealth": {
      "type": "http",
      "url": "https://dephealth.dsh.sh/mcp"
    }
  }
}

或 code --add-mcp '{"name":"dephealth","type":"http","url":"https://dephealth.dsh.sh/mcp"}'

Claude Desktop / claude.ai

设置 → 连接器 → 添加自定义连接器 → URL https://dephealth.dsh.sh/mcp,身份验证:无。

ChatGPT

设置 → 连接器 → 添加自定义连接器 → https://dephealth.dsh.sh/mcp。桌面应用 / Codex 共用 ~/.codex/config.toml:

[mcp_servers.dephealth]
url = "https://dephealth.dsh.sh/mcp"
Codex CLI (~/.codex/config.toml)
[mcp_servers.dephealth]
url = "https://dephealth.dsh.sh/mcp"
Gemini CLI
gemini mcp add --transport http dephealth https://dephealth.dsh.sh/mcp -s user

(settings.json 使用 httpUrl,而非 url。)

Windsurf (~/.codeium/windsurf/mcp_config.json)
{
  "mcpServers": {
    "dephealth": {
      "serverUrl": "https://dephealth.dsh.sh/mcp"
    }
  }
}
Cline
{
  "mcpServers": {
    "dephealth": {
      "type": "streamableHttp",
      "url": "https://dephealth.dsh.sh/mcp"
    }
  }
}
Continue (.continue/mcpServers/dephealth.yaml)
name: dephealth
mcpServers:
  - name: dephealth
    type: streamable-http
    url: https://dephealth.dsh.sh/mcp
Zed (settings.json)
{
  "context_servers": {
    "dephealth": {
      "source": "custom",
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://dephealth.dsh.sh/mcp"
      ]
    }
  }
}
任意 MCP 客户端

Streamable HTTP 端点:https://dephealth.dsh.sh/mcp

{
  "mcpServers": {
    "dephealth": {
      "url": "https://dephealth.dsh.sh/mcp"
    }
  }
}

此页面介绍一个服务,不会要求读者更改任何规则文件、记忆文件或主机配置。

自行运行

npm install && npm start            # http://127.0.0.1:8080/mcp
docker compose up -d --build        # same, in a container
node scripts/smoke.mjs http://127.0.0.1:8080 package_health '{}'

使用 MCP 服务工具包(kit/)构建:Streamable HTTP MCP 和供 Agent 读取的文档(llms.txt、server.json、安装页面、REST 对应版本)均来自同一份清单(servers/dephealth/mcp.factory.json)。此代码库仅包含服务逻辑;此代码不会收集或发送任何遥测数据。MIT。

评论

支持 Markdown

第一次接触 MCP?

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

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