Star Wars Explorer
A Laravel-based MCP server that enables users to browse, search, and import Star Wars character data from the SWAPI external API into a local database. It facilitates seamless AI interaction with Star Wars lore through structured tools and the Model Context Protocol.
README
🚀 Star Wars Explorer - MCP Server
Um servidor Model Context Protocol (MCP) desenvolvido com Laravel que fornece acesso a dados da franquia Star Wars através de uma API externa e banco de dados local.
📋 Sobre o Projeto
Este projeto implementa um servidor MCP usando Laravel que permite:
- 🔍 Buscar personagens de Star Wars no banco de dados local
- 📥 Importar personagens da API externa (SWAPI) para o banco local
- 💾 Armazenar dados localmente para consultas rápidas
- 🤖 Integração com IAs através do protocolo MCP
🛠️ Tecnologias
- PHP 8.5+
- Laravel 12
- Laravel MCP - Protocolo Model Context Protocol
- Laravel Sail - Ambiente Docker
- MySQL 8.4 - Banco de dados
- Redis - Cache
📦 Pré-requisitos
Antes de começar, certifique-se de ter instalado:
Nota: Como utilizamos Laravel Sail, não é necessário ter PHP instalado localmente. Tudo roda dentro do Docker.
🚀 Instalação
Passo 1: Clonar o Repositório
git clone <url-do-repositorio>
cd mcp-app
Passo 2: Configurar o Ambiente
# Copiar o arquivo de configuração de ambiente
cp .env.example .env
Passo 3: Instalar Dependências
# Instalar dependências do Composer via Sail
./vendor/bin/sail composer install
Dica: Se você não tiver o
vendor/bin/sail, execute primeiro:composer install
Passo 4: Configurar a Aplicação
# Gerar a chave da aplicação
./vendor/bin/sail artisan key:generate
# Executar as migrations do banco de dados
./vendor/bin/sail artisan migrate
Passo 5: Iniciar os Containers
# Iniciar os containers em background
./vendor/bin/sail up -d
# Ou iniciar e ver os logs em tempo real
./vendor/bin/sail up
▶️ Executando o Servidor MCP
Após a instalação, você tem duas formas de executar o servidor:
Opção 1: Modo STDIO (Produção)
Execute o servidor MCP diretamente:
./vendor/bin/sail artisan mcp:start star-wars-explorer
Este comando inicia o servidor no modo STDIO, pronto para comunicação via protocolo MCP.
Opção 2: Inspector (Desenvolvimento/Testes) ⭐ Recomendado
Use o Inspector para testar o servidor com uma interface visual:
./vendor/bin/sail artisan mcp:inspector star-wars-explorer
O Inspector:
- 🌐 Abre uma interface web interativa
- 🧪 Permite testar todas as tools disponíveis
- 📊 Mostra as respostas do servidor em tempo real
- 🔍 Facilita o debug e desenvolvimento
🧪 Testando as Funcionalidades
O servidor MCP expõe uma tool chamada star-wars-tool com as seguintes funcionalidades:
1. Buscar Todos os Personagens
Chame a tool sem parâmetros para listar todos os personagens salvos localmente:
{}
2. Buscar por Nome
Busque personagens pelo nome no banco de dados local:
{
"search": "Luke"
}
3. Importar da API Externa
Importe um personagem da API SWAPI usando o ID:
{
"id": 1
}
IDs disponíveis na API: 1, 2, 3, 4, 5... (consulte a documentação da SWAPI)
📁 Estrutura do Projeto
mcp-app/
├── app/
│ ├── Mcp/
│ │ ├── Servers/
│ │ │ ├── StarWarsServer.php # Servidor MCP principal
│ │ │ └── MyAssistantServer.php # Servidor exemplo
│ │ └── Tools/
│ │ ├── StarWarsTool.php # Tool principal
│ │ └── GetProjectStats.php # Tool exemplo
│ ├── Models/
│ │ └── Character.php # Model do personagem
│ └── Services/
│ ├── External/
│ │ └── SwapiService.php # Serviço de integração com API
│ └── Models/
│ └── CharacterService.php # Lógica de negócio
├── routes/
│ └── ai.php # Registro dos servidores MCP
├── database/
│ └── migrations/ # Migrations do banco
└── compose.yaml # Configuração Docker
🔧 Comandos Úteis
Gerenciamento do Docker
# Iniciar containers
./vendor/bin/sail up -d
# Parar containers
./vendor/bin/sail down
# Ver logs
./vendor/bin/sail logs
# Acessar shell do container
./vendor/bin/sail shell
Comandos Artisan
# Ver logs do Laravel
./vendor/bin/sail artisan pail
# Limpar cache
./vendor/bin/sail artisan config:clear
./vendor/bin/sail artisan cache:clear
# Executar migrations
./vendor/bin/sail artisan migrate
# Rollback migrations
./vendor/bin/sail artisan migrate:rollback
Comandos MCP
# Listar servidores MCP disponíveis
./vendor/bin/sail artisan mcp:inspector
# Iniciar servidor específico
./vendor/bin/sail artisan mcp:start star-wars-explorer
# Abrir inspector para testes
./vendor/bin/sail artisan mcp:inspector star-wars-explorer
🎯 Funcionalidades da Tool
A StarWarsTool oferece três modos de operação:
| Parâmetro | Tipo | Descrição |
|---|---|---|
id |
integer (opcional) |
ID do personagem na API SWAPI para importar |
search |
string (opcional) |
Nome do personagem para buscar localmente |
Comportamento:
- Se
idfor fornecido: importa da API e salva no banco local - Se
searchfor fornecido: busca no banco local por nome - Se nenhum parâmetro: retorna todos os personagens do banco local
🔌 Integração com Clientes MCP
Para integrar este servidor MCP com um cliente (como Claude Desktop, Cursor, etc.), configure:
Handle: star-wars-explorer
Comando:
php artisan mcp:start star-wars-explorer
Transport: STDIO
📝 Padrões de Código
Este projeto segue as melhores práticas do Laravel:
- ✅
declare(strict_types=1);em todos os arquivos PHP - ✅ Tipagem estrita em propriedades, parâmetros e retornos
- ✅ Services como
final readonly class - ✅ Controllers magros (Thin Controllers)
- ✅ Lógica de negócio em Services
- ✅ Dependency Injection via construtor
🐛 Troubleshooting
Erro: "MCP Server with name [star-wars-explorer] not found"
Verifique se o servidor está registrado em routes/ai.php:
Mcp::local('star-wars-explorer', StarWarsServer::class);
Erro: "Connection refused" ao iniciar Sail
Certifique-se de que o Docker está rodando:
docker ps
Erro ao executar migrations
Verifique se o banco de dados está configurado corretamente no .env:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
📚 Recursos Adicionais
📄 Licença
Este projeto está sob a licença MIT.
Desenvolvido com ❤️ usando Laravel e MCP
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。