Maven中央仓库搜索服务

一个提供Maven中央仓库元数据访问的STDIO优先MCP服务器,适用于AI代理和GUI/TUI用户。

  • by wmclifford
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 wmclifford/mcp-maven-central-search

使用说明

mcp-maven中心搜索

mcp-maven-central-search 是一个MCP服务器(STDIO优先),提供对Maven的可靠、机器友好的访问 供人工智能代理使用的中央元数据(也可以通过GUI/TUI供人类使用)。

功能(v1范围)

  • 获取Maven工件的最新稳定版本(groupId:artifactId)--默认情况下不包括预租赁
  • 列出可用版本(默认情况下仅稳定)
  • 通过解析工件POM检索声明的(非传递的)依赖关系

笔记:

  • 最新稳定版本语义不包括SNAPSHOT/alpha/beta/rc/里程碑等。
  • 作用域仅声明依赖项(v1中没有传递解析)。
  • 通过STDIO传输MCP;v1不包含HTTP侦听器。

非目标(v1)

  • 完整的Maven依赖解析(父级、BOM、依赖管理)
  • 持久缓存(磁盘/Rdis/等)
  • HTTP或流式HTTP传输
  • 身份验证/授权

状态

早期发展。界面和行为可能会在第一个标记版本之前发生变化。

Docker(STDIO)

此项目包括一个用于通过STDIO运行MCP服务器的最小Docker映像。

图像亮点:

  • 支持多拱门:linux/amd64和linux/arm64(buildx)
  • 小基础映像(默认为Alpine),非root用户
  • 使用紫外线与承诺 uv.lock 用于可重复安装
  • 无暴露端口;服务器通过STDIO进行通信

构建

默认值(阿尔卑斯山基准):

docker build -t mcp-maven-central-search:local .

选择一种基础口味(例如,修身):

docker build --build-arg BASE_FLAVOR=slim -t mcp-maven-central-search:slim .

为特定平台构建(例如,Apple Silicon/arm64):

docker build --platform linux/arm64 -t mcp-maven-central-search:arm64 .

多拱(需要buildx):

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t mcp-maven-central-search:multiarch \
  .

运行(STDIO)

运行服务器并连接终端STDIN/STDOUT(通常用于启动命令的MCP主机):

docker run --rm -i mcp-maven-central-search:local

笔记:

  • 容器以非root用户身份运行,不公开任何端口。
  • 日志被写入stderr;STDIO协议位于stdout/stdin上,由FastMCP处理。
  • 如果Alpine在您的环境中导致依赖性问题,请使用 --build-arg BASE_FLAVOR=slim.

配置(环境变量)

服务器使用环境变量(通过 pydantic-settings)用于配置。所有设置都有合理的默认值, 但你可以在需要时覆盖它们。

常用设置:

Maven中心端点

  • MAVEN_CENTRAL_BASE_URL (默认值: https://central.sonatype.com/solrsearch/select)
  • MAVEN_CENTRAL_REMOTE_CONTENT_BASE_URL (默认值: https://central.sonatype.com/remotecontent)

HTTP行为

  • HTTP_TIMEOUT_SECONDS (默认值: 10)
  • HTTP_MAX_RETRIES (默认值: 2)
  • HTTP_CONCURRENCY (默认值: 10)

缓存

  • CACHE_ENABLED (默认值: true)
  • CACHE_TTL_SECONDS_SEARCH (默认值: 21600 /6小时)
  • CACHE_TTL_SECONDS_POM (默认值: 86400 /24小时)
  • CACHE_MAX_ENTRIES (默认值: 2048)

日志记录

  • LOG_LEVEL (默认值: INFO)
  • LOG_JSON (默认值: false)

Docker示例

docker run --rm -i \
  -e LOG_LEVEL=DEBUG \
  -e HTTP_TIMEOUT_SECONDS=20 \
  -e CACHE_TTL_SECONDS_SEARCH=3600 \
  mcp-maven-central-search:local

### Notes

- All values are strings in env vars; booleans accept typical values like `true/false/1/0`.
- No secrets are expected for v1; avoid placing tokens in env vars until HTTP transport/auth exists.


## Contributing

See `CONTRIBUTING.md` for development standards and the contributor workflow.

## License

MIT. See `LICENSE` for details.