Criando MCP Servers
Aprenda a criar seu próprio MCP Server para integrar com o SuperSquad.
Estrutura básica
Um MCP Server é uma API que implementa o protocolo MCP:
typescriptimport express from 'express'; const app = express(); app.use(express.json()); // Endpoint de descoberta de ferramentas app.get('/tools', (req, res) => { res.json({ tools: [ { name: 'get_weather', description: 'Obtém previsão do tempo para uma cidade', parameters: { type: 'object', properties: { city: { type: 'string', description: 'Nome da cidade' } }, required: ['city'] } } ] }); }); // Endpoint de execução app.post('/execute', async (req, res) => { const { tool, parameters } = req.body; if (tool === 'get_weather') { const weather = await fetchWeather(parameters.city); res.json({ result: weather }); } }); app.listen(3000);
Autenticação
Implemente autenticação via API Key:
typescriptapp.use((req, res, next) => { const apiKey = req.headers['x-api-key']; if (!apiKey || !isValidApiKey(apiKey)) { return res.status(401).json({ error: 'Unauthorized' }); } next(); });
Formato de resposta
Sucesso
json{ "result": { "city": "São Paulo", "temperature": 25, "condition": "Ensolarado" } }
Erro
json{ "error": { "code": "city_not_found", "message": "Cidade não encontrada" } }
Exemplo: Integração com banco de dados
typescriptapp.post('/execute', async (req, res) => { const { tool, parameters } = req.body; switch (tool) { case 'search_products': const products = await db.products.search({ query: parameters.query, category: parameters.category, limit: parameters.limit || 10 }); return res.json({ result: products }); case 'get_order_status': const order = await db.orders.findById(parameters.orderId); return res.json({ result: order }); default: return res.status(404).json({ error: { message: 'Tool not found' } }); } });
Deploy
Recomendamos usar:
- Vercel - Para funções serverless
- Railway - Para APIs Node.js
- Fly.io - Para containers Docker