Supersquad Logo
    Supersquad
    ParceirosPlanos
    Entrar

    Carregando...

    Supersquad Logo
    Supersquad

    Atendimento de WhatsApp e Instagram organizado em funil, com CRM e automações. Sem código e sem complicação técnica.

    Produto

    • Funil de Atendimento
    • CRM
    • Canais
    • Automações
    • Agentes de IA
    • Planos

    Empresa

    • Parceiros
    • Blog
    • Calculadora WhatsApp
    • Contato

    Legal

    • Termos de Uso
    • Política de Privacidade
    • contato@supersquad.app

    © 2026 Supersquad. Todos os direitos reservados.

    Docs
    Visão GeralCriandoTools

    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:

    typescript
    import 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:

    typescript
    app.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

    typescript
    app.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
    Visão GeralTools