mcpField
P
Pacman MCP Server

Pacman MCP Server

本地服务
github.com/oborchers开发工具113 天前更新

关于 Pacman MCP Server

Pacman MCP Server 为 LLM 提供多个软件包索引和 Docker Hub 的搜索与详情查询,适用于查找依赖包、镜像和 Terraform 模块。它通过 MCP 工具及提示词提供检索入口。

主要功能

  1. 01搜索 PyPI、npm 和 crates.io
  2. 02查询包的详细信息及版本
  3. 03搜索并查询 Docker 镜像
  4. 04获取 Terraform 模块最新版本
  5. 05提供索引查询提示词

适用场景

  1. 01查找项目所需的软件包
  2. 02核对指定包的版本信息
  3. 03搜索 Docker Hub 镜像
  4. 04查询 Terraform 模块版本

MCP 相关

该 MCP 服务向 MCP 客户端提供包索引、Docker Hub 和 Terraform Registry 的搜索与详情查询工具,并提供用于检索的提示词。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"pacman": {
"command": "uvx",
"args": [
"mcp-server-pacman"
]
}
}
}
启动命令uvx mcp-server-pacman

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

安装包
pypimcp-server-pacman

工具

还没有获取到工具列表

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

详细介绍

Pacman Logo

Pacman MCP 服务

一个 Model Context Protocol 服务,提供软件包索引查询功能。此服务可让大模型搜索并获取 PyPI、npm、crates.io、Docker Hub 和 Terraform Registry 等软件包仓库中的信息。

mcp-server-pacman MCP server
可用工具
  • search_package - 在软件包索引中搜索软件包

    • index(string,必填):要搜索的软件包索引("pypi"、"npm"、"crates"、"terraform")
    • query(string,必填):软件包名称或搜索查询
    • limit(integer,可选):返回结果的最大数量(默认值:5,最大值:50)
  • package_info - 获取特定软件包的详细信息

    • index(string,必填):要查询的软件包索引("pypi"、"npm"、"crates"、"terraform")
    • name(string,必填):软件包名称
    • version(string,可选):要获取信息的特定版本(默认值:最新版本)
  • search_docker_image - 在 Docker Hub 中搜索 Docker 镜像

    • query(string,必填):镜像名称或搜索查询
    • limit(integer,可选):返回结果的最大数量(默认值:5,最大值:50)
  • docker_image_info - 获取特定 Docker 镜像的详细信息

    • name(string,必填):镜像名称(例如,user/repo 或 library/repo)
    • tag(string,可选):特定镜像标签(默认值:latest)
  • terraform_module_latest_version - 获取 Terraform 模块的最新版本

    • name(string,必填):模块名称(格式:namespace/name/provider)
提示词
  • search_pypi

    • 搜索 PyPI 上的 Python 软件包
    • 参数:
      • query(string,必填):软件包名称或搜索查询
  • pypi_info

    • 获取特定 Python 软件包的信息
    • 参数:
      • name(string,必填):软件包名称
      • version(string,可选):特定版本
  • search_npm

    • 搜索 npm 上的 JavaScript 软件包
    • 参数:
      • query(string,必填):软件包名称或搜索查询
  • npm_info

    • 获取特定 JavaScript 软件包的信息
    • 参数:
      • name(string,必填):软件包名称
      • version(string,可选):特定版本
  • search_crates

    • 搜索 crates.io 上的 Rust 软件包
    • 参数:
      • query(string,必填):软件包名称或搜索查询
  • crates_info

    • 获取特定 Rust 软件包的信息
    • 参数:
      • name(string,必填):软件包名称
      • version(string,可选):特定版本
  • search_docker

    • 搜索 Docker Hub 上的 Docker 镜像
    • 参数:
      • query(string,必填):镜像名称或搜索查询
  • docker_info

    • 获取特定 Docker 镜像的信息
    • 参数:
      • name(string,必填):镜像名称(例如,user/repo)
      • tag(string,可选):特定标签
  • search_terraform

    • 在 Terraform Registry 中搜索 Terraform 模块
    • 参数:
      • query(string,必填):模块名称或搜索查询
  • terraform_info

    • 获取特定 Terraform 模块的信息
    • 参数:
      • name(string,必填):模块名称(格式:namespace/name/provider)
  • terraform_latest_version

    • 获取特定 Terraform 模块的最新版本
    • 参数:
      • name(string,必填):模块名称(格式:namespace/name/provider)

安装

使用 uv(推荐)

使用 uv 时无需进行特定安装。我们将使用 uvx 直接运行 mcp-server-pacman。

使用 PIP

或者,你也可以通过 pip 安装 mcp-server-pacman:

pip install mcp-server-pacman

安装后,你可以将其作为脚本运行:

python -m mcp_server_pacman
使用 Docker

你也可以使用 Docker 镜像:

docker pull oborchers/mcp-server-pacman:latest
docker run -i --rm oborchers/mcp-server-pacman

配置

为 Claude.app 配置

将以下内容添加到 Claude 设置中:

使用 uvx
"mcpServers": {
  "pacman": {
    "command": "uvx",
    "args": ["mcp-server-pacman"]
  }
}
使用 docker
"mcpServers": {
  "pacman": {
    "command": "docker",
    "args": ["run", "-i", "--rm", "oborchers/mcp-server-pacman:latest"]
  }
}
使用 pip 安装
"mcpServers": {
  "pacman": {
    "command": "python",
    "args": ["-m", "mcp-server-pacman"]
  }
}
为 VS Code 配置

如需手动安装,请将以下 JSON 代码块添加到 VS Code 的“用户设置 (JSON)”文件中。按下 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 即可打开该文件。

也可以将其添加到工作区中名为 .vscode/mcp.json 的文件。这样就可以与他人共享配置。

请注意,使用 mcp.json 文件时需要 mcp 键。

使用 uvx
{
  "mcp": {
    "servers": {
      "pacman": {
        "command": "uvx",
        "args": ["mcp-server-pacman"]
      }
    }
  }
}
使用 Docker
{
  "mcp": {
    "servers": {
      "pacman": {
        "command": "docker",
        "args": ["run", "-i", "--rm", "oborchers/mcp-server-pacman:latest"]
      }
    }
  }
}
自定义 - 用户代理

默认情况下,服务会使用以下用户代理:

ModelContextProtocol/1.0 Pacman (+https://github.com/modelcontextprotocol/servers)

可以在配置中的 args 列表添加参数 --user-agent=YourUserAgent 来自定义用户代理。

开发

运行测试
  • 运行所有测试:

    uv run pytest -xvs
    
  • 运行指定类别的测试:

    # Run all provider tests
    uv run pytest -xvs tests/providers/
    
    # Run integration tests for a specific provider
    uv run pytest -xvs tests/integration/test_pypi_integration.py
    
    # Run specific test class
    uv run pytest -xvs tests/providers/test_npm.py::TestNPMFunctions
    
    # Run a specific test method
    uv run pytest -xvs tests/providers/test_pypi.py::TestPyPIFunctions::test_search_pypi_success
    
  • 检查代码风格:

    uv run ruff check .
    uv run ruff format --check .
    
  • 格式化代码:

    uv run ruff format .
    
调试

你可以使用 MCP 检查器调试服务。对于 uvx 安装:

npx @modelcontextprotocol/inspector uvx mcp-server-pacman

如果你已将软件包安装到特定目录,或正在对其进行开发,也可以使用:

cd path/to/pacman
npx @modelcontextprotocol/inspector uv run mcp-server-pacman

发布流程

项目使用 GitHub Actions 自动发布:

  1. 更新 pyproject.toml 中的版本
  2. 使用 git tag vX.Y.Z 创建新标签(例如,git tag v0.1.0)
  3. 使用 git push --tags 推送标签

系统将自动:

  • 验证 pyproject.toml 中的版本与标签是否匹配
  • 运行测试和 lint 检查
  • 构建并发布到 PyPI
  • 构建并发布到 Docker Hub,标签为 oborchers/mcp-server-pacman:latest 和 oborchers/mcp-server-pacman:X.Y.Z

项目结构

代码库按以下结构组织:

src/mcp_server_pacman/
├── models/             # Data models/schemas
├── providers/          # Package registry API clients
│   ├── pypi.py         # PyPI API functions
│   ├── npm.py          # npm API functions
│   ├── crates.py       # crates.io API functions
│   ├── dockerhub.py    # Docker Hub API functions
│   └── terraform.py    # Terraform Registry API functions
├── utils/              # Utilities and helpers
│   ├── cache.py        # Caching functionality
│   ├── constants.py    # Shared constants
│   └── parsers.py      # HTML parsing utilities
├── __init__.py         # Package initialization
├── __main__.py         # Entry point
└── server.py           # MCP server implementation

测试采用类似的结构:

tests/
├── integration/        # Integration tests (real API calls)
├── models/             # Model validation tests
├── providers/          # Provider function tests
└── utils/              # Test utilities

贡献

欢迎参与贡献,帮助扩展和改进 mcp-server-pacman。无论是添加新的软件包索引、增强现有功能,还是改进文档,你的贡献都很有价值。

如需了解其他 MCP 服务和实现模式的示例,请参阅: https://github.com/modelcontextprotocol/servers

欢迎提交拉取请求!欢迎贡献新想法、错误修复或改进,让 mcp-server-pacman 变得更强大、更实用。

作者

由 Dr. Oliver Borchers 构建,他是 IU Group 的 Executive AI and Automation Partner 兼 Head of AI Engineering。

许可证

mcp-server-pacman 采用 MIT 许可证授权。这意味着你可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。详情请参阅项目代码库中的 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

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

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