Skip to main content
Glama
README.md
# MCP Webhook Server

Servidor MCP (Model Context Protocol) para enviar datos a webhooks via HTTP POST.  
Escrito en Python con `FastMCP`. Diseñado para ejecutarse en **Claude Code** — accesible **local y remotamente**.

## 🚀 Inicio Rápido

```bash
cd MCP
pip install -r requirements.txt
```

---

## 🖥️ Modo Local (Claude Desktop o uso personal)

Esta sección está pensada para la comunidad **Open Source** que desee utilizar este servidor de forma local en su propia máquina.

### 1. Clonar el repositorio y configurar dependencias

Para usar la herramienta directamente en tu computadora a través de **Claude Desktop** (la aplicación gráfica) o en una instancia local de Claude Code, primero debes descargar el código fuente y preparar el entorno de Python.

Abre tu terminal y ejecuta:

```bash
# Clonar el proyecto
git clone https://github.com/siendomiguel/MCP-Connection.git
cd MCP-Connection/MCP

# (Opcional pero recomendado) Crear un entorno virtual
python -m venv venv
# En Windows: venv\Scripts\activate
# En Mac/Linux: source venv/bin/activate

# Instalar dependencias
pip install -r requirements.txt
```

### 2. Configurar en Claude Desktop

Para que el servidor sepa a dónde enviar los datos por defecto, debes configurar la variable de entorno `WEBHOOK_URL` directamente en la configuración de la aplicación.

Abre el archivo de configuración de Claude Desktop:
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **Mac**: `~/Library/Application Support/Claude/claude_desktop_config.json`

Agrega el siguiente bloque de configuración. Notarás que bajo `env` tú decides hacia qué webhook se mandarán los datos:

```json
{
  "mcpServers": {
    "webhook-sender": {
      "command": "python",
      "args": ["/ruta/absoluta/a/tu/proyecto/MCP/main.py"],
      "env": {
        "WEBHOOK_URL": "https://hook.us1.make.com/tu-webhook-secreto"
      }
    }
  }
}
```

> **Importante:** Recuerda cambiar `/ruta/absoluta/a/tu/proyecto/MCP/main.py` por la ruta real donde clonaste este repositorio y asignar el `WEBHOOK_URL` válido de N8N, Make.com, Zapier, etc.

Reinicia Claude Desktop y la herramienta `send_webhook` estará disponible.
---

## 🌐 Modo HTTP (Remoto) — Acceso por equipo

Para compartir con compañeros de equipo en cualquier parte del mundo. Como usa `FastMCP`, funciona nativamente con Server-Sent Events (SSE).

### 1. Ejecutar el servidor localmente
```bash
MCP_TRANSPORT=sse python main.py
```
*(Se levantará por defecto en el puerto 8000).*

### 2. Desplegar (Railway)

Este proyecto ya incluye `railway.json` y `Dockerfile`.
Solo tienes que conectar tu repositorio a Railway y se detectará automáticamente. Railway asignará el `PORT` y el `Dockerfile` ejecutará el servidor en modo SSE.

### 3. Configurar en el equipo

**Para Claude Code:**
Cada miembro del equipo agrega esto a su `.mcp.json` para conectarse a la nube:

```json
{
  "mcpServers": {
    "webhook-sender": {
      "type": "url",
      "url": "https://tu-url-de-railway.up.railway.app/sse"
    }
  }
}
```

> **⚠️ Importante para Claude Desktop:**  
> A diferencia de Claude Code, la aplicación gráfica **Claude Desktop NO soporta** conexiones remotas a URLs por el momento (causa que la app muestre el error "Claude Desktop failed to Launch"). Si necesitas usar tu herramienta `webhook-sender` dentro de Claude Desktop, tendrás que configurarla como un comando local usando `python` como especificamos en la sección "Modo Local".

---

## 📡 Herramienta: `send_webhook`

### Parámetros

| Campo | Tipo | Requerido | Descripción |
|-------|------|-----------|-------------|
| `url` | string | ✅ | URL del webhook destino (o configurar WEBHOOK_URL) |
| `titulo` | string | ✅ | Título de la tarea/evento |
| `texto` | string | ✅ | Descripción o resumen |
| `autor` | string | ❌ | Default: "Claude Code" |
| `fuente` | string | ❌ | Default: "MCP Webhook Server" |
| `campos_extra` | object | ❌ | Campos personalizados clave-valor |
| `headers` | object | ❌ | Headers HTTP adicionales |

### Ejemplo de respuesta enviada al webhook
```json
{
  "webhook_url": "https://...",
  "titulo": "Tarea Completada",
  "texto": "Se actualizó la base de datos.",
  "fecha": "20/02/2026",
  "hora": "18:54:00",
  "autor": "Claude Code",
  "fuente": "MCP Webhook Server",
  "timestamp": "2026-02-20T23:54:00.000000"
}
```

---

## 🪝 Hook Automático (Opcional)

Para enviar webhook automáticamente al terminar cada tarea, agrega a `~/.claude/settings.json`:

```json
{
  "hooks": {
    "Stop": [{
      "type": "command",
      "command": "WEBHOOK_URL=https://tu-url.com python e:/dev/proyectos/bitfinApp/MCP/scripts/notify_webhook.py"
    }]
  }
}
```