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

  1. Encontre o Arquivo de Configuração do Claude Desktop:

    macOS:

    ~/Library/Application Support/Claude/claude_desktop_config.json
    

    Windows:

    %APPDATA%\Claude\claude_desktop_config.json
    

    Linux:

    ~/.config/Claude/claude_desktop_config.json
    
  2. 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-server pelo caminho absoluto real do projeto.

  3. Reinicie o Claude Desktop

Uso com Cursor IDE

  1. Abra as configurações do Cursor (Cmd/Ctrl + ,)

  2. 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"]
          }
        }
      }
    }
    
  3. 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

  1. Adicione um novo método à classe FlutterPackageMCPServer no arquivo src/index.ts
  2. Defina a nova ferramenta no método setupToolHandlers()
  3. Adicione um novo case no handler CallToolRequestSchema
  4. Compile e teste

📊 Ferramentas de API Disponíveis

Nome da FerramentaDescriçãoParâmetros
get_package_infoObtém detalhes do pacotepackage_name: string
search_packagesRealiza busca de pacotesquery: string, page?: number
get_package_versionsLista todas as versõespackage_name: string
get_package_documentationObtém documentaçãopackage_name: string, version?: string
get_package_scoreObtém pontuações do pacotepackage_name: string
get_trending_packagesLista pacotes em altapage?: 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

  1. Verifique novamente o local do arquivo de configuração
  2. Certifique-se de que a sintaxe JSON está correta
  3. Verifique se o caminho do arquivo é um caminho absoluto
  4. 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

  1. Faça um Fork
  2. Crie um branch de recurso (git checkout -b feature/amazing-feature)
  3. Commit suas alterações (git commit -m 'Add amazing feature')
  4. Push do seu branch (git push origin feature/amazing-feature)
  5. 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

📞 Suporte

Para perguntas ou problemas:


Se este projeto foi útil, não se esqueça de dar uma estrela!

Feito com ❤️ para a Comunidade Flutter