Skip to main content
Glama
UcemaRepo

LeadFunnel MCP

by UcemaRepo

LeadFunnel MCP — Render

セッションをプロセスのRAMに保持するMCPサーバー。データベースなし、ディスクなし、キャッシュなし。

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

Render が非アクティブでサービスを停止すると、プロセスが死に、データも一緒に消えます。これが一時性の保証です — TTL に依存しているわけではありません。


デプロイ

  1. このリポジトリを GitHub(プライベート)にプッシュします。

  2. Render → New → Web Service → リポジトリを接続します。

  3. 設定:

    • ランタイム: Node

    • ビルドコマンド: npm install

    • 開始コマンド: npm start

    • ヘルスチェックパス: /health

環境変数

変数

値

SF_DOMAIN

ucema2.my.salesforce.com

SF_CLIENT_ID

Connected App のコンシューマーキー

SF_CLIENT_SECRET

コンシューマーシークレット

MCP_TOKEN

openssl rand -hex 32

ENMASCARAR_PII

true(完全なデータが必要な場合のみ false を設定)


Related MCP server: Salesforce MCP Server

テスト

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

Streamable HTTP で Accept ヘッダーに text/event-stream を指定するのは必須です。それがない場合、SDK はリクエストを拒否します。

Claude に接続する前に公式インスペクター:

npx @modelcontextprotocol/inspector

Claude に接続する

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

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


日々のワークフロー

  1. 起動時に POST /cargar を実行します

  2. Claudeから好きなだけ問い合わせます

  3. 長い時間離れていた場合、Render がサービスを停止しているはずです: /cargar を再度実行します


既知の制限

コールドスタート。 無料ティアでは、約 15 分トラフィックがないと Render はサービスを停止します。次のリクエストで起動しますが(約 50 秒)その時点でセッションは失われています。気になるなら: 有料プランか、10 分ごとに /health を叩く cron(もしくはそのまま RAM 内にデータを無期限に保持し続けることになるが、それはまさに避けたいことだったはず)。

URL 内のトークン。 Claude のコネクタ UI では任意のヘッダーを設定できません。クエリパラメータのトークンはヘッダーより弱いです: コネクタの設定に残り、ログにも残る可能性があります。次のステップは本当の OAuth 2.0 です。SDK で実現可能ですが、それはまた別のプロジェクトになります。

RAM。 12k 件のリードは JS オブジェクトで約 25 MB です。Render の無料ティアは 512 MB なので余裕はあります。ただし、データセットがもっと大きくなる場合はページネーションが必要になるでしょう。


保存されるデータ

フィールド

保存されるもの

姓名

保存

sfId

保存(レコードへのジャンプに使用)

電話番号

保存しない

電話番号

マスク済み(***4821)

Email

マスク済み(ni***@gmail.com)

モチベーション

長さのみ(テキスト内容は保存しない)

ENMASCARAR_PII=false の場合は、電話番号とメールアドレスが完全な状態で保存されます。これはリスクを理解した上での判断です: この変数を false にすると、実際の候補者の連絡先データが、すべての問い合わせでモデルのコンテキストに入ることになります。

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.
    -