Salesforce与Neo4j集成工具

通过Model Context Protocol (MCP)和GraphRAG技术,实现Salesforce与Neo4j的集成,增强客户关系管理和数据分析能力。

  • by belavaditech
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 belavaditech/Salesforce-MCP-GraphRag-Neo4j

使用说明

Salesforce–使用MCP和GraphRAG集成Neo4j

目录


项目概述

此存储库演示了以下内容之间的集成 赛富时 (CRM平台)和 Neo4j (图形数据库)使用 模型上下文协议(MCP),纳入以下概念 图检索增强生成 (基于图的检索增强生成)。
目标是使Salesforce能够利用基于图的洞察(通过Neo4j)来增强客户、案例或关系分析,例如多跳查询、相似性搜索和数据关系的语义理解。

该项目展示了四种不同的集成方法,在Salesforce中利用Apex、LWC和命名凭据,并通过MCP服务器查询Neo4j——完全留在Salesforce和Neo4j生态系统中。


关键技术

  • 赛富时:Apex、LWC、命名凭据、流自动化
  • Neo4j:图建模(节点、关系、属性),Cypher查询语言
  • 模型上下文协议(MCP):将人工智能模型连接到工具和数据库的标准化协议
  • 图检索增强生成:结合向量嵌入+图上下文,实现更丰富的检索和洞察

架构与方法

方法1:手动密码RAG

流量: 赛富时→ MCP网关→ Neo4j(手动Cypher查询)
亮点: 开发人员手动编写Cypher查询;最适合完全控制接地。

方法2:寻回犬RAG

流量: 赛富时→ 网关->检索器→ Neo4j
亮点: 通过检索器将自然语言转换为Cypher。然后用它接地。

方法3:不集成RAG

流量: 赛富时→ MCP网关→ Neo4j(直接结构化调用)
亮点: 无接地层;只使用密码查询

方法4:GraphRAG管道

流量: 赛富时→ GraphRAG管道→ Neo4j
亮点: 结合矢量+图形上下文;为知识图用例提供丰富的上下文见解。

参考:

https://neo4j.com/docs/neo4j-graphrag-python/current/user_guide_kg_builder.html(KG管道) https://github.com/neo4j-product-examples/graphrag-python-examples(使用示例) https://neo4j.com/blog/genai/what-is-graphrag/(文件) https://neo4j.com/blog/news/graphrag-python-package/(示例说明) https://neo4j.com/docs/neo4j-graphrag-python/current/user_guide_rag.html

🏗 架构概述

图层 组件
UI层 闪电网络组件(LWC)
后端(Salesforce) Apex控制器→ 命名凭据→ HTTP标注
网关 Node.js MCP客户端网关(端口9005)
MCP服务 Python MCP服务器(端口8005) 暴露工具
数据层 Neo4j图形数据库
  • LWC发送请求→ Apex
  • Apex使用 命名凭据+ngrok HTTPS端点
  • Node.js网关将Salesforce HTTP转换为MCP请求
  • Python MCP服务器托管翻译或执行Cypher的工具

🎛 为什么使用Apex+命名凭据?

赛富时 不允许从LWC直接进行HTTP调用 由于安全政策。所以:

  • Apex进行标注
  • 命名凭据公开网关URL
  • Ngrok提供临时HTTPS URL,因为命名凭据 不接受HTTP

🌍 通过cURL进行测试

局部测试 仅矢量查询

curl -s -X POST http://localhost:8005/mcp -H "Content-Type: application/json" -H "Accept: application/json,text/event-stream" -d '{
  "jsonrpc":"2.0","id":3,"method":"tools/call",
  "params":{"name":"run_vector_query","arguments":{"question":"Summarize communication challenges between patients and clinicians"}}
}'


远程测试

curl -s -X POST https://d001d4abfaa9.ngrok-free.app/mcp -H "Content-Type: application/json" -H "Accept: application/json,text/event-stream"  -d  @biomolecule.json



输入JSON(biomolecule.json)

{
  "jsonrpc":"2.0","id":4,"method":"tools/call",
  "params":{"name":"run_graphrag_search_withcontext","arguments":{"question":"Relate biomolecule findings to lupus clinical guidelines"}}
}


演示/截图

  1. Salesforce应用程序:
  1. 矢量查询:
  2. 矢量与矢量密码: 与GraphRag进行比较

入门指南

先决条件

  • Salesforce开发人员组织或沙盒
  • Neo4j数据库(本地或Aura)
  • 用于MCP网关的Node.js或用于MCP服务器的Python
  • Apex、LWC、Cypher的基本知识

设置和安装

git clone https://github.com/belavaditech/Salesforce-MCP-GraphRag-Neo4j.git
cd Salesforce-MCP-GraphRag-Neo4j
  1. 配置Neo4j连接凭据。
  2. 使用Neo4j详细信息设置MCP服务器(提供)。
  3. 设置网关服务器(已提供)
  4. 在Salesforce中为安全端点调用创建2个命名凭据。
  5. 部署提供的Apex类(一个用于MCP服务器端点8005,另一个用于网关端点访问9005)
  6. 部署LWC组件(已提供)。
  7. 在应用程序中配置LWC组件


配置

创建一个 .env 适用于您环境的文件:

NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password
MCP_PORT=8005

在Salesforce中:

  • 设置a 命名凭证 指向MCP网关端点。
  • 为来自Apex的API调用分配权限集。


许可证

此项目根据MIT许可证获得许可——请参阅 许可证.


联系

作者 拉梅什BN


快乐的绘图和整合! 🚀