Files
xiaoqu_mcp_service/xiaoqu-agent-service/src/main/resources/application-prod.yml
T
xiaoqu-ai 0d43b6af23 feat(mcp): 作用域-工具绑定改为启动时幂等同步(不再依赖手工 SQL)
问题:新工具部署后必须先手工绑 scope_tool,否则调用方 PERMISSION_DENIED。
2026-10-21 新增的 hardware.statistics.query 与用纸类工具因此一直不可用。

改动:
- ScopeToolSyncService:启动时按 mcp.scope-tool-bindings 幂等写入 scope_tool
  · 格式 sync=toolA,toolB(多条用 ; 分隔)
  · 只新增不删除;作用域/工具缺失记 WARN 跳过,不阻断启动
  · @Order(2) 保证在工具注册(ToolSyncService)之后执行
- application-prod.yml:默认绑定 sync 作用域到 CRM 画像所需的 4 个工具
  (district.paper.statistics / device_average / trace.list / hardware.statistics),
  可通过 MCP_SCOPE_TOOL_BINDINGS 覆盖
- 设计文档 doc/scope-tool-binding-sync-design.md
- 单测 3 例(解析/幂等/容错)

部署后启动日志会打印 scope-tool binding 新增记录,可直接核对。
2026-10-21 12:43:49 +08:00

58 lines
2.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# prd 环境:阿里云 RDS / Redis(拓扑沿用 xiaoqu-franchisee pom.xml prd profile)
# 敏感值一律走环境变量,不写明文、不入库;
# 服务器上由 /data/xiaoqu-agent-service/app.env 注入(deploy.sh 启动前 source)
# MCP 作用域-工具绑定:启动时幂等写入 scope_tool(只新增不删除)。
# 2026-10-21 用户授权:CRM 客户画像需要"用量(换纸/用纸)"与"设备统计"工具,
# 我们的同步 token 使用 sync 作用域,故绑定到 sync。
# 多条用 ; 分隔,同一绑定的多个工具用 , 分隔。
mcp:
scope-tool-bindings: ${MCP_SCOPE_TOOL_BINDINGS:sync=district.paper.statistics.query,district.paper.device_average.query,district.paper.trace.list.query,hardware.statistics.query}
app:
open:
api-key: ${OPEN_API_KEY}
# ak 明文 AES-GCM 加密密钥,prd 必须与 dev 不同值
token-cipher-key: ${TOKEN_CIPHER_KEY}
datasource:
m0: # 权限库 xiaoqu_complex(user/agent/authority 等)
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: ${SVC_DB_M0_URL}
username: ${SVC_DB_M0_USER}
password: ${SVC_DB_M0_PASSWORD}
m1: # 商城库 xiaoqu_mall(按需启用)
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: ${SVC_DB_M1_URL}
username: ${SVC_DB_M1_USER}
password: ${SVC_DB_M1_PASSWORD}
m2: # 业务库 xiaoqu_franchisee
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: ${SVC_DB_M2_URL}
username: ${SVC_DB_M2_USER}
password: ${SVC_DB_M2_PASSWORD}
svc: # 自有库 xiaoqu_agent_svc(token/scope/tool/audit,读写,Flyway 自动建表)
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: ${SVC_DB_SVC_URL}
username: ${SVC_DB_SVC_USER}
password: ${SVC_DB_SVC_PASSWORD}
# ES 双集群:cloud=云集群、local=本地化集群(hosts 支持逗号多节点)
es:
cloud:
hosts: ${SVC_ES_CLOUD_HOSTS}
port: ${SVC_ES_CLOUD_PORT:9200}
username: ${SVC_ES_CLOUD_USERNAME:}
password: ${SVC_ES_CLOUD_PASSWORD:}
local:
hosts: ${SVC_ES_LOCAL_HOSTS}
port: ${SVC_ES_LOCAL_PORT:9200}
username: ${SVC_ES_LOCAL_USERNAME:}
password: ${SVC_ES_LOCAL_PASSWORD:}
spring:
data:
redis:
host: ${SVC_REDIS_HOST}
port: ${SVC_REDIS_PORT:6379}
password: ${SVC_REDIS_PASSWORD}
database: ${SVC_REDIS_DB:5}
timeout: 5s