Send HTTP requests to webhooks with dynamic parameters.
Um servidor MCP (Model Context Protocol) para enviar requisições HTTP para webhooks com parâmetros dinâmicos.
cd webhooks-mcp
npm install
npm run build
Adicione a seguinte configuração no arquivo claude_desktop_config.json
:
{
"mcpServers": {
"webhooks": {
"command": "node",
"args": ["/Users/rafabarbosa/Desktop/scripts/webhooks-mcp/dist/index.js"]
}
}
}
Localização do arquivo de configuração:
~/Library/Application Support/Claude/claude_desktop_config.json
send_webhook
Envia uma requisição HTTP para um webhook com parâmetros personalizados.
Parâmetros:
url
(obrigatório): URL do webhook (ex: https://meuwebhook.com.br)method
(obrigatório): Método HTTP (GET, POST, PUT, PATCH, DELETE)parameters
(opcional): Objeto com parâmetros de qualquer tipoheaders
(opcional): Headers HTTP adicionaistimeout
(opcional): Timeout em milissegundos (padrão: 30000){
"url": "https://meuwebhook.com.br/usuarios",
"method": "POST",
"parameters": {
"nome": "João Silva",
"email": "joao@email.com",
"telefone": "11999999999",
"idade": 30,
"ativo": true
}
}
{
"url": "https://api.exemplo.com/dados",
"method": "GET",
"parameters": {
"filtro": "ativo",
"limite": 10,
"pagina": 1
}
}
{
"url": "https://api.exemplo.com/atualizar/123",
"method": "PUT",
"parameters": {
"nome": "João Santos",
"status": "atualizado"
},
"headers": {
"Authorization": "Bearer token123",
"X-Custom-Header": "valor"
}
}
{
"url": "https://api.exemplo.com/deletar/123",
"method": "DELETE"
}
O MCP trata diferentes tipos de erro:
npm run build
: Compila o TypeScriptnpm run dev
: Compila em modo watchnpm start
: Executa o servidor compiladowebhooks-mcp/
├── src/
│ └── index.ts # Servidor MCP principal
├── dist/ # Arquivos compilados
├── examples.json # Exemplos de uso
├── claude_desktop_config.json # Configuração de exemplo
├── package.json
├── tsconfig.json
└── README.md
Para testar se o servidor está funcionando:
# Compilar
npm run build
# Testar execução (pressione Ctrl+C para sair)
node dist/index.js
# Rodar testes automatizados
npm test
# Os exemplos do arquivo examples.json são validados automaticamente por testes automatizados.
O servidor gera logs detalhados:
WHITELIST_URLS
(separada por vírgula) para restringir os destinos permitidos. Exemplo:export WHITELIST_URLS="api.exemplo.com,https://hooks.slack.com"
Se não configurada, qualquer URL será permitida.
LOG_LEVEL
para controlar a verbosidade dos logs (debug
, info
, warn
, error
). Exemplo:export LOG_LEVEL="debug"
RETRY_ATTEMPTS
(número de tentativas, padrão 1) e RETRY_BASE_DELAY_MS
(delay inicial em ms, padrão 500) para habilitar retentativas automáticas com backoff exponencial em falhas temporárias.export RETRY_ATTEMPTS=3
export RETRY_BASE_DELAY_MS=1000
LANG
como pt
(padrão) ou en
para receber mensagens em português ou inglês.export LANG=en
{
"content": [
{
"type": "text",
"text": "❌ Erro ao enviar webhook!\n\n**Erro:** Erro de validação dos parâmetros\n\n**Detalhes:**\n{...}"
}
],
"isError": true
}
{
"content": [
{
"type": "text",
"text": "❌ Erro ao enviar webhook!\n\n**Erro:** Erro HTTP: Request failed with status code 500\n\n**Detalhes:**\n{...}"
}
],
"isError": true
}
{
"content": [
{
"type": "text",
"text": "❌ URL não permitida pelo servidor (whitelist).\n\nConsulte o administrador para liberar o domínio ou URL desejada."
}
],
"isError": true
}
Alguns headers são validados automaticamente:
Authorization
: deve ser no formato Bearer <token>
Content-Type
: deve ser application/json
, application/x-www-form-urlencoded
ou application/xml
Exemplo de header válido:
{
"headers": {
"Authorization": "Bearer token123",
"Content-Type": "application/json"
}
}
Exemplo de header inválido:
{
"headers": {
"Authorization": "Token 123",
"Content-Type": "text/plain"
}
}
Como configuro domínios permitidos?
Defina a variável de ambiente WHITELIST_URLS
com uma lista separada por vírgula dos domínios ou URLs permitidos.
Como habilito logs mais detalhados?
Defina LOG_LEVEL=debug
para ver logs detalhados.
Como habilito retentativas automáticas?
Defina RETRY_ATTEMPTS
e RETRY_BASE_DELAY_MS
conforme desejado.
Como executo os testes automatizados?
Basta rodar npm test
na raiz do projeto.
Como reportar um bug ou sugerir melhoria?
Abra uma issue no repositório do GitHub.
claude_desktop_config.json
Veja o arquivo examples.json
para exemplos detalhados de como usar o MCP em diferentes cenários:
Você pode rodar o MCP facilmente usando Docker:
docker build -t webhook-mcp .
docker run --rm -p 3000:3000 \
-e WHITELIST_URLS="api.exemplo.com" \
-e LOG_LEVEL=info \
-e RETRY_ATTEMPTS=3 \
webhook-mcp
Adapte as variáveis de ambiente conforme necessário.
Você pode testar webhooks manualmente pelo terminal:
npx ts-node src/cli.ts
Siga os prompts para informar URL, método, parâmetros e headers.
Interact with Mailgun API.
Interact with the Google Blogger API to manage blogs, posts, and comments.
Interact with the Ghost blogging platform using the Model Context Protocol (MCP) with Server-Sent Events (SSE) support.
An MCP server for integrating with the NATS messaging system.
Connect your AI agents to Google-Meet, Zoom & Microsoft Teams through tl;dv
Interact with Slack workspaces to read and send messages directly through your AI assistant.
A news feed server for aggregating news from various sources.
Send Instagram DMs via your LLM
An MCP server for interacting with the Slack API, allowing for sending messages, managing channels, and other workspace actions.
Enables room-based messaging between multiple agents.