Flutter Package MCP Server
Um servidor Model Context Protocol (MCP) para pacotes Flutter, projetado para integrar com assistentes de IA como Claude.
Documentação
Flutter Package MCP Server
🚀 Servidor Model Context Protocol (MCP) para pacotes Flutter - Use o ecossistema de pacotes Flutter integrado com Claude e outros assistentes de IA!
Integrado com a API do Pub.dev, fornece informações atualizadas, versões e documentações de pacotes Flutter para uso pelo seu assistente de IA.
✨ Recursos
- 📦 Informações do Pacote: Versão atual, descrição, dependências e instruções de instalação
- 🔍 Busca Inteligente: Busca de pacotes Flutter por palavra-chave
- 📊 Gerenciamento de Versões: Listagem e comparação de todas as versões do pacote
- 📖 Documentação Abrangente: README, documentação da API e documentação personalizada
- ⭐ Avaliação de Pacotes: Popularidade, pontuações de qualidade e curtidas da comunidade
- 🔥 Análise de Tendências: Descubra os pacotes mais populares e em alta
- 🇹🇷 Suporte ao Turco: Interface e descrições totalmente em turco
🛠️ Instalação
Pré-requisitos
- Node.js v18 ou superior (Baixar)
- Gerenciador de pacotes npm ou yarn
- Claude Desktop ou um cliente de IA compatível com MCP
1. Clone o Projeto
git clone https://github.com/OrtakProje-1/flutter-package-mcp-server.git
cd flutter-package-mcp-server
2. Instale as Dependências
npm install
3. Compile o Projeto
npm run build
4. Teste
npm run dev
Se o servidor funcionar com sucesso, use Ctrl+C para sair do terminal.
🔧 Configuração do Cliente MCP
Uso com Claude Desktop
-
Encontre o Arquivo de Configuração do Claude Desktop:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json -
Edite o arquivo de configuração:
{ "mcpServers": { "flutter-packages": { "command": "node", "args": ["/FULL/PATH/TO/flutter-package-mcp-server/dist/index.js"], "env": {} } } }⚠️ Importante: Substitua a parte
/FULL/PATH/TO/flutter-package-mcp-serverpelo caminho absoluto real do projeto. -
Reinicie o Claude Desktop
Uso com Cursor IDE
-
Abra as configurações do Cursor (
Cmd/Ctrl + ,) -
Adicione a seguinte configuração às configurações de MCP:
{ "mcp": { "servers": { "flutter-packages": { "command": "node", "args": ["/FULL/PATH/TO/flutter-package-mcp-server/dist/index.js"] } } } } -
Reinicie o Cursor
Outros Clientes MCP
Este servidor pode ser usado com qualquer cliente que suporte o padrão MCP. O servidor se comunica via stdio.
🎯 Exemplos de Uso
Obter Informações do Pacote
"http paketinin güncel bilgilerini ve kurulum talimatlarını getir"
Buscar Pacote
"state management için en iyi Flutter paketlerini ara"
Comparação de Versões
"provider paketinin tüm versiyonlarını listele"
Documentação
"bloc paketinin detaylı dokümantasyonunu ve kullanım örneklerini getir"
Análise de Tendências
"Bu ay trend olan Flutter paketlerini göster"
Avaliação de Pacotes
"riverpod ve provider paketlerini karşılaştır, hangisi daha popüler?"
🛠️ Desenvolvimento
Preparando o Ambiente de Desenvolvimento
# 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 Existentes
# 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
Estrutura do Projeto
flutter-package-mcp-server/
├── src/
│ └── index.ts # Ana server kodu
├── dist/ # Build edilmiş dosyalar
├── package.json
├── tsconfig.json
└── README.md
Adicionando Novos Recursos
- Adicione um novo método à classe
FlutterPackageMCPServerno arquivosrc/index.ts - Defina a nova ferramenta no método
setupToolHandlers() - Adicione um novo case no handler
CallToolRequestSchema - Compile e teste
📊 Ferramentas de API Disponíveis
| Nome da Ferramenta | Descrição | Parâmetros |
|---|---|---|
get_package_info | Obtém detalhes do pacote | package_name: string |
search_packages | Realiza busca de pacotes | query: string, page?: number |
get_package_versions | Lista todas as versões | package_name: string |
get_package_documentation | Obtém documentação | package_name: string, version?: string |
get_package_score | Obtém pontuações do pacote | package_name: string |
get_trending_packages | Lista pacotes em alta | page?: number |
⚡ Desempenho e Limites
Limites da API Pub.dev
- Rate Limiting: 10 solicitações por segundo, 600 solicitações por minuto
- Limite Diário: 36.000 solicitações/hora
- Timeout: 30 segundos
Dicas de Otimização
- Uso de cache para pacotes usados com frequência está planejado
- Solicitações em lote serão adicionadas na próxima versão
🐛 Solução de Problemas
Servidor Não 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 Conexão com Claude Desktop
- Verifique novamente o local do arquivo de configuração
- Certifique-se de que a sintaxe JSON está correta
- Verifique se o caminho do arquivo é um caminho absoluto
- Feche e abra completamente o Claude Desktop
Erros 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 Depuração
# Detaylı loglar için
DEBUG=* npm run dev
# Sadece MCP logları için
DEBUG=mcp:* npm run dev
🤝 Contribuindo
Suas contribuições são bem-vindas!
Processo de Contribuição
- Faça um Fork
- Crie um branch de recurso (
git checkout -b feature/amazing-feature) - Commit suas alterações (
git commit -m 'Add amazing feature') - Push do seu branch (
git push origin feature/amazing-feature) - Crie um Pull Request
Regras de Desenvolvimento
- Use o modo estrito do TypeScript
- Escreva testes para cada novo recurso
- Use o formato de commit convencional nas mensagens de commit
- Mantenha o README atualizado
Recursos Desejados
- Sistema de cache de pacotes
- Suporte a modo offline
- Solicitações de API em lote
- Visualização da árvore de dependências do pacote
- Verificação de vulnerabilidades
- Verificação de compatibilidade de licenças
📄 Licença
Este projeto é licenciado sob a licença MIT. Para detalhes, consulte o arquivo LICENSE.
🙏 Agradecimentos
- Pub.dev - Repositório de pacotes Flutter
- Model Context Protocol - Padrão de integração de IA
- Claude - Plataforma de assistente de IA
- Flutter - Framework incrível
📞 Suporte
Para perguntas ou problemas:
- 🐛 Relatar Bug: GitHub Issues
- 💡 Solicitar Recurso: GitHub Discussions
- 📧 Contato: hasanuk98@gmail.com
⭐ Se este projeto foi útil, não se esqueça de dar uma estrela!
Feito com ❤️ para a Comunidade Flutter