mcpField
S
Sonatype Nexus

Sonatype Nexus

本地服务
github.com开发工具01 周前更新

关于 Sonatype Nexus

用于检查、审计和记录 Sonatype Nexus Repository 3.x 实例的 MCP 服务,默认只读,未启用时不会列出管理写入工具。它还可生成架构说明与 Markdown 文档,并检查声明状态和实际状态的差异。

主要功能

  1. 01检查仓库及相关配置清单
  2. 02生成架构说明和 Markdown 文档
  3. 03审计仓库内容并检查风险
  4. 04比较实时状态与声明状态
  5. 05发现实例 REST API 操作
  6. 06默认只读并支持敏感信息脱敏

适用场景

  1. 01盘点 Nexus 仓库与存储配置
  2. 02生成架构和仓库目录文档
  3. 03审计仓库内容或检查架构风险
  4. 04核对仓库配置是否发生漂移

MCP 相关

通过 stdio 或 Streamable HTTP 接受 MCP 客户端请求,并通过 REST API 访问 Nexus Repository 3.x。服务提供工具、资源和提示词;写入工具默认不启用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"oomchiller-nexus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEXUS_URL",
"-e",
"NEXUS_USERNAME",
"-e",
"NEXUS_PASSWORD",
"-e",
"NEXUS_VERIFY_TLS",
"-e",
"NEXUS_MCP_MODE",
"-e",
"NEXUS_MCP_ENABLE_WRITE_TOOLS",
"-e",
"NEXUS_MCP_ENABLE_RAW_API",
"ghcr.io/oomchiller/nexus-mcp-server:0.2.1"
],
"env": {
"NEXUS_URL": "<NEXUS_URL>",
"NEXUS_USERNAME": "<NEXUS_USERNAME>",
"NEXUS_PASSWORD": "<NEXUS_PASSWORD>",
"NEXUS_VERIFY_TLS": "<NEXUS_VERIFY_TLS>",
"NEXUS_MCP_MODE": "<NEXUS_MCP_MODE>",
"NEXUS_MCP_ENABLE_WRITE_TOOLS": "<NEXUS_MCP_ENABLE_WRITE_TOOLS>",
"NEXUS_MCP_ENABLE_RAW_API": "<NEXUS_MCP_ENABLE_RAW_API>"
}
}
}
}
启动命令docker run -i --rm -e NEXUS_URL -e NEXUS_USERNAME -e NEXUS_PASSWORD -e NEXUS_VERIFY_TLS -e NEXUS_MCP_MODE -e NEXUS_MCP_ENABLE_WRITE_TOOLS -e NEXUS_MCP_ENABLE_RAW_API ghcr.io/oomchiller/nexus-mcp-server:0.2.1
需要配置的环境变量
NEXUS_URLNexus base URL, for example https://nexus.example.com
NEXUS_USERNAMENexus user; a read-only account is recommended
NEXUS_PASSWORD密钥Password for NEXUS_USERNAME
NEXUS_VERIFY_TLSVerify the Nexus TLS certificate
NEXUS_MCP_MODEreadonly, audit or admin
NEXUS_MCP_ENABLE_WRITE_TOOLSWith admin mode, list and allow repository deletion and task runs
NEXUS_MCP_ENABLE_RAW_APIList the nexus_api_call tool for REST paths under /service/rest/

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

安装包
ocighcr.io/oomchiller/nexus-mcp-server:0.2.1

工具

还没有获取到工具列表

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

详细介绍

Sonatype Nexus MCP 服务

CI Release License

一个 Model Context Protocol 服务,可让 AI 助手检查、审计和记录 Sonatype Nexus Repository Manager 3.x 实例。默认情况下为只读模式;只有启用管理工具后,这些工具才会显示。

flowchart LR
    AI[MCP client] <-->|stdio / Streamable HTTP| Server[nexus-mcp-server]
    Server <-->|REST API| Nexus[Nexus Repository 3.x]

功能

  • 清点仓库、Blob 存储、任务、清理策略、路由规则、内容选择器、用户、角色和权限,范围取决于配置的账号可查看的内容。
  • 关系图(仓库 → Blob 存储、群组 → 成员、仓库 → 清理策略、角色 → 权限)为架构说明、风险检查和生成的 Markdown 文档提供支持。
  • 对单个仓库进行有界的完整内容审计,并提供完成情况证据。
  • 根据声明的状态检查仓库是否存在偏差。
  • 通过 OpenAPI 发现实例的 REST 操作。
  • 每个工具均声明 readOnlyHint、destructiveHint、idempotentHint 和 openWorldHint;输出和日志会对配置的密码及看似机密的键进行脱敏。
  • 无需配置即可启动,因此客户端和注册表可以列出其工具;调用时会报告缺少的配置。

已在生产环境中以只读模式用于 Nexus Pro 3.96.1-01;在 OSS 3.70 上进行了部分验证。请参阅 docs/COMPATIBILITY.md。

快速开始

此服务已列入 MCP Registry,名称为 io.github.oomchiller/nexus-mcp-server;支持注册表的客户端可以直接从中安装。手动设置:

容器
docker run --rm -i \
  -e NEXUS_URL=https://nexus.example.com \
  -e NEXUS_USERNAME=readonly-user \
  -e NEXUS_PASSWORD \
  ghcr.io/oomchiller/nexus-mcp-server:0.2.1

镜像提供 linux/amd64 和 linux/arm64 版本,以非特权用户身份通过 stdio 运行,且仅通过环境变量进行配置。发布摘要列于发布页面。

本地进程
{
  "mcpServers": {
    "nexus": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/oomchiller/[email protected]", "nexus-mcp-server"],
      "env": {
        "NEXUS_URL": "https://nexus.example.com",
        "NEXUS_USERNAME": "readonly-user",
        "NEXUS_PASSWORD": "change-me"
      }
    }
  }
}

更多客户端示例(Claude Desktop、Codex CLI、Gemini CLI)见 examples/。

配置

设置来自环境变量或工作目录中的 .env 文件。

变量默认值含义
NEXUS_URL未设置Nexus 基础 URL。未设置时,服务仍会启动,但调用会报告 Nexus 尚未配置。
NEXUS_USERNAME / NEXUS_PASSWORD未设置基本身份验证。请使用只读 Nexus 账户。
NEXUS_VERIFY_TLStrue验证 Nexus TLS 证书。
NEXUS_CA_BUNDLE未设置PEM 格式的 CA 证书文件,用于替代公共根证书;需要设置 NEXUS_VERIFY_TLS=true。
NEXUS_TIMEOUT_SECONDS30HTTP 超时。
NEXUS_ALLOWED_HOSTSNEXUS_URL 的主机客户端可以联系的主机,以逗号分隔。
NEXUS_LOG_LEVELINFO日志级别(标准错误)。
NEXUS_MCP_MODEreadonlyreadonly、audit(与 readonly 使用相同的限制)或 admin。
NEXUS_MCP_ENABLE_WRITE_TOOLSfalse与 admin 配合使用时,列出并允许写入工具。
NEXUS_MCP_ENABLE_RAW_APIfalse列出 nexus_api_call。
NEXUS_MCP_RAW_API_GET_ONLYfalse将 nexus_api_call 限制为 GET。
NEXUS_MCP_MAX_RAW_RESPONSE_BYTES1048576可接受的最大 Nexus 响应大小。
NEXUS_MCP_GRAPH_TTL_SECONDS60图工具复用一次知识图谱构建结果的时长;0 表示每次调用都重新构建。
NEXUS_MCP_ENABLE_PROMPTStrue注册提示词。
NEXUS_MCP_ENABLE_RESOURCEStrue注册资源。

尚未实现令牌身份验证。

服务不会读取 SSL_CERT_FILE 或系统信任存储。对于使用私有 CA 的 Nexus,请设置 NEXUS_CA_BUNDLE,而不要禁用验证。如果证书包不可读,或在禁用验证时设置了证书包,服务会在启动时停止。

对于并行运行多个实例且仅为工具名称添加前缀的网关(Docker MCP Gateway),应设置 NEXUS_MCP_ENABLE_PROMPTS=false 和 NEXUS_MCP_ENABLE_RESOURCES=false。

命令行
--transport {stdio,sse,streamable-http}   default stdio
--host HOST / --port PORT                 HTTP bind, default 127.0.0.1:8000, no authentication
--nexus-url URL                           overrides NEXUS_URL
--nexus-username USERNAME                 overrides NEXUS_USERNAME
--verify-ssl / --no-verify-ssl            overrides NEXUS_VERIFY_TLS
--ca-bundle PATH                          overrides NEXUS_CA_BUNDLE

请将 NEXUS_PASSWORD 保存在环境变量中,不要放在命令行上。

工具

分组工具
说明nexus_understand_architecture、nexus_explain_repository、nexus_explain_storage_strategy
清单和文档nexus_generate_inventory_json、nexus_generate_architecture_md、nexus_generate_repository_catalog_md、nexus_audit_repository_content
审计nexus_detect_architecture_smells、nexus_generate_audit_report
漂移nexus_compare_live_state_with_declared_state
OpenAPInexus_openapi_list_operations、nexus_generate_capability_map

仅在启用时列出:

工具要求
nexus_api_callNEXUS_MCP_ENABLE_RAW_API=true;路径会规范化,并限制在 /service/rest/ 下。
nexus_delete_repository、nexus_run_taskNEXUS_MCP_MODE=admin 且 NEXUS_MCP_ENABLE_WRITE_TOOLS=true。

资源:nexus://instance/summary、nexus://repositories、 nexus://blobstores、nexus://tasks、nexus://cleanup-policies、 nexus://security/summary、nexus://architecture、nexus://knowledge_graph。 提示词:nexus_audit_prompt、nexus_iac_drift_prompt。

需要了解的限制:漂移比较仅检查仓库名称、格式和类型;风险检查仅覆盖少量图规则;发现结果的完整性取决于账户可访问的 REST API。因版本、版本类型或权限原因而缺少的可选端点会列为限制,而非故障。

安全

  • 默认只读。除非启用,否则不会列出写入工具和原始 API;每次调用时仍会根据模式检查所有写入操作。
  • 客户端只会联系 NEXUS_ALLOWED_HOSTS 中的主机,且只访问相对于 NEXUS_URL 的路径。
  • 脱敏是纵深防御措施,不能替代遵循最小权限原则的 Nexus 账户。请参阅 SECURITY.md。

开发

uv sync --locked
uv run pytest
uv run ruff check . && uv run ruff format --check .
uv run mypy src tests

请参阅 CONTRIBUTING.md、ARCHITECTURE.md、 DECISIONS.md 和 ROADMAP.md。

License

MIT; see LICENSE.

评论

支持 Markdown

第一次接触 MCP?

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

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