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.