oberdancunha/rust-flutter-flame-mcp
If you are the rightful owner of rust-flutter-flame-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Model Context Protocol (MCP) is an open protocol developed by Anthropic to connect AI assistants to external tools and data.
O MCP (Model Context Protocol) é um protocolo aberto desenvolvido pela Anthropic para conectar assistentes de IA a ferramentas e dados externos. Ele permite que IAs como o Claude ou Copilot acessem APIs, bancos de dados ou softwares específicos, expandindo suas capacidades além do ambiente padrão.
Um servidor MCP funciona como um intermediário: recebe solicitações da IA e executa ações reais, como consultar dados em tempo real ou integrar ferramentas de desenvolvimento. Exemplos de uso incluem:
- Automação de tarefas em editores de código.
- Análise de dados via APIs.
- Criação de aplicações interativas com jogos ou dashboards.
O Flame é uma biblioteca de código aberto (open-source) para criar jogos 2D usando a linguagem Dart e o toolkit Flutter. Ela funciona como um motor de jogos simples e modular.
Com o Flame é possível adicionar elementos como sprites (imagens animadas), física (gravidade e colisões), áudio, controles de toque e muito mais, tudo integrado ao Flutter. É ideal para desenvolvedores que querem criar jogos casuais, como jogos de plataforma ou quebra-cabeças, de forma rápida e eficiente.
Esse projeto é uma reprodução de How I Built a Flame Engine MCP Server to Build Flutter Games (não literal, pois foi desenvolvido em Rust, enquanto o original é Dart ), e tem como objetivo criar um servidor MCP disponibilizando exclusivamente a documentação e os tutoriais da biblioteca Flame, garantindo que o contexto da IA seja puro e focado nessa biblioteca.
O projeto
Este projeto é composto por dois subprojetos: git-download (download dos arquivos de documentação do Flame) e flutter-flame-mcp (servidor MCP para expor a documentação do Flame a um agente de IA).
Git-download
O projeto git-download é uma ferramenta escrita em Rust que realiza o download da documentação do Flame hospedada no GitHub. Ela conecta-se à API do GitHub para listar apenas os arquivos de documentação em formato Markdown (.md) localizados na pasta doc, baixa os arquivos via comando do Git, armazenando-os em um diretório chamado docs_cache na raiz do projeto, preservando a estrutura de diretórios original.
Atenção — remoção do docs_cache: antes do início do processo de download, o diretório docs_cache é completamente removido. Isso pode causar perda de quaisquer alterações ou arquivos locais presentes nesse diretório. Caso necessário, faça backup de qualquer conteúdo importante antes de executar o download.
Configuração do token do GitHub
O projeto git-download requer um token do GitHub para acessar a API do GitHub. Para configurar o token, siga os passos abaixo:
-
Gere um token pessoal no GitHub com permissões de leitura de repositórios públicos. Instruções: https://docs.github.com/pt/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
-
Configure a variável de ambiente
GITHUB_API_TOKEN
no seu terminal:
export GITHUB_API_TOKEN=<seu_token_aqui>
Dica: para persistir a variável, adicione a linha acima ao seu ~/.bashrc
ou ~/.profile
.
Flutter-flame-mcp
O projeto flutter-flame-mcp é o servidor MCP, implementado em Rust, focado em expor exclusivamente a documentação e tutoriais da biblioteca Flame para agentes de IA.
O projeto acessa a documentação, baixada pelo git-download, realizando a listagem desses arquivos e a leitura de seu conteúdo sob demanda, permitindo que IAs acessem e consultem esses dados de forma estruturada, sem contexto externo.
A comunicação com os assistentes de IA é realizada através do que chamaremos de rotas de acesso:
-
Inicialização Quando a IA se conecta, ela chama essa rota para "apresentar" o servidor. O servidor responde com informações básicas, como seu nome ("flutter-flame-mcp"), versão e capacidades (possibilidade de listar e ler documentos, por exemplo). É o primeiro passo para configurar a conexão. Sem isso, a IA não sabe o que o servidor pode fazer.
-
Listagem de Recursos Lista todos os arquivos de documentação disponíveis na pasta docs_cache. Por exemplo, retorna uma lista de URIs como flame://docs_cache/resources/resources ou flame://docs_cache/tutorials/tutorials. O servidor devolve uma lista JSON com os caminhos relativos de cada arquivo, permitindo que a IA possa "navegar" pelos tópicos do Flame. É como um índice de livros.
-
Leitura de um Recurso Recebe uma URI (como flame://docs_cache/flame/flame) e devolve o conteúdo completo do arquivo correspondente em Markdown. Se o arquivo não existir, retorna um erro. Isso permite que a IA leia tutoriais ou guias específicos sobre o Flame, como, por exemplo, "como adicionar física em jogos". A IA pede o conteúdo de um tutorial, e o servidor responde com o texto puro do arquivo.
-
Ferramentas (Opcional) Essa rota permite expandir o servidor para tarefas além de leitura, como gerar código ou testar jogos Flame.
Como executar o projeto
Pré-requisitos
Para executar o projeto, é necessário ter o Rust instalado ou usar um dev container. O link para a instalação do Rust está na seção Referências.
Passos para execução
Existem duas formas de iniciar o servidor MCP:
- Atualizando a documentação do Flame antes de iniciar o servidor (execução do projeto git-download):
cargo run -p flutter-flame-mcp -- --download
# ou
cargo run -p flutter-flame-mcp -- -d
Isso fará o download dos arquivos de documentação do Flame e os armazenará em docs_cache
localizado na raiz do projeto.
- Sem atualizar a documentação:
cargo run -p flutter-flame-mcp
O servidor local estará disponível em http://localhost:8080/mcp
.
Exemplos
Iniciando o servidor MCP e realizando a conexão usando o Visual Studio Code. |
"Apresentação" para que a IA saiba o que o servidor pode fazer. |
Solicitar o tutorial do Space Shooter. |
Rodando o projeto antes do início das modificações. |
Processo inicial de reprodução do Space Shooter com o agente de IA usando o tutorial solicitado. |
Referências
- Documentação oficial do MCP: https://modelcontextprotocol.io/
- Repositório do Flame no GitHub: https://github.com/flame-engine/flame
- Documentação oficial do Flame: https://docs.flame-engine.org/latest/
- Instalação do Rust: https://www.rust-lang.org/pt-BR/tools/install