n8n MCP Server

Um servidor MCP para interagir com workflows do n8n por meio de linguagem natural.

Documentação

n8n MCP Server

npm version

Um servidor Model Context Protocol (MCP) que permite que assistentes de IA interajam com fluxos de trabalho do n8n por meio de linguagem natural.

Visão Geral

Este projeto fornece um servidor Model Context Protocol (MCP) que capacita assistentes de IA a interagir perfeitamente com o n8n, uma ferramenta popular de automação de fluxos de trabalho. Ele atua como uma ponte, permitindo que assistentes de IA gerenciem e controlem programaticamente fluxos de trabalho e execuções do n8n usando comandos em linguagem natural.

Instalação

Pré-requisitos

  • Node.js 20 ou posterior
  • Instância do n8n com acesso à API habilitado

Instalar via npm

npm install -g @leonardsellem/n8n-mcp-server

Instalar a partir do código-fonte

# Clone the repository
git clone https://github.com/leonardsellem/n8n-mcp-server.git
cd n8n-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

# Optional: Install globally
npm install -g .

Instalação via Docker

Você também pode executar o servidor usando Docker:

# Pull the image
docker pull leonardsellem/n8n-mcp-server

# Run the container with your n8n API configuration
docker run -e N8N_API_URL=http://your-n8n:5678/api/v1 \
  -e N8N_API_KEY=your_n8n_api_key \
  -e N8N_WEBHOOK_USERNAME=username \
  -e N8N_WEBHOOK_PASSWORD=password \
  leonardsellem/n8n-mcp-server

Atualizando o Servidor

A forma de atualizar o servidor depende de como você o instalou inicialmente.

1. Instalado globalmente via npm

Se você instalou o servidor usando npm install -g @leonardsellem/n8n-mcp-server:

  1. Abra seu terminal ou prompt de comando.
  2. Execute o seguinte comando para obter a versão mais recente:
    npm install -g @leonardsellem/n8n-mcp-server@latest
    
  3. Se o servidor estiver em execução (por exemplo, como um processo em segundo plano ou serviço), você precisará reiniciá-lo para que as alterações tenham efeito.

2. Instalado a partir do código-fonte

Se você clonou o repositório e instalou a partir do código-fonte:

  1. Abra seu terminal ou prompt de comando.
  2. Navegue até o diretório onde você clonou o projeto:
    cd path/to/n8n-mcp-server
    
  3. Se você fez alterações locais no código que deseja manter, considere guardá-las (opcional):
    git stash
    
    Você pode aplicá-las posteriormente com git stash pop.
  4. Baixe as alterações mais recentes do repositório (supondo que você esteja no branch main):
    git pull origin main
    
    Se você estiver em um branch diferente, substitua main pelo nome do seu branch.
  5. Instale ou atualize quaisquer dependências alteradas:
    npm install
    
  6. Recompile o projeto para incluir as atualizações mais recentes:
    npm run build
    
  7. Se você instalou globalmente a partir desta pasta de código-fonte usando npm install -g ., talvez queira executar este comando novamente para atualizar o link global:
    npm install -g .
    
  8. Reinicie o servidor.
    • Se você executar o servidor diretamente usando um comando como node build/index.js na configuração MCP do seu assistente de IA, certifique-se de que o caminho ainda esteja correto. Usar npm install -g . e depois n8n-mcp-server como comando deve manter isso consistente.

3. Usando Docker

Se você estiver executando o servidor usando Docker:

  1. Baixe a imagem mais recente do Docker Hub:
    docker pull leonardsellem/n8n-mcp-server:latest
    
  2. Pare e remova seu contêiner antigo. Você precisará do nome ou ID do seu contêiner (você pode encontrá-lo usando docker ps):
    docker stop <your_container_name_or_id>
    docker rm <your_container_name_or_id>
    
  3. Inicie um novo contêiner com a imagem atualizada. Use o mesmo comando docker run que você usou anteriormente, incluindo todas as suas variáveis de ambiente necessárias (consulte a seção "Instalação via Docker" para um exemplo de comando). Por exemplo:
    docker run -e N8N_API_URL=http://your-n8n:5678/api/v1 \
      -e N8N_API_KEY=your_n8n_api_key \
      -e N8N_WEBHOOK_USERNAME=username \
      -e N8N_WEBHOOK_PASSWORD=password \
      leonardsellem/n8n-mcp-server:latest
    
    Certifique-se de usar :latest ou a tag de versão específica que você pretende executar.

Configuração

Crie um arquivo .env no diretório onde você executará o servidor, usando .env.example como modelo:

cp .env.example .env

Configure as seguintes variáveis de ambiente:

VariávelDescriçãoExemplo
N8N_API_URLURL completa da API do n8n, incluindo /api/v1http://localhost:5678/api/v1
N8N_API_KEYChave de API para autenticação com o n8nn8n_api_...
N8N_WEBHOOK_USERNAMENome de usuário para autenticação de webhook (se estiver usando webhooks)username
N8N_WEBHOOK_PASSWORDSenha para autenticação de webhookpassword
DEBUGHabilitar registro de depuração (opcional)true ou false

Gerando uma Chave de API do n8n

  1. Abra sua instância do n8n em um navegador
  2. Vá para Configurações > API > Chaves de API
  3. Crie uma nova chave de API com as permissões apropriadas
  4. Copie a chave para o seu arquivo .env

Uso

Executando o Servidor

A partir do diretório de instalação:

n8n-mcp-server

Ou se instalado globalmente:

n8n-mcp-server

Integração com Assistentes de IA

Após compilar o servidor (npm run build), você precisa configurar seu assistente de IA (como VS Code com a extensão Claude ou o aplicativo Claude Desktop) para executá-lo. Isso normalmente envolve editar um arquivo de configuração JSON.

Exemplo de Configuração (por exemplo, em VS Code settings.json ou Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    // Give your server a unique name
    "n8n-local": {
      // Use 'node' to execute the built JavaScript file
      "command": "node",
      // Provide the *absolute path* to the built index.js file
      "args": [
        "/path/to/your/cloned/n8n-mcp-server/build/index.js"
        // On Windows, use double backslashes:
        // "C:\\path\\to\\your\\cloned\\n8n-mcp-server\\build\\index.js"
      ],
      // Environment variables needed by the server
      "env": {
        "N8N_API_URL": "http://your-n8n-instance:5678/api/v1", // Replace with your n8n URL
        "N8N_API_KEY": "YOUR_N8N_API_KEY", // Replace with your key
        // Add webhook credentials only if you plan to use webhook tools
        // "N8N_WEBHOOK_USERNAME": "your_webhook_user",
        // "N8N_WEBHOOK_PASSWORD": "your_webhook_password"
      },
      // Ensure the server is enabled
      "disabled": false,
      // Default autoApprove settings
      "autoApprove": []
    }
    // ... other servers might be configured here
  }
}

Pontos-chave:

  • Substitua /path/to/your/cloned/n8n-mcp-server/ pelo caminho absoluto real onde você clonou e compilou o repositório.
  • Use o separador de caminho correto para o seu sistema operacional (barras normais / para macOS/Linux, barras duplas invertidas \\ para Windows).
  • Certifique-se de fornecer o N8N_API_URL correto (incluindo /api/v1) e o N8N_API_KEY.
  • O servidor precisa ser compilado (npm run build) antes que o assistente possa executar o arquivo build/index.js.

Ferramentas Disponíveis

O servidor fornece as seguintes ferramentas:

Usando Webhooks

Este servidor MCP suporta a execução de fluxos de trabalho por meio de webhooks do n8n. Para usar essa funcionalidade:

  1. Crie um fluxo de trabalho acionado por webhook no n8n.
  2. Configure a Autenticação Básica no seu nó de webhook.
  3. Use a ferramenta run_webhook para acionar o fluxo de trabalho, passando apenas o nome do fluxo de trabalho.

Exemplo:

const result = await useRunWebhook({
  workflowName: "hello-world", // Will call <n8n-url>/webhook/hello-world
  data: {
    prompt: "Hello from AI assistant!"
  }
});

A autenticação do webhook é tratada automaticamente usando as variáveis de ambiente N8N_WEBHOOK_USERNAME e N8N_WEBHOOK_PASSWORD.

Gerenciamento de Fluxos de Trabalho

  • workflow_list: Listar todos os fluxos de trabalho
  • workflow_get: Obter detalhes de um fluxo de trabalho específico
  • workflow_create: Criar um novo fluxo de trabalho
  • workflow_update: Atualizar um fluxo de trabalho existente
  • workflow_delete: Excluir um fluxo de trabalho
  • workflow_activate: Ativar um fluxo de trabalho
  • workflow_deactivate: Desativar um fluxo de trabalho

Gerenciamento de Execuções

  • execution_run: Executar um fluxo de trabalho via API
  • run_webhook: Executar um fluxo de trabalho via webhook
  • execution_get: Obter detalhes de uma execução específica
  • execution_list: Listar execuções de um fluxo de trabalho
  • execution_stop: Parar uma execução em andamento

Recursos

O servidor fornece os seguintes recursos:

  • n8n://workflows/list: Lista de todos os fluxos de trabalho
  • n8n://workflow/{id}: Detalhes de um fluxo de trabalho específico
  • n8n://executions/{workflowId}: Lista de execuções de um fluxo de trabalho
  • n8n://execution/{id}: Detalhes de uma execução específica

Roteiro

O n8n MCP Server é um projeto conduzido pela comunidade, e sua direção futura será moldada pelo seu feedback e pelas suas contribuições!

Atualmente, nosso roteiro é flexível e está em desenvolvimento contínuo. Acreditamos em evoluir o servidor com base nas necessidades e ideias dos nossos usuários.

Incentivamos você a se envolver na definição do futuro desta ferramenta:

  • Sugerir Recursos: Tem uma ideia para uma nova ferramenta, recurso ou melhoria?
  • Discutir Prioridades: Quer opinar sobre no que devemos focar em seguida?

Compartilhe suas ideias, solicitações de recursos e sugestões abrindo uma issue em nossa página de Issues do GitHub. Vamos construir juntos uma ferramenta poderosa para assistentes de IA!

Desenvolvimento

Compilação

npm run build

Executando em Modo de Desenvolvimento

npm run dev

Testes

npm test

Lint

npm run lint

Contribuindo

Aceitamos contribuições da comunidade e estamos animados para ver como você pode ajudar a melhorar o n8n MCP Server! Seja corrigindo um bug, propondo um novo recurso ou melhorando a documentação, sua ajuda é valiosa.

Reportando Bugs

Se você encontrar um bug, por favor, reporte-o abrindo uma issue em nossa página de Issues do GitHub.

Ao enviar um relatório de bug, inclua o seguinte:

  • Um título claro e descritivo.
  • Uma descrição detalhada do problema, incluindo etapas para reproduzir o bug.
  • Informações sobre seu ambiente (por exemplo, versão do Node.js, versão do n8n MCP Server, sistema operacional).
  • Quaisquer mensagens de erro ou capturas de tela relevantes.

Sugerindo Melhorias

Estamos sempre procurando maneiras de melhorar o servidor. Se você tiver uma ideia para uma melhoria ou um novo recurso, abra uma issue em nossa página de Issues do GitHub.

Forneça:

  • Um título claro e descritivo para sua sugestão.
  • Uma explicação detalhada da melhoria proposta e por que ela seria benéfica.
  • Quaisquer casos de uso ou exemplos potenciais.

Enviando Pull Requests

Se você gostaria de contribuir com código, siga estas etapas:

  1. Fork do repositório: Crie seu próprio fork do repositório n8n-mcp-server.
  2. Crie um branch: Crie um novo branch no seu fork para suas alterações (por exemplo, git checkout -b feature/your-feature-name ou bugfix/issue-number).
  3. Faça suas alterações: Implemente seu recurso ou correção de bug.
    • Certifique-se de que seu código siga o estilo de codificação existente. (Usamos Prettier para formatação, que pode ser executado com npm run lint).
    • Inclua testes para suas alterações, se aplicável. Você pode executar testes usando npm test.
  4. Faça commit das suas alterações: Escreva mensagens de commit claras e concisas.
  5. Envie para seu fork: Envie suas alterações para o repositório forkado.
  6. Abra um Pull Request (PR): Envie um PR para o branch main do repositório oficial n8n-mcp-server.
    • Forneça um título e uma descrição claros para seu PR, explicando as alterações feitas e referenciando quaisquer issues relacionadas.

Revisaremos seu PR o mais rápido possível e forneceremos feedback. Obrigado pela sua contribuição!

Licença

MIT

🚀 Junte-se à Nossa Equipe: Chamada para Co-mantenedores!

Este projeto é uma ferramenta vibrante e conduzida pela comunidade, ativamente usada por entusiastas de IA e desenvolvedores. Atualmente, é mantido em regime de meio período por uma pessoa apaixonada que não é uma engenheira experiente, mas é dedicada a unir IA com automação de fluxos de trabalho. Para ajudar este projeto a florescer, garantir sua saúde a longo prazo e acompanhar sua base de usuários em crescimento, estamos procurando co-mantenedores entusiasmados para se juntarem à equipe!

Por que Contribuir?

  • Aprender e Crescer: Aprimore suas habilidades em áreas como TypeScript, Node.js, integração de API e desenvolvimento de ferramentas de IA.
  • Colaborar: Trabalhe ao lado de outros desenvolvedores e usuários de IA motivados.
  • Causar Impacto: Molde diretamente o futuro deste projeto e ajude a construir uma ferramenta valiosa para a comunidade de IA.
  • Código Aberto: Ganhe experiência contribuindo para um projeto de código aberto.

Como Você Pode Ajudar

Aceitamos contribuições de muitas formas! Aqui estão algumas áreas onde você pode fazer uma grande diferença:

  • Correção de Bugs: Ajude-nos a identificar e eliminar bugs para melhorar a estabilidade.
  • Desenvolvimento de Recursos: Implemente novas ferramentas e funcionalidades com base nas necessidades dos usuários e nas suas ideias.
  • Documentação: Melhore nossos guias, exemplos e referências de API para tornar o projeto mais acessível.
  • Testes: Aprimore nossa suíte de testes (unitários, integração) para garantir qualidade e confiabilidade do código.
  • CI/CD: Ajude a otimizar nossos pipelines de desenvolvimento e implantação.
  • Revisões de Código: Forneça feedback em pull requests e ajude a manter os padrões de código.
  • Suporte à Comunidade: Ajude usuários com dúvidas e auxilie no gerenciamento de discussões.

Participe!

Se você está animado com a interseção entre IA e automação de fluxos de trabalho, e está procurando uma oportunidade gratificante em código aberto, adoraríamos ouvir de você!

Pronto para contribuir?

  1. Confira nossa página de Issues do GitHub para encontrar tarefas existentes, sugerir novas ideias ou expressar seu interesse em se tornar um co-mantenedor.
  2. Você pode abrir uma issue intitulada "Co-maintainer Application" para se candidatar formalmente, ou simplesmente começar a contribuir com issues existentes.
  3. Alternativamente, sinta-se à vontade para entrar em contato com os mantenedores existentes se tiver dúvidas.

Vamos construir juntos o futuro da automação de fluxos de trabalho com IA! 🙌

Agradecemos à comunidade pelo apoio! Star History Chart