MCP服务
概述
MCP服务用于将微语服务器能力开放给第三方智能体和MCP客户端。启用后,外部工具可以通过标准MCP协议连接微语服务器,发现可用工具,并在权限允许范围内查询客服、知识库、工单、订单、呼叫中心等业务数据。
当前实现处于第一期:已接入Spring AI MCP Server,支持注册现有Spring AI @Tool,默认只开放只读查询类工具,并通过Bearer Token保护MCP入口。
启用方式
MCP默认关闭。需要外部智能体接入时,在独立MCP配置文件中开启:
spring.ai.mcp.server.enabled=true
bytedesk.ai.mcp.auth.bearer-token=${BYTEDESK_MCP_BEARER_TOKEN}
本地默认端口为9003,MCP客户端连接地址:
http://127.0.0.1:9003/sse
请求需要携带:
Authorization: Bearer <token>
如果开启MCP但未配置bytedesk.ai.mcp.auth.bearer-token,服务会拒绝MCP请求,避免误暴露接口。
配置文件
MCP配置已从AI批处理配置中拆分到独立文件:
starter/src/main/resources/properties/local/75-mcp.propertiesstarter/src/main/resources/properties/noai/75-mcp.propertiesstarter/src/main/resources/properties/open/75-mcp.propertiesstarter/src/main/resources/properties/prod/75-mcp.properties
工具开放策略
默认扫描com.bytedesk包下已有的@Tool,但只开放查询类工具:
bytedesk.ai.mcp.tools.enabled=true
bytedesk.ai.mcp.tools.read-only=true
bytedesk.ai.mcp.tools.include-packages=com.bytedesk
bytedesk.ai.mcp.tools.allow-names=
bytedesk.ai.mcp.tools.deny-names=
bytedesk.ai.mcp.tools.read-only-include-pattern=.*(Query|Search|Find|Get|List|Count).*
bytedesk.ai.mcp.tools.exclude-pattern=.*(Create|Update|Delete|Remove|Cancel|Change|Optimize|Reset|Score|Set|Send).*
allow-names为空时表示允许所有通过包名、只读规则和排除规则筛选后的工具;填写后只暴露名单中的工具。deny-names用于紧急屏蔽指定工具。
安全建议
- 默认保持MCP关闭。
- 初期保持
read-only=true。 - Bearer Token必须通过环境变量或外部配置注入,不要提交到代码仓库。
- 写操作必须先接入权限控制、审批和审计。
- 工具响应中不要返回密码、Token、License、内部配置等敏感字段。