Token导航 LogoToken导航TokenDH.com
Salesforce Meta Tool Identity Propagation logo
AI代理stdio官方级别未说明来源级核验

Salesforce Meta Tool Identity Propagation

MCP Server

Salesforce Meta-Tool: Identity Propagation 是一个元工具模式的服务,通过七个工具实现AI代理在Salesforce中的全功能操作,并确保用户身份端到端传播以执行权限管理。

工具数

7

提示词数

0

GitHub Stars

3

资源数

0
权限管理PythonAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ozgurkarahan

提供方

ozgurkarahan

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Salesforce元工具:身份传播

![License: MIT](LICENSE) ![azd compatible](https://learn.microsoft.com/azure/developer/azure-developer-cli/) ![Python 3.11+](https://www.python.org/)

一个标志。七个工具。您的整个Salesforce组织,用户自己的身份在端到端强制执行。

建筑

draw.io源代码

问题

1.无需为每个对象提供工具即可完全访问CRM

代理应该能够完成用户在Salesforce中可以做的一切(查询任何对象、更新任何记录、运行任何审批工作流),而无需服务器为每个对象定义一个工具。大多数MCP服务器采取相反的方法:每个对象一个工具,这意味着每个新的自定义对象都需要更改代码,工具列表呈线性增长,安全模型必须从头开始重新实现。目标是为代理提供用户的完整CRM界面,同时继承Salesforce已经实施的权限和安全性。

2.用户自己的权限,而不是服务帐户的权限

如果代理可以在Salesforce中执行所有操作,则它必须在用户自己的身份下运行,具有共享规则、字段级安全性和审批工作流,而不是一个可以看到所有数据的服务帐户。大多数集成通过在中间件中重新创建权限层来解决这个问题。更简单的答案是端到端传播用户的身份,并让Salesforce执行其已有的规则,即使该身份可能通过联合IdP从Azure AD跨越边界到Salesforce。

本项目

元数据驱动的MCP服务器解决了这两个问题:七个工具,让AI代理发现对象、学习字段模式,并在运行时构建SOQL查询(元工具模式),具有真正的代表身份传播,端到端强制用户自己的权限。用户向Azure AD进行一次身份验证;系统处理其余部分。

azd up   # deploys the full stack in ~15 minutes

______________________________________________________________________

运作原理

用户提出了一个问题。代理发现对象、学习模式和查询Salesforce——所有这些都是通过相同的七个工具完成的,所有这些工具都有用户自己的身份。

排除来源

代表(OBO)代币交易所

APIM处理三阶段交换:验证Azure AD JWT,解析Salesforce用户名,并获取每个用户的Salesforce令牌。MCP服务器永远看不到Azure AD凭据。

深潜: OBO交换详细动画 | 完整细节PNG | 排除来源

7种工具:约1300个Salesforce代币

工具代币它的作用
whoami~60从承载令牌中解析当前用户的身份
list_objects117发现对象(典型组织中超过1000个),按名称/标签过滤
describe_object109字段模式、类型、必需标志、选择列表、外部ID
soql_query225完整SOQL:关系、聚合、GROUP BY、自动分页
search_records175同时跨多个对象进行SOSL全文搜索
write_record226创建、更新、追加销售(通过外部ID)、删除
process_approval129通过Salesforce审批工作流提交、批准、拒绝
服务器说明~270工作流程指导、惯例、何时使用哪种工具
总计~1,300所有对象、所有字段、所有操作
注: 1235个标记涵盖了工具定义。每 describe_object 调用在运行时返回字段模式。模式是按需加载的,而不是预先加载到系统提示符中。

______________________________________________________________________

深入探究

有关详细的技术说明,请参阅 docs/deepdive.md:

______________________________________________________________________

部署和设置

这个项目的新手? 跟随 分步安装指南 从干净的Azure订阅和Salesforce组织中获取完整的演练。

先决条件

需求版本链接
Azure订阅贡献者+用户访问管理员免费试用
Azure开发人员命令行界面1.5+安装azd
Azure命令行界面2.60+安装az
Python3.11+python.org
Docker桌面-
Salesforce命令行界面sf 2.x安装sf
OpenSSL-预装在macOS/Linux上; Windows 版 Git 包括它
Salesforce组织开发人员或沙盒developer.salesforce.com

快速部署

如果您已经配置了Salesforce组织和证书:

git clone https://github.com/ozgurkarahan/salesforce-meta-tool-identity-propagation.git
cd salesforce-meta-tool-identity-propagation
pip install -r requirements.txt

azd env new obo
azd env set SF_INSTANCE_URL "https://your-org.my.salesforce.com"
azd env set SF_CONNECTED_APP_CLIENT_ID ""
azd env set SF_SERVICE_ACCOUNT_USERNAME ""

azd up

后视镜挂钩自动上传 certs/sf-jwt-bearer.pfx 到密钥库,创建APIM证书绑定,并设置 SF_JWT_BEARER_CERT_THUMBPRINT。不需要手动指纹步骤。

之后 azd up 完成后,打开末尾打印的聊天应用程序URL。使用您的Azure AD帐户登录并发送消息(例如。, *“显示我的Salesforce帐户”*).

从零开始

  1. 生成证书 --看 安装指南第1阶段
  2. Salesforce设置 --看 安装指南第2阶段
  3. 设置环境变量 (3个变量——不需要指纹):
   azd env set SF_INSTANCE_URL "https://your-org.my.salesforce.com"
   azd env set SF_CONNECTED_APP_CLIENT_ID ""
   azd env set SF_SERVICE_ACCOUNT_USERNAME ""
  1. 部署: azd up
  2. 映射用户身份 --看 安装指南第4阶段

环境变量

变量必填描述
SF_INSTANCE_URLSalesforce组织URL(例如。, https://myorg.my.salesforce.com)
SF_CONNECTED_APP_CLIENT_IDSalesforce Connected应用程序中的消费者密钥
SF_SERVICE_ACCOUNT_USERNAME用于SOQL用户查找的SF服务帐户用户名
SF_JWT_BEARER_CERT_THUMBPRINTAuto通过后置钩子自动设置;仅在跳过证书上传时手动设置
SF_JWT_BEARER_CERT_NAME密钥库证书名称(默认值: sf-jwt-bearer)
IDENTITY_CLAIM_NAME没有Azure AD JWT用户身份声明(默认值: oid)
COGNITIVE_ACCOUNT_SUFFIX之后增加 azd down --purge 避免命名冲突
AZURE_LOCATIONAzure区域(默认值: swedencentral)

项目结构

salesforce-meta-tool-identity-propagation/
+-- azure.yaml                    # azd project: 2 services (chat-app, salesforce-mcp)
+-- src/
|   +-- salesforce-mcp/
|   |   +-- app.py                # The MCP server: 7 tools, bearer passthrough
|   |   +-- salesforce_client.py  # Async Salesforce REST client with auth
|   +-- chat-app/
|       +-- app.py                # FastAPI backend, MSAL to Foundry agent bridge
|       +-- static/               # Vanilla JS SPA with MSAL.js
+-- infra/
|   +-- main.bicep                # Orchestrator, all Azure resources
|   +-- modules/                  # APIM, Key Vault, Container Apps, AI Services, ...
|   +-- policies/
|       +-- sf-mcp-obo-policy.xml     # OBO three-phase exchange policy
|       +-- sf-mcp-obo-prm-policy.xml # RFC 9728 PRM for OBO endpoint
+-- hooks/
|   +-- postprovision.py          # Cert upload + Entra app + Foundry agent + OBO connection
+-- scripts/
|   +-- sf_utils.py               # Shared SF/CLI primitives
|   +-- setup-sf-org.py           # Complete 5-step SF org setup orchestrator
|   +-- test-salesforce-mcp.py    # E2E MCP server test
+-- docs/                         # Architecture diagrams (Excalidraw)

常见问题

问题解决方案
“未找到项目”之后 azd down增量 COGNITIVE_ACCOUNT_SUFFIX 并重新部署
APIM中断MCP流将响应正文字节设置为 0 在APIM诊断中(所有API范围)
代理在不调用工具的情况下响应检查Foundry连接目标URL
401“Azure AD令牌无效”检查 validate-jwt 发行者包括v1和v2
502“SF服务令牌失败”证书错误、客户端ID错误或服务帐户未预先授权
403“用户未映射”没有匹配的SF用户 FederationIdentifier.快跑 setup-sf-org.py --only fedid
502“SF令牌交换失败”目标SF用户未预先授权连接的应用程序

______________________________________________________________________

相关项目

  • 雪元工具 --ServiceNow对应物:相同的元工具模式和OBO身份传播,应用于ServiceNow ITSM。并排部署,为 客户360 AI Foundry代理,将Salesforce CRM数据与每个系统中用户自己身份下的ServiceNow事件、更改和请求相关联。

贡献

欢迎捐款。请打开 问题 或者提交拉取请求。

此项目使用 azd 部署。看 部署和设置 以使本地环境运行。

______________________________________________________________________

许可证

MIT许可证

______________________________________________________________________

*相关文章: 元工具模式在企业中的应用 在LinkedIn上。*

目录标签

目录标签

权限管理PythonAI代理身份传播本地部署元工具Salesforce集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP