跳转至

Connector 与 MCP 工具层

核心定位

OrgReOrg 的工具层负责把分散在各部门业务系统中的能力封装为可权限控制、可审计、可复用的 Connector 和 MCP Server。

Agent / Workflow
  -> Tool Policy
  -> MCP Tool Gateway
  -> Department Connectors
  -> GitHub / 财务 / CRM / 项目管理 / 文档 / BI / 审计系统

MCP 是推荐的工具暴露协议,但不是唯一实现。已有内部 API、Webhook、数据库只读视图或 SaaS SDK 都可以被封装在 Connector 之后,对 Agent 只暴露稳定工具契约。

第一批 Connector

Connector 典型系统 第一批只读能力 高风险能力
github GitHub / GitHub Enterprise 搜索 repo、issue、PR、commit、CI 创建 PR、合并、触发部署
wecom / feishu 企业微信 / 飞书 身份、组织架构、消息上下文 群发通知、审批确认
finance 财务系统 / OA 查询预算、报销、合同、发票 提交报销、付款、修改预算
crm CRM / 客户成功系统 查询客户、商机、沟通记录 更新阶段、创建合同、外发邮件
project Jira / Linear / 禅道 / 飞书项目 查询任务、里程碑、负责人 修改状态、创建任务
docs Notion / 飞书云文档 / Confluence / Git 文档 搜索文档、读取版本 发布制度、修改知识库
bi BI / 数据仓库 / 指标平台 查询看板、指标、口径 修改指标口径、导出敏感数据
audit 审计日志 / SIEM / 内部风控 写入和查询审计记录 删除日志不允许暴露给 Agent

工具命名空间

工具名应该表达系统、对象和动作,避免模糊动词。

github.search_issues
github.get_pull_request
github.list_ci_runs

finance.get_budget
finance.search_invoices
finance.submit_expense_draft

crm.search_accounts
crm.get_opportunity
crm.update_opportunity_stage

docs.search
docs.get_document
docs.create_review_request

audit.write_event
audit.query_trace

命名空间的价值是让权限、审计、评测和日志聚合更简单。不要让不同部门 Connector 暴露同名但语义不同的工具。

工具契约

每个工具都应定义:

  • 输入 schema。
  • 输出 schema。
  • 权限要求。
  • 风险等级。
  • 是否只读。
  • 是否需要人工审批。
  • 错误码。
  • 审计字段。
  • 可引用证据字段。
  • 幂等键或防重复执行策略。

输出中至少包含:

source_system
object_type
object_id
updated_at
permission_scope
evidence_url_or_path
summary
raw_fields_allowed_for_current_user

风险分级

这里的 R0 到 R4 是工具动作风险等级,不是运行时渐进披露的 D0 到 D5。

等级 类型 策略
R0 公开或部门内只读查询 可自动执行,记录日志
R1 受限只读查询 需要用户具备源系统权限
R2 低风险写入 创建草稿、评论、任务草案,可撤销
R3 中风险写入 修改状态、创建正式对象,需要规则校验
R4 高风险动作 付款、合并代码、删除、外发,必须人工确认

权限判断不能只依赖 Agent 提示词。工具网关必须在代码层验证用户、角色、部门、项目、对象权限和动作等级。

最小 Tool Gateway Safety Harness

当前 repo 已新增本地 tool_gateway_safety_harness,用合成工具验证 MCP / Connector 前的最低安全边界。

它当前覆盖:

  • 工具 allowlist。
  • schema hash 固定。
  • 用户 scope 检查。
  • R4 高风险动作 require_approval。
  • R3 写操作 draft_only。
  • URL / egress allowlist 和 metadata host 拦截。
  • 工具输出脱敏。
  • 审计日志不保存原始 token、cookie、password 或 private key。

这不是完整 MVC,也不是源系统权限模型。它的作用是在真实 GitHub、财务、CRM、企微等 Connector 接入前,先固定每个工具都必须经过的统一门禁。

详见:Tool Gateway Safety Harness。

第一批已经接入的本地工具族是 SearchConnector:

  • context.search
  • context.get_document
  • context.report_gap

这三个工具现在通过 SearchConnector Tool Gateway 验证 schema hash、scope 子集检查、输出后置过滤和 safe output,避免 Agent 直接自由访问检索对象。

第二批已经接入的本地工具族是 reviewed/promoted knowledge card:

  • knowledge_card.search
  • knowledge_card.reindex

它们通过 Knowledge Card Tool Gateway 验证 search 不绕过 context.search、team 用户不能扩大到 restricted scope、restricted card 的内容/路径/owner/对象 ID 不泄露,全局 reindex 只作为治理动作开放,以及本地 reindex queue 的 safe output 不泄漏路径、owner、reviewer 或内容 marker。

第三批已经固化的是外部 Connector action contract:

  • wecom.message.send
  • github.pr.checks
  • crm.update_opportunity_stage
  • github.merge_pull_request

它通过 External Connector Action Gateway 验证外部系统响应不能直接进入模型,允许执行或 draft-only 后只能写安全 writeback event;safe output 和 writeback 不暴露消息 ID、会话 ID、外部 URL、owner、业务对象 ID 或正文。

外部系统后续回调进入 Framework 时,再通过 Connector Callback Ledger 验证签名、时间窗、必填字段和幂等;重复回调不追加 ledger event,无效签名、过期时间戳和缺字段回调不落账。真实企微 / GitHub / CRM adapter 后续只替换 API 调用、签名 header、重试策略和字段映射,不改变这两层边界。

返回证据

Connector 不应只返回自然语言摘要。它应该返回结构化证据:

  • 原始系统对象 ID。
  • 可追溯 URL 或路径。
  • 字段级脱敏状态。
  • 更新时间。
  • 数据 owner。
  • 当前用户为何可见。
  • 是否来自缓存。

Agent 生成回答时应优先引用这些证据字段,避免把业务系统结果改写成无法追踪的“模型记忆”。

审计日志

每次工具调用至少记录:

  • 用户和组织身份。
  • Agent session / workflow run。
  • 工具命名空间和工具名。
  • 输入摘要和敏感字段 hash。
  • 输出摘要和对象 ID。
  • 权限判断结果。
  • 是否经过人工审批。
  • 运行时间、成本和错误码。
  • trace id。

审计工具本身也要纳入权限控制。Agent 可以写审计事件,但不能删除审计事件。

与 Anthropic Connector 思路的关系

Anthropic 的连接器与 MCP 方向说明了两个工程重点:一是工具可以通过远程 MCP Server 接入模型或 Agent,二是组织管理员需要对工具动作做 allow、approval、blocked 等限制。

OrgReOrg 的实现应把这些思想内化为平台能力:

  • Connector 是部门系统能力的封装边界。
  • MCP 是 Agent 调用工具的标准接口之一。
  • 工具权限是组织治理的一等对象。
  • 源系统权限仍然是底线,OrgReOrg 只能收窄权限,不能放大权限。

参考资料:

  • Anthropic MCP Connector 文档:https://docs.anthropic.com/en/docs/agents-and-tools/mcp-connector
  • Anthropic Connectors 权限说明:https://support.anthropic.com/en/articles/11176164-pre-built-web-connectors-using-remote-mcp