关于 nocobase-data-analysis
面向使用 NocoBase MCP 工具进行业务数据分析的技能,帮助 Agent 定位集合、谨慎查询并生成汇总或分组结果。它强调先核实数据源、字段和查询契约,并在聚合结果可疑时进行交叉检查。
主要功能
- 01检查 MCP 认证状态
- 02发现数据源与目标集合
- 03核实字段及查询参数格式
- 04支持计数、分组和趋势分析
- 05对可疑聚合结果进行交叉核验
适用场景
- 01汇总业务集合记录数
- 02按状态、负责人或部门统计数据
- 03检查指标口径并核对分组总数
- 04在多个数据源中定位业务数据
MCP 相关
通过 NocoBase MCP 工具查询业务数据。使用前要求 MCP 已连接并完成认证;技能会调用数据源、集合元数据及资源查询工具。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nocobase/ skills --skill nocobase-data-analysis安装后在 Claude Code 中输入/nocobase-data-analysis确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/analysis-patterns.mdentity-mapping.mdmetric-checklist.md详细介绍
目标
使用 NocoBase MCP 工具找到正确的集合,安全地查询业务数据,并生成可靠的摘要或分组分析。
前提条件
- NocoBase MCP 必须已可访问并完成身份验证。
- 如果 MCP 返回身份验证错误,例如
Auth required,请停止操作,并让用户先刷新 MCP 身份验证。
默认策略
- 首先检查数据源路径。
- 优先使用
main数据源。 - 如果目标集合不在
main中,则检查其他已启用的数据源。 - 找到集合后,在后续每次
resource_*调用中都明确指定该dataSource。 - 只有在确认查询参数约定后,才优先使用
resource_query进行计数和分组分析。 - 如果查询结果可疑或需要交叉核对,则改用
resource_list并手动计数。
实用参考资料:
- 常见业务分析模式见
references/analysis-patterns.md - 指标定义和范围检查见
references/metric-checklist.md - 业务术语与集合、字段的映射见
references/entity-mapping.md
发现数据源
- 如果用户明确指定了数据源,则直接使用该数据源。
- 否则从
main开始。 - 如果在
main中找不到目标集合,则调用data_sources:list_enabled,逐一检查其他已启用的数据源。 - 如果多个数据源中都存在同名集合:
- 如果其中包含
main,则默认使用main; - 否则列出候选项,并说明使用哪一个。
- 如果其中包含
- 在最终答复中说明使用了哪个数据源。
发现集合
- 如果用户给出了集合名称,则在查询前确认该集合存在。
- 如果用户使用“潜在客户”“用户”“订单”或“商机”等业务术语,则检查集合元数据,将业务术语映射到实际集合名称。
- 优先使用
collections:listMeta快速查看概况。 - 需要准确字段名、关联目标或枚举选项时,再使用
collections:get,并设置appends: ["fields"]。 - 可将
references/entity-mapping.md用作常见业务名词及可能字段类别的通用参考。
查询约定检查
使用 resource_query 前,确认请求格式符合实际后端约定:
- 使用
measures[].aggregation,而不是aggregate - 使用
orders[].order,而不是direction field通常应作为字段路径数组传入,例如["id"]或["owner", "nickname"]- 如果结果会在输出或
having中引用,请使用alias
正确示例:
{
"resource": "lead",
"dataSource": "main",
"measures": [
{ "aggregation": "count", "field": ["id"], "alias": "lead_count" }
]
}
{
"resource": "lead",
"dataSource": "main",
"dimensions": [
{ "field": ["status"], "alias": "status" }
],
"measures": [
{ "aggregation": "count", "field": ["id"], "alias": "lead_count" }
],
"orders": [
{ "field": ["status"], "alias": "status", "order": "asc" }
]
}
推荐工作流
1. 确认可访问性
- 使用
auth:check。 - 如果身份验证失败,则停止操作。
2. 查找集合
- 首先检查
main。 - 如果未找到,则检查其他已启用的数据源。
- 如果字段名或关联关系不确定,则在查询前读取字段信息。
3. 从简单计数开始
- 使用
resource_query,并仅指定一个count(id)度量。 - 首次查询应尽量精简,以便快速验证结果格式。
4. 添加分组分析
常见分组视图:
- 按状态
- 按负责人
- 按来源
- 按部门
- 按创建日期或月份
对于关联标签,请使用如下字段路径:
["owner", "nickname"]["mainDepartment", "title"]
5. 按需交叉核对
遇到以下情况时,使用 resource_list 重新检查:
- 分组行出现意料之外的重复;
- 数值结果看起来像记录 ID,而不是计数;
- 汇总结果与分组输出的总数不一致;
- 集合可能受 ACL 范围或隐藏筛选条件影响。
交叉核对时:
- 获取足够的行以覆盖可见数据集,或使用分页;
- 根据返回的记录手动计数和分组;
- 将手动结果与
resource_query的结果进行比较。
6. 呈现结果
报告以下内容:
- 使用的集合;
- 使用的数据源;
- 总数;
- 关键分组明细;
- 任何注意事项,例如 ACL 范围、空值或采用手动验证作为回退方案。
分析入口
查询前先对用户请求分类:
overview:查询当前总数和主要分布distribution:按状态、负责人、来源、团队或部门统计分组数量funnel:分析按阶段推进的业务进程trend:分析按日期或月份划分的时间变化ranking:按负责人、来源、客户或产品列出排名quality-check:检查缺失值、空值过多的字段、可疑状态或孤立关联
每种模式的推荐查询结构请参阅 references/analysis-patterns.md。
指标定义检查
返回答案前,先核实指标范围:
- 包含的时间范围
- 用于确定时间范围的时间字段
- 指标是总数、去重计数、总和还是平均值
- 是否应纳入已归档、非活跃、空值或其他终止状态
- 分组总数是否与总计一致
如果用户请求含糊,或指标可能存在多种解释,请使用 references/metric-checklist.md。
常见问题
- 不要假设数据集合位于
main;先检查main,再搜索其他已启用的数据源。 - 找到数据集合后,不要省略
dataSource。 - 不要在查询度量中使用
aggregate;后端要求使用aggregation。 - 不要在查询排序中使用
direction;后端要求使用order。 - 不要假设可疑的聚合结果正确。
- 如果“计数”结果看起来像
36、54、80或其他可能的记录 ID,请确认是否实际执行了聚合。 - 按关联标签分组时,必须使用真实的关联路径和目标字段,不要猜测标签。
验证清单
- MCP 已完成身份验证。
- 所选数据源中存在该数据集合。
dimensions、measures、orders和filter中使用的字段均实际存在。resource_query使用aggregation和order。- 汇总总数与分组总数一致,或已解释任何差异。
- 最终答案说明数据源以及使用的任何验证回退方案。
评论
支持 Markdown