Salesforce的代理方法——使用MCP集成Neo4j

目录
- 代理方法:GraphRAG管道 - 常规方法:寻回犬RAG
- 先决条件 - 设置和安装
______________________________________________________________________
项目概述
此存储库演示了一种代理方法来集成 赛富时 (CRM平台)和 Neo4j (图形数据库)使用 模型上下文协议(MCP),纳入以下概念 图检索增强生成 (基于图的检索增强生成)。
该项目展示了在Salesforce端利用Apex、LWC和命名凭据的集成,以及在Neo4j端通过MCP层利用GraphRag管道函数和检索器的集成
______________________________________________________________________
关键技术
- 赛富时:Apex、LWC、命名凭据、流自动化
- Neo4j:图建模(节点、关系、属性),Cypher查询语言
- 模型上下文协议(MCP):将人工智能模型连接到工具和数据库的标准化协议
- 图检索增强生成:结合向量嵌入+图上下文,实现更丰富的检索和洞察
______________________________________________________________________
架构与方法
代理方法:GraphRAG管道
流量: 赛富时→ GraphRAG管道→ Neo4j\ 亮点:
为Retriever、llm、数据库、上下文提供集成管道;
结合矢量+图形上下文;
为知识图用例提供上下文丰富的见解。
Agentic method – GraphRag Pipeline
常规方法:寻回犬RAG
流量: 赛富时→ 网关->检索器→ Neo4j\ 亮点: 需要单独集成RAG的各个组件
Method 2 – RAG with GraphRag Retriever
使用的参考文献:
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
Named credential to access Gateway)
______________________________________________________________________
🌍 通过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"}}
}
______________________________________________________________________
演示/截图
- Salesforce应用程序:
- 矢量与矢量密码: 与Agent GraphRag进行比较
______________________________________________________________________
入门指南
先决条件
- Salesforce开发人员组织或沙盒
- Neo4j数据库(本地或Aura)
- 用于MCP网关的Node.js或用于MCP服务器的Python
- Apex、LWC、Cypher的基本知识
设置和安装
git clone https://github.com/belavaditech/Agentic_Salesforce_Neo4j_MCP_Integration
cd Agentic_Salesforce_Neo4j_MCP_Integration- 配置Neo4j连接凭据。
- 使用Neo4j详细信息设置MCP服务器(提供)。
- 设置网关服务器(已提供)
- 在Salesforce中为安全端点调用创建2个命名凭据。
- 部署提供的Apex类(一个用于MCP服务器端点8005,另一个用于网关端点访问9005)
- 部署LWC组件(已提供)。
- 在应用程序中配置LWC组件
______________________________________________________________________
配置
创建一个 .env 适用于您环境的文件:
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password
MCP_PORT=8005
在Salesforce中:
- 设置a 命名凭证 指向MCP网关端点。
- 为来自Apex的API调用分配权限集。
______________________________________________________________________
许可证
此项目根据MIT许可证获得许可——请参阅 许可证.
______________________________________________________________________
联系
作者 拉梅什BN
______________________________________________________________________
