Flutter Package MCP Server
Un servidor del Protocolo de Contexto de Modelo (MCP) para paquetes de Flutter, diseñado para integrarse con asistentes de IA como Claude.
Documentación
Flutter Package MCP Server
🚀 Model Context Protocol (MCP) server para paquetes Flutter - ¡Úsalo integrado con Claude y otros asistentes de IA para el ecosistema de paquetes Flutter!
Trabaja integrado con la API de Pub.dev para ofrecer a tu asistente de IA la información actualizada, versiones y documentación de los paquetes Flutter.
✨ Características
- 📦 Información de paquetes: Versión actual, descripción, dependencias e instrucciones de instalación
- 🔍 Búsqueda inteligente: Búsqueda de paquetes Flutter por palabra clave
- 📊 Gestión de versiones: Listar y comparar todas las versiones de paquetes
- 📖 Documentación completa: README, documentación de API y documentación personalizada
- ⭐ Evaluación de paquetes: Popularidad, puntuaciones de calidad y me gusta de la comunidad
- 🔥 Análisis de tendencias: Descubre los paquetes más populares y en tendencia
- 🇹🇷 Soporte en turco: Interfaz y descripciones completamente en turco
🛠️ Instalación
Requisitos previos
- Node.js v18 o superior (Descargar)
- npm o yarn como gestor de paquetes
- Claude Desktop o un cliente de IA compatible con MCP
1. Clonar el proyecto
git clone https://github.com/OrtakProje-1/flutter-package-mcp-server.git
cd flutter-package-mcp-server
2. Instalar dependencias
npm install
3. Compilar el proyecto
npm run build
4. Probar
npm run dev
Si el servidor se ejecuta correctamente, use Ctrl+C para salir de la terminal.
🔧 Configuración del cliente MCP
Uso con Claude Desktop
-
Encuentra el archivo de configuración de Claude Desktop:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json -
Edita el archivo de configuración:
{ "mcpServers": { "flutter-packages": { "command": "node", "args": ["/FULL/PATH/TO/flutter-package-mcp-server/dist/index.js"], "env": {} } } }⚠️ Importante: Reemplace la parte
/FULL/PATH/TO/flutter-package-mcp-servercon la ruta absoluta real del proyecto. -
Reinicia Claude Desktop
Uso con Cursor IDE
-
Abre la configuración de Cursor (
Cmd/Ctrl + ,) -
Agrega la siguiente configuración a los ajustes de MCP:
{ "mcp": { "servers": { "flutter-packages": { "command": "node", "args": ["/FULL/PATH/TO/flutter-package-mcp-server/dist/index.js"] } } } } -
Reinicia Cursor
Otros clientes MCP
Este servidor se puede usar con cualquier cliente que admita el estándar MCP. El servidor se comunica a través de stdio.
🎯 Ejemplos de uso
Obtener información de un paquete
"http paketinin güncel bilgilerini ve kurulum talimatlarını getir"
Buscar paquetes
"state management için en iyi Flutter paketlerini ara"
Comparar versiones
"provider paketinin tüm versiyonlarını listele"
Documentación
"bloc paketinin detaylı dokümantasyonunu ve kullanım örneklerini getir"
Análisis de tendencias
"Bu ay trend olan Flutter paketlerini göster"
Evaluación de paquetes
"riverpod ve provider paketlerini karşılaştır, hangisi daha popüler?"
🛠️ Desarrollo
Preparar el entorno de desarrollo
# Repository'yi fork edin ve klonlayın
git clone https://github.com/OrtakProje-1/flutter-package-mcp-server.git
cd flutter-package-mcp-server
# Bağımlılıkları yükleyin
npm install
# Geliştirme modunda çalıştırın
npm run dev
Scripts disponibles
# TypeScript'i build et
npm run build
# Geliştirme modunda çalıştır (hot reload)
npm run dev
# Production modunda çalıştır
npm start
# Tip kontrolü
npm run type-check
Estructura del proyecto
flutter-package-mcp-server/
├── src/
│ └── index.ts # Ana server kodu
├── dist/ # Build edilmiş dosyalar
├── package.json
├── tsconfig.json
└── README.md
Agregar una nueva característica
- Agregue un nuevo método a la clase
FlutterPackageMCPServeren el archivosrc/index.ts - Defina la nueva herramienta en el método
setupToolHandlers() - Agregue un nuevo caso en el manejador
CallToolRequestSchema - Compile y pruebe
📊 Herramientas de API disponibles
| Nombre de la herramienta | Descripción | Parámetros |
|---|---|---|
get_package_info | Obtiene detalles del paquete | package_name: string |
search_packages | Realiza búsqueda de paquetes | query: string, page?: number |
get_package_versions | Lista todas las versiones | package_name: string |
get_package_documentation | Obtiene documentación | package_name: string, version?: string |
get_package_score | Obtiene puntuaciones de paquetes | package_name: string |
get_trending_packages | Lista paquetes en tendencia | page?: number |
⚡ Rendimiento y límites
Límites de la API de Pub.dev
- Rate Limiting: 10 solicitudes por segundo, 600 por minuto
- Límite diario: 36,000 solicitudes por hora
- Timeout: 30 segundos
Consejos de optimización
- Se planea el uso de caché para paquetes de uso frecuente
- Las solicitudes por lotes se agregarán en la próxima versión
🐛 Solución de problemas
El servidor no funciona
# Node.js versiyonunu kontrol edin
node --version # v18+ olmalı
# Bağımlılıkları yeniden yükleyin
rm -rf node_modules package-lock.json
npm install
# Build işlemini tekrarlayın
npm run build
Problema de conexión con Claude Desktop
- Verifique la ubicación del archivo de configuración
- Asegúrese de que la sintaxis JSON sea correcta
- Compruebe que la ruta del archivo sea una ruta absoluta
- Cierre y abra completamente Claude Desktop
Errores de API
# İnternet bağlantısını test edin
curl https://pub.dev/api/packages/http
# DNS sorunları için
nslookup pub.dev
# Proxy ayarlarınızı kontrol edin
echo $HTTP_PROXY
echo $HTTPS_PROXY
Modo de depuración
# Detaylı loglar için
DEBUG=* npm run dev
# Sadece MCP logları için
DEBUG=mcp:* npm run dev
🤝 Contribuciones
¡Agradecemos sus contribuciones!
Proceso de contribución
- Haga un fork
- Cree una rama de características (
git checkout -b feature/amazing-feature) - Haga commit de sus cambios (
git commit -m 'Add amazing feature') - Haga push de su rama (
git push origin feature/amazing-feature) - Cree un Pull Request
Reglas de desarrollo
- Use el modo estricto de TypeScript
- Escriba pruebas para cada nueva característica
- Use el formato de commit convencional en los mensajes de commit
- Mantenga el README actualizado
Características solicitadas
- Sistema de caché de paquetes
- Soporte de modo sin conexión
- Solicitudes de API por lotes
- Visualización del árbol de dependencias de paquetes
- Verificación de vulnerabilidades
- Control de compatibilidad de licencias
📄 Licencia
Este proyecto está licenciado bajo la licencia MIT. Para más detalles, consulte el archivo LICENSE.
🙏 Agradecimientos
- Pub.dev - Repositorio de paquetes Flutter
- Model Context Protocol - Estándar de integración de IA
- Claude - Plataforma de asistente de IA
- Flutter - Excelente framework
📞 Soporte
Para preguntas o problemas:
- 🐛 Reporte de errores: GitHub Issues
- 💡 Solicitud de características: GitHub Discussions
- 📧 Contacto: hasanuk98@gmail.com
⭐ ¡No olvides dar una estrella si este proyecto te fue útil!
Hecho con ❤️ para la comunidad de Flutter