返回市场
麦普曼服务器

麦普曼服务器

作者:oborchers7 星标更新:2025-04-30

项目介绍

Pacman Logo

Pacman MCP Server

一个提供包索引查询功能的模型上下文协议服务器。此服务器使LLMs能够从像PyPI、npm、crates.io、Docker Hub和Terraform Registry这样的包仓库中搜索和检索信息。

<a href="https://glama.ai/mcp/servers/@oborchers/mcp-server-pacman"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=3607375942,1533352560&fm=3081&app=3081&f=PNG?w=760&h=400" alt="mcp-server-pacman MCP server" /> </a>

可用工具

  • search_package - 在包索引中搜索包

    • index (字符串,必需):要搜索的包索引("pypi","npm","crates","terraform")
    • query (字符串,必需):包名或搜索查询
    • limit (整数,可选):返回的最大结果数量(默认:5,最大:50)
  • package_info - 获取特定包的详细信息

    • index (字符串,必需):要查询的包索引("pypi","npm","crates","terraform")
    • name (字符串,必需):包名
    • version (字符串,可选):要获取信息的具体版本(默认:最新)
  • search_docker_image - 在Docker Hub中搜索Docker镜像

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

    • name (字符串,必需):镜像名(例如,user/repo 或 library/repo)
    • tag (字符串,可选):具体镜像标签(默认:最新)
  • terraform_module_latest_version - 获取特定Terraform模块的最新版本

    • name (字符串,必需):模块名(格式:namespace/name/provider)

提示

  • search_pypi

    • 在PyPI上搜索Python包
    • 参数:
      • query (字符串,必需):包名或搜索查询
  • pypi_info

    • 获取特定Python包的信息
    • 参数:
      • name (字符串,必需):包名
      • version (字符串,可选):具体版本
  • search_npm

    • 在npm上搜索JavaScript包
    • 参数:
      • query (字符串,必需):包名或搜索查询
  • npm_info

    • 获取特定JavaScript包的信息
    • 参数:
      • name (字符串,必需):包名
      • version (字符串,可选):具体版本
  • search_crates

    • 在crates.io上搜索Rust包
    • 参数:
      • query (字符串,必需):包名或搜索查询
  • crates_info

    • 获取特定Rust包的信息
    • 参数:
      • name (字符串,必需):包名
      • version (字符串,可选):具体版本
  • search_docker

    • 在Docker Hub上搜索Docker镜像
    • 参数:
      • query (字符串,必需):镜像名或搜索查询
  • docker_info

    • 获取特定Docker镜像的信息
    • 参数:
      • name (字符串,必需):镜像名(例如,user/repo)
      • tag (字符串,可选):具体标签
  • search_terraform

    • 在Terraform Registry中搜索Terraform模块
    • 参数:
      • query (字符串,必需):模块名或搜索查询
  • terraform_info

    • 获取特定Terraform模块的信息
    • 参数:
      • name (字符串,必需):模块名(格式:namespace/name/provider)
  • terraform_latest_version

    • 获取特定Terraform模块的最新版本
    • 参数:
      • name (字符串,必需):模块名(格式: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设置中添加:

<details> <summary>使用uvx</summary>
"mcpServers": {
  "pacman": {
    "command": "uvx",
    "args": ["mcp-server-pacman"]
  }
}
</details> <details> <summary>使用docker</summary>
"mcpServers": {
  "pacman": {
    "command": "docker",
    "args": ["run", "-i", "--rm", "oborchers/mcp-server-pacman:latest"]
  }
}
</details> <details> <summary>使用pip安装</summary>
"mcpServers": {
  "pacman": {
    "command": "python",
    "args": ["-m", "mcp-server-pacman"]
  }
}
</details>

针对VS Code配置

对于手动安装,向VS Code中的用户设置(JSON)文件添加以下JSON块。你可以通过按Ctrl + Shift + P并键入Preferences: Open User Settings (JSON)来完成此操作。

可选地,你可以将其添加到工作区中的名为.vscode/mcp.json的文件中。这将允许你与他人共享配置。

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

<details> <summary>使用uvx</summary>
{
  "mcp": {
    "servers": {
      "pacman": {
        "command": "uvx",
        "args": ["mcp-server-pacman"]
      }
    }
  }
}
</details> <details> <summary>使用Docker</summary>
{
  "mcp": {
    "servers": {
      "pacman": {
        "command": "docker",
        "args": ["run", "-i", "--rm", "oborchers/mcp-server-pacman:latest"]
      }
    }
  }
}
</details>

自定义 - 用户代理

默认情况下,服务器将使用用户代理:

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

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

开发

运行测试

  • 运行所有测试:

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

    # 运行所有供应商测试
    uv run pytest -xvs tests/providers/
    
    # 运行特定供应商的集成测试
    uv run pytest -xvs tests/integration/test_pypi_integration.py
    
    # 运行特定测试类
    uv run pytest -xvs tests/providers/test_npm.py::TestNPMFunctions
    
    # 运行特定测试方法
    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:latestoborchers/mcp-server-pacman:X.Y.Z

项目结构

代码库按照以下结构组织:

src/mcp_server_pacman/
├── models/             # 数据模型/模式
├── providers/          # 包注册表API客户端
│   ├── pypi.py         # PyPI API函数
│   ├── npm.py          # npm API函数
│   ├── crates.py       # crates.io API函数
│   ├── dockerhub.py    # Docker Hub API函数
│   └── terraform.py    # Terraform Registry API函数
├── utils/              # 工具和辅助程序
│   ├── cache.py        # 缓存功能
│   ├── constants.py    # 共享常量
│   └── parsers.py      # HTML解析工具
├── __init__.py         # 包初始化
├── __main__.py         # 入口点
└── server.py           # MCP服务器实现

测试遵循类似的结构:

tests/
├── integration/        # 集成测试(实际API调用)
├── models/             # 模型验证测试
├── providers/          # 供应商函数测试
└── utils/              # 测试工具

贡献

我们鼓励贡献以帮助扩展和改进mcp-server-pacman。无论你是想添加新的包索引,增强现有功能,还是改善文档,你的意见都是宝贵的。

有关其他MCP服务器和实现模式的例子,请参见: https://github.com/modelcontextprotocol/servers

欢迎提交拉取请求!请自由贡献新想法、错误修复或改进,使mcp-server-pacman更加强大和有用。

许可证

mcp-server-pacman根据MIT许可证授权。这意味着你可以自由使用、修改和分发软件,但需遵守MIT许可证的条款和条件。更多详情,请参阅项目存储库中的LICENSE文件。