
Servidor Pacman MCP
Un servidor de Protocolo de Contexto de Modelo que ofrece funciones de consulta de índices de paquetes. Este servidor permite a los LLM buscar y recuperar información de repositorios de paquetes como PyPI, npm, crates.io, Docker Hub y Terraform Registry.
Herramientas disponibles
search_package- Busca paquetes en los índices de paquetesindex(cadena, obligatorio): Índice del paquete a buscar ("pypi", "npm", "crates", "terraform")query(cadena, obligatoria): nombre del paquete o consulta de búsquedalimit(entero, opcional): número máximo de resultados a devolver (predeterminado: 5, máximo: 50)
package_info- Obtener información detallada sobre un paquete específicoindex(cadena, obligatorio): índice del paquete a consultar ("pypi", "npm", "crates", "terraform")name(cadena, obligatorio): nombre del paqueteversion(cadena, opcional): versión específica para la que obtener información (predeterminado: la más reciente)
search_docker_image: busca imágenes de Docker en Docker Hubquery(cadena, obligatoria): Nombre de la imagen o consulta de búsquedalimit(entero, opcional): número máximo de resultados a devolver (predeterminado: 5, máximo: 50)
docker_image_info: obtenga información detallada sobre una imagen de Docker específicaname(cadena, obligatorio): nombre de la imagen (por ejemplo, usuario/repositorio o biblioteca/repositorio)tag(cadena, opcional): etiqueta de imagen específica (predeterminada: última)
terraform_module_latest_version: obtener la última versión de un módulo de Terraformname(cadena, obligatorio): Nombre del módulo (formato: espacio de nombres/nombre/proveedor)
Indicaciones
búsqueda_pypi
Buscar paquetes de Python en PyPI
Argumentos:
query(cadena, obligatoria): nombre del paquete o consulta de búsqueda
información de pypi
Obtener información sobre un paquete específico de Python
Argumentos:
name(cadena, obligatorio): nombre del paqueteversion(cadena, opcional): versión específica
búsqueda_npm
Buscar paquetes de JavaScript en npm
Argumentos:
query(cadena, obligatoria): nombre del paquete o consulta de búsqueda
información npm
Obtener información sobre un paquete de JavaScript específico
Argumentos:
name(cadena, obligatorio): nombre del paqueteversion(cadena, opcional): versión específica
cajas de búsqueda
Busque paquetes de Rust en crates.io
Argumentos:
query(cadena, obligatoria): nombre del paquete o consulta de búsqueda
información de cajas
Obtenga información sobre un paquete específico de Rust
Argumentos:
name(cadena, obligatorio): nombre del paqueteversion(cadena, opcional): versión específica
búsqueda_docker
Buscar imágenes de Docker en Docker Hub
Argumentos:
query(cadena, obligatoria): Nombre de la imagen o consulta de búsqueda
información del contenedor
Obtener información sobre una imagen de Docker específica
Argumentos:
name(cadena, obligatorio): nombre de la imagen (por ejemplo, usuario/repositorio)tag(cadena, opcional): etiqueta específica
búsqueda_terraform
Busque módulos de Terraform en el Registro de Terraform
Argumentos:
query(cadena, obligatoria): nombre del módulo o consulta de búsqueda
información de terraform
Obtenga información sobre un módulo específico de Terraform
Argumentos:
name(cadena, obligatorio): Nombre del módulo (formato: espacio de nombres/nombre/proveedor)
terraform_última_versión
Obtenga la última versión de un módulo específico de Terraform
Argumentos:
name(cadena, obligatorio): Nombre del módulo (formato: espacio de nombres/nombre/proveedor)
Instalación
Uso de uv (recomendado)
Al usar uv , no se requiere ninguna instalación específica. Usaremos uvx para ejecutar directamente mcp-server-pacman .
Uso de PIP
Alternativamente, puede instalar mcp-server-pacman a través de pip:
pip install mcp-server-pacmanDespués de la instalación, puedes ejecutarlo como un script usando:
python -m mcp_server_pacmanUsando Docker
También puedes utilizar la imagen de Docker:
docker pull oborchers/mcp-server-pacman:latest
docker run -i --rm oborchers/mcp-server-pacmanRelated MCP server: json-mcp-server
Configuración
Configurar para Claude.app
Añade a tu configuración de Claude:
"mcpServers": {
"pacman": {
"command": "uvx",
"args": ["mcp-server-pacman"]
}
}"mcpServers": {
"pacman": {
"command": "docker",
"args": ["run", "-i", "--rm", "oborchers/mcp-server-pacman:latest"]
}
}"mcpServers": {
"pacman": {
"command": "python",
"args": ["-m", "mcp-server-pacman"]
}
}Configurar para VS Code
Para la instalación manual, agregue el siguiente bloque JSON a su archivo de configuración de usuario (JSON) en VS Code. Para ello, presione Ctrl + Shift + P y escriba Preferences: Open User Settings (JSON) .
Opcionalmente, puede agregarlo a un archivo llamado .vscode/mcp.json en su espacio de trabajo. Esto le permitirá compartir la configuración con otros.
Tenga en cuenta que la clave
mcpes necesaria cuando se utiliza el archivomcp.json.
{
"mcp": {
"servers": {
"pacman": {
"command": "uvx",
"args": ["mcp-server-pacman"]
}
}
}
}{
"mcp": {
"servers": {
"pacman": {
"command": "docker",
"args": ["run", "-i", "--rm", "oborchers/mcp-server-pacman:latest"]
}
}
}
}Personalización - Agente de usuario
De forma predeterminada, el servidor utilizará el agente de usuario:
ModelContextProtocol/1.0 Pacman (+https://github.com/modelcontextprotocol/servers)Esto se puede personalizar agregando el argumento --user-agent=YourUserAgent a la lista de args en la configuración.
Desarrollo
Ejecución de pruebas
Ejecutar todas las pruebas:
uv run pytest -xvsEjecutar categorías de pruebas específicas:
# 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_successComprobar el estilo del código:
uv run ruff check . uv run ruff format --check .Código de formato:
uv run ruff format .
Depuración
Puede usar el inspector MCP para depurar el servidor. Para instalaciones uvx:
npx @modelcontextprotocol/inspector uvx mcp-server-pacmanO si ha instalado el paquete en un directorio específico o está desarrollando en él:
cd path/to/pacman
npx @modelcontextprotocol/inspector uv run mcp-server-pacmanProceso de liberación
El proyecto utiliza GitHub Actions para lanzamientos automatizados:
Actualice la versión en
pyproject.tomlCrea una nueva etiqueta con
git tag vX.YZ(por ejemplo,git tag v0.1.0)Empuje la etiqueta con
git push --tags
Esto automáticamente:
Verifique que la versión en
pyproject.tomlcoincida con la etiquetaEjecutar pruebas y comprobaciones de pelusa
Construir y publicar en PyPI
Construya y publique en Docker Hub como
oborchers/mcp-server-pacman:latestyoborchers/mcp-server-pacman:XYZ
Estructura del proyecto
La base del código está organizada en la siguiente estructura:
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 implementationLas pruebas siguen una estructura similar:
tests/
├── integration/ # Integration tests (real API calls)
├── models/ # Model validation tests
├── providers/ # Provider function tests
└── utils/ # Test utilitiesContribuyendo
Invitamos a todos a contribuir para expandir y mejorar mcp-server-pacman. Ya sea que desee agregar nuevos índices de paquetes, mejorar la funcionalidad existente o mejorar la documentación, su aporte es valioso.
Para ver ejemplos de otros servidores MCP y patrones de implementación, consulte: https://github.com/modelcontextprotocol/servers
¡Aceptamos solicitudes de incorporación de cambios! Siéntete libre de contribuir con nuevas ideas, correcciones de errores o mejoras para que mcp-server-pacman sea aún más potente y útil.
Licencia
mcp-server-pacman está licenciado bajo la Licencia MIT. Esto significa que usted tiene libertad de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.