LeadFunnel MCP

LeadFunnel MCP

Ephemeral MCP server that loads Salesforce leads into RAM for natural-language querying via Claude, with PII masking and session purging.

Category
Visit Server

README

LeadFunnel MCP — Render

Servidor MCP con la sesión en RAM del proceso. Sin base, sin disco, sin cache.

POST /cargar   →  Salesforce → depura → scorea → RAM
POST /mcp      →  Claude consulta (lee de RAM)
POST /purgar   →  RAM = null
GET  /health   →  ¿está vivo? ¿hay sesión?

Cuando Render apaga el servicio por inactividad, el proceso muere y los datos se van con él. Esa es la garantía de efimeridad — no depende de un TTL.


Deploy

  1. Subí este repo a GitHub (privado).
  2. Render → New → Web Service → conectá el repo.
  3. Configuración:
    • Runtime: Node
    • Build command: npm install
    • Start command: npm start
    • Health check path: /health

Variables de entorno

Variable Valor
SF_DOMAIN ucema2.my.salesforce.com
SF_CLIENT_ID consumer key de la Connected App
SF_CLIENT_SECRET consumer secret
MCP_TOKEN openssl rand -hex 32
ENMASCARAR_PII true (poné false solo si necesitás el dato completo)

Prueba

# Salud
curl https://TU-APP.onrender.com/health

# Cargar (tarda: hace todo el pull de Salesforce)
curl -X POST https://TU-APP.onrender.com/cargar \
  -H "Authorization: Bearer $MCP_TOKEN"

# Handshake MCP
curl -X POST "https://TU-APP.onrender.com/mcp?k=$MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

# Purgar
curl -X POST https://TU-APP.onrender.com/purgar \
  -H "Authorization: Bearer $MCP_TOKEN"

El header Accept con text/event-stream es obligatorio en Streamable HTTP. Sin él, el SDK rechaza el request.

Inspector oficial antes de conectar a Claude:

npx @modelcontextprotocol/inspector

Conectar a Claude

claude.ai → Customize → Connectors → + → Add custom connector

URL: https://TU-APP.onrender.com/mcp?k=TU_TOKEN


Flujo de trabajo diario

  1. POST /cargar cuando arrancás
  2. Consultás desde Claude todo lo que quieras
  3. Si te fuiste un rato largo, Render apagó el servicio: volvé a /cargar

Limitaciones conocidas

Cold start. En el free tier, tras ~15 min sin tráfico Render apaga el servicio. La siguiente request lo despierta (~50 s) y la sesión se perdió. Si molesta: plan pago, o un cron que le pegue a /health cada 10 min (aunque eso mantiene los datos vivos en RAM indefinidamente, que es justo lo que no querías).

Token en la URL. La UI de conectores de Claude no permite headers arbitrarios. El token en query param es más débil que un header: queda en la config del conector y potencialmente en logs. El paso siguiente es OAuth 2.0 real, que con el SDK es factible pero es otro proyecto.

RAM. 12k leads ≈ 25 MB en objetos JS. El free tier de Render da 512 MB. Holgado, pero si el dataset creciera mucho habría que paginar.


Qué se guarda

Campo Se guarda
Nombre y apellido
sfId sí (para saltar al registro)
DNI nunca
Teléfono enmascarado (***4821)
Email enmascarado (ni***@gmail.com)
Motivación solo el largo, no el texto

Con ENMASCARAR_PII=false se guardan teléfono y mail completos. Es una decisión de riesgo consciente: con esa variable en false, los datos de contacto de candidatos reales entran al contexto del modelo en cada consulta.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured