Skip to main content
Glama
UcemaRepo

LeadFunnel MCP

by UcemaRepo

LeadFunnel MCP — Render

MCP-Server mit der Sitzung im Prozess-RAM. Keine Datenbank, keine Festplatte, kein 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?

Wenn Render den Dienst wegen Inaktivität herunterfährt, stirbt der Prozess und die Daten gehen mit ihm verloren. Das ist die Garantie der Flüchtigkeit — sie hängt nicht von einem TTL ab.


Bereitstellung

  1. Lade dieses Repo auf GitHub hoch (privat).

  2. Render → New → Web Service → verbinde das Repo.

  3. Konfiguration:

    • Runtime: Node

    • Build command: npm install

    • Start command: npm start

    • Health check path: /health

Umgebungsvariablen

Variable

Wert

SF_DOMAIN

ucema2.my.salesforce.com

SF_CLIENT_ID

Consumer Key der Connected App

SF_CLIENT_SECRET

Consumer Secret

MCP_TOKEN

openssl rand -hex 32

ENMASCARAR_PII

true (setze false nur, wenn du die vollständigen Daten benötigst)


Related MCP server: Salesforce MCP Server

Test

# 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"

Der Accept-Header mit text/event-stream ist bei Streamable HTTP obligatorisch. Ohne ihn lehnt das SDK die Anfrage ab.

Offizieller Inspector vor dem Verbinden mit Claude:

npx @modelcontextprotocol/inspector

Mit Claude verbinden

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

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


Täglicher Arbeitsablauf

  1. POST /cargar beim Start

  2. Frag von Claude aus alles ab, was du willst

  3. Wenn du längere Zeit weg warst, hat Render den Dienst heruntergefahren: ruf /cargar erneut auf


Bekannte Einschränkungen

Cold Start. Im Free-Tier fährt Render den Dienst nach ~15 Minuten ohne Traffic herunter. Die nächste Anfrage weckt ihn wieder (~50 s) und die Sitzung ist verloren. Wenn das stört: kostenpflichtiger Plan oder ein Cron, der /health alle 10 Minuten aufruft (auch wenn das die Daten dauerhaft im RAM hält, was genau das ist, was du nicht wolltest).

Token in der URL. Die Connector-UI von Claude erlaubt keine beliebigen Header. Das Token im Query-Parameter ist schwächer als ein Header: Es bleibt in der Connector-Konfiguration und möglicherweise in Logs. Der nächste Schritt ist echtes OAuth 2.0, das mit dem SDK machbar ist, aber ein anderes Projekt wäre.

RAM. 12k Leads ≈ 25 MB in JS-Objekten. Das Free-Tier von Render bietet 512 MB. Ausreichend, aber wenn der Datensatz stark wächst, müsste paginiert werden.


Was gespeichert wird

Feld

Wird gespeichert

Vor- und Nachname

ja

sfId

ja (um zum Datensatz zu springen)

DNI

nie

Telefon

maskiert (***4821)

E-Mail

maskiert (ni***@gmail.com)

Motivation

nur die Länge, nicht der Text

Mit ENMASCARAR_PII=false werden Telefon und E-Mail vollständig gespeichert. Das ist eine bewusste Risikoentscheidung: Mit dieser Variable auf false gelangen die Kontaktdaten echter Kandidaten bei jeder Abfrage in den Kontext des Modells.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An MCP server implementation that integrates Claude with Salesforce, enabling natural language interactions with Salesforce data and metadata for querying, modifying, and managing objects and records.
    15
    1,429 npm
    165
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server that exposes Telegram lead conversations to Claude for sales analysis, enabling lead summary, intent, stage, and follow-up insights.
    -