Skip to main content
Glama

NPM MCP Server

by Kpangaa
MIT License
0
README.md6.52 kB
# NPM MCP Server Un servidor MCP (Model Context Protocol) completo para interactuar con npm y sus servicios. Este servidor permite a los modelos de lenguaje usar npm de forma segura y estructurada. **Desarrollado por:** [Kpangaa](https://github.com/Kpangaa) ## 🚀 Características ### 🛠️ Herramientas Disponibles - **npm_search**: Buscar paquetes en el registro de npm - **npm_info**: Obtener información detallada de un paquete - **npm_install**: Instalar paquetes (con soporte para dependencias de desarrollo y globales) - **npm_uninstall**: Desinstalar paquetes - **npm_list**: Listar paquetes instalados - **npm_outdated**: Verificar paquetes desactualizados - **npm_update**: Actualizar paquetes a sus últimas versiones - **npm_run_script**: Ejecutar scripts definidos en package.json - **npm_init**: Inicializar un nuevo proyecto npm - **npm_audit**: Auditar vulnerabilidades de seguridad - **npm_audit_fix**: Arreglar vulnerabilidades automáticamente ### 📚 Recursos Disponibles - **npm://package.json**: Acceso al contenido del archivo package.json - **npm://scripts**: Lista de scripts disponibles en package.json ### 🧠 Prompts Disponibles - **npm_project_analysis**: Análisis completo del estado del proyecto npm ## 📦 Instalación ```bash git clone <este-repositorio> cd npm-mcp-server npm install npm run build ``` ## 🔧 Uso ### Como servidor MCP standalone ```bash npm start ``` ### Integración con clientes MCP Agrega la siguiente configuración a tu cliente MCP: ```json { "mcpServers": { "npm": { "command": "node", "args": ["/ruta/a/npm-mcp-server/main.js"], "env": {} } } } ``` ### Para Claude Desktop Agrega esto a tu archivo de configuración de Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json` en macOS): ```json { "mcpServers": { "npm": { "command": "node", "args": ["/ruta/completa/a/npm-mcp-server/main.js"] } } } ``` ## 📖 Ejemplos de Uso ### Buscar paquetes ```typescript // Buscar paquetes relacionados con React { "name": "npm_search", "arguments": { "query": "react", "limit": 5 } } ``` ### Instalar dependencias ```typescript // Instalar React y React DOM { "name": "npm_install", "arguments": { "packages": ["react", "react-dom"], "directory": "/path/to/project" } } ``` ### Instalar dependencias de desarrollo ```typescript // Instalar TypeScript como dependencia de desarrollo { "name": "npm_install", "arguments": { "packages": ["typescript", "@types/node"], "dev": true } } ``` ### Ejecutar scripts ```typescript // Ejecutar el script "build" { "name": "npm_run_script", "arguments": { "script": "build" } } ``` ### Auditar seguridad ```typescript // Verificar vulnerabilidades { "name": "npm_audit", "arguments": { "directory": "/path/to/project" } } ``` ## 🛡️ Seguridad - Todas las operaciones tienen timeout de 30 segundos - Validación de entrada usando esquemas Zod - Manejo seguro de errores - Soporte para directorios específicos para evitar operaciones no deseadas ## 🗂️ Estructura del Proyecto ``` npm-mcp-server/ ├── main.ts # Código principal del servidor ├── main.js # Código compilado ├── package.json # Configuración del proyecto ├── tsconfig.json # Configuración de TypeScript ├── README.md # Este archivo └── dist/ # Archivos compilados ``` ## 🔧 Desarrollo ### Requisitos - Node.js 18+ - npm 9+ - TypeScript 5+ ### Scripts Disponibles ```bash npm run build # Compilar TypeScript npm run dev # Ejecutar en modo desarrollo con watch npm start # Ejecutar el servidor compilado ``` ### Contribuir 1. Fork el repositorio 2. Crea una rama para tu feature (`git checkout -b feature/amazing-feature`) 3. Commit tus cambios (`git commit -m 'Add amazing feature'`) 4. Push a la rama (`git push origin feature/amazing-feature`) 5. Abre un Pull Request ## 📝 API Reference ### Herramientas (Tools) #### npm_search Busca paquetes en el registro de npm. **Parámetros:** - `query` (string): Término de búsqueda - `limit` (number, opcional): Límite de resultados (default: 10) #### npm_info Obtiene información detallada de un paquete. **Parámetros:** - `name` (string): Nombre del paquete - `version` (string, opcional): Versión específica #### npm_install Instala paquetes usando npm. **Parámetros:** - `packages` (string[]): Lista de paquetes a instalar - `directory` (string, opcional): Directorio del proyecto - `dev` (boolean, opcional): Instalar como dependencia de desarrollo - `global` (boolean, opcional): Instalación global #### npm_list Lista los paquetes instalados. **Parámetros:** - `directory` (string, opcional): Directorio del proyecto #### npm_run_script Ejecuta un script definido en package.json. **Parámetros:** - `script` (string): Nombre del script - `directory` (string, opcional): Directorio del proyecto ### Recursos (Resources) #### npm://package.json Proporciona acceso al contenido del archivo package.json del proyecto. #### npm://scripts Lista todos los scripts disponibles en package.json. ### Prompts #### npm_project_analysis Genera un análisis completo del estado actual del proyecto npm. **Argumentos:** - `directory` (string, opcional): Directorio del proyecto a analizar ## 🐛 Resolución de Problemas ### Error: "No se encuentra el módulo" Asegúrate de que todas las dependencias estén instaladas: ```bash npm install ``` ### Error de permisos Si tienes problemas con permisos globales: ```bash sudo npm install -g <paquete> ``` ### Timeout en comandos Los comandos tienen un timeout de 30 segundos. Para proyectos grandes, considera usar el directorio específico. ## 📄 Licencia MIT License - ver el archivo [LICENSE](LICENSE) para más detalles. **Autor:** [Kpangaa](https://github.com/Kpangaa) ## 🤝 Soporte Si encuentras algún problema o tienes sugerencias: 1. Revisa los [issues existentes](https://github.com/Kpangaa/npm-mcp-server/issues) 2. Crea un nuevo issue si es necesario 3. Proporciona información detallada sobre el problema ## 🔄 Changelog ### v1.0.0 - ✨ Implementación inicial del servidor MCP - 🛠️ 11 herramientas completas para npm - 📚 2 recursos para acceso a metadatos - 🧠 1 prompt para análisis de proyectos - 🛡️ Validación completa con Zod - ⚡ Soporte para TypeScript

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kpangaa/npm-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server