展开It MCP服务器
将AI助手连接到 展开它 --使用人工智能生成的计划、代理辅助的澄清、丰富的计划导入、个人进度跟踪、队列分析和技能评估来创建目标。
为想要使用的平台(学院、LMS工具、教练应用程序)而构建 展开它 作为它们的执行层。三个自主级别:完全自主、半自动审查,或通过人工智能丰富导入自己的步骤。使用人工智能验证的MCQ生成技能评估,对其进行评分,并根据结果自动创建有针对性的学习路径。使用自定义元数据标记目标,以跟踪和分析整个队列。
快速开始
npx @unfoldit/mcp-server或全局安装:
npm install -g @unfoldit/mcp-server配置
设置以下环境变量:
| 变量 | 必填 | 描述 |
|---|---|---|
UNFOLD_API_KEY | 是 | 组织级API密钥。在app.unfoldit.com上生成->组织->API密钥 |
UNFOLD_API_URL | 没有 | API基URL。默认为 https://api.unfoldit.com |
克劳德桌面/克劳德代码
添加到MCP配置(claude_desktop_config.json 或 .mcp.json):
{
"mcpServers": {
"unfoldit": {
"command": "npx",
"args": ["@unfoldit/mcp-server"],
"env": {
"UNFOLD_API_KEY": "unfold_sk_..."
}
}
}
}光标
添加 .cursor/mcp.json 在您的项目中:
{
"mcpServers": {
"unfoldit": {
"command": "npx",
"args": ["@unfoldit/mcp-server"],
"env": {
"UNFOLD_API_KEY": "unfold_sk_..."
}
}
}
}API关键范围
您的API密钥需要特定的作用域,具体取决于您使用的工具:
| 默认情况下是否包括范围 | 工具 | ? |
|---|---|---|
goals:create | 创建目标、展开目标、提交澄清、导入计划 | 是 |
goals:read | get_goal_status、list_goals、get_analytics、get_clarification | 是 |
claims:manage | revoke_reclaim | 是 |
assessment:generate | 生成技能评估 | 不 --必须明确授予 |
assessment:score | 分数_技能_评估 | 不 --必须明确授予 |
assessment:read_capabilities | 获取评估能力 | 不 --必须明确授予 |
评估范围是可选的。请您的组织所有者在API密钥设置中启用它们。
可用工具(12)
create_goal
使用AI生成的计划创建目标。代理使用您提供的上下文自动回答澄清问题。集 auto_respond=false 在计划生成之前审查代理建议。将目标标记为 metadata 对整个队列进行分组和分析。
输入:
title(必填)--目标标题
description--目标描述。更多细节产生更好的AI计划
context--为代理提供丰富的上下文:
- tech_stack --例如\[“Python”、“React”\] - team_size --例如3 - timeline --例如“3个月”、“2026年第三季度” - constraints --例如“每周2小时” - experience_level --例如“初级”、“高级” - industry --例如“金融科技” - additional_notes --任何其他上下文
auto_respond--true(默认):代理回答所有问题。false:返回问题和建议以供审阅
clarification_answers--按问题ID预设答案(代理跳过这些答案)
goal_context--“个人”或“专业”(默认:“专业”)
priority--“低”、“中”或“高”(默认值:“中”)
claim_expires_in_days--索赔链接有效期(默认值:30)
progress_share--生成可嵌入的进度链接(默认值:true)
metadata--用于分析分组的自定义键值标签,例如。{ cohort: "spring-2026", track: "frontend" }
category--资源类别提示:“学习”、“health_adhd”或“一般”。如果没有提供,则从目标标题和描述中自动检测到。确定在将资源附加到子步骤时使用哪些源和搜索策略。
resource_world--覆盖此目标的资源发现:
- preferred_sources --要优先考虑的源域,例如。 ["coursera.org", "docs.python.org"] - excluded_sources --要抑制的源域 - youtube_playlists --用于从中提取资源的YouTube播放列表ID - lms_search_endpoint --自定义LMS搜索端点URL - content_policies -- { require_verified_sources, show_disclaimer, disclaimer_text }
assessment(自v0.7.0起)——规划者用于偏置步骤选择的结构化评估输入。受到歧视assessment_type:
- skill_proficiency v1--放下 score_skill_assessment 直接回应。规划者优先考虑薄弱环节,压缩强环节,并锚定步骤 work_item_context. - clinical_intake v1——ADHD/指导/临床背景。线材形状已锁定;提示生成器当前已被截断并返回 assessment_type_not_supported 直到真正的合作伙伴驱动它。敏感型——需要每个组织都启用超级管理员。 - general v1——捕获所有不符合任何类型形状的评估数据。被视为柔和的暗示;仅 constraints 被视为硬性限制。
看 指南_评估_计划_MCP 了解规范的端到端演练。
退货: goalId, claimLink, claimToken, progressLink, planGenerationStatus, questions (如果auto_response=false), agentAnswersUsed, warnings (始终存在,无时为空)
get_goal_status
获取目标的当前状态和完整的分步细节。当计划准备就绪时,返回单个步骤数据(时间戳、花费的时间、阻塞器计数、子步骤进度)。
输入:
goal_id(必填)--create_goal中的目标ID
退货: 目标状态, progress, resourceCategory, steps[] (当计划准备就绪时,提供每一步的详细信息), metadata, claimCreatedAt, claimedAt, assignedTo, agentAnswersUsed
get_analytics
API创建的所有目标的汇总队列分析。返回KPI、有风险的学习者、阶梯级下降漏斗,以及按元数据维度或资源类型进行的可选细分。
输入:
group_by--按(例如“跟踪”、“队列”、“部门”)细分完成率的元数据关键字inactive_days--将这几天内没有步骤活动的目标标记为有风险(默认值:7)include_funnel--包括逐步完成漏斗(默认值:true)include_resources--按类型和来源包括资源参与(默认值:false)metadata--筛选到特定的队列或细分市场,例如。{ cohort: "spring-2026" }date_from--ISO日期(YYYY-MM-DD)。仅包括在此日期或之后创建的目标date_to--ISO日期(YYYY-MM-DD)。仅包括在此日期或之前创建的目标
退货:
totalGoals,activeGoals,completedGoals,blockedGoals,completionRate,avgDaysToCompleteclaimsTotal,claimsClaimed,claimsPending,claimsExpired,avgHoursToClaimatRiskCount,atRiskGoals[](goalId、标题、元数据、非活动天数、进度百分比)completionByDimension[](当group_by被设置时)stepFunnel[](stepOrder、stepTitle、完成率、平均完成时间)resourceEngagement[](当include_resources=true时)
get_clarification
使用代理建议的答案和置信水平获取未决澄清问题。使用后 create_goal 随着 auto_respond=false.
输入:
goal_id(必填)--create_goal中的目标ID
退货: 问题与 agentAnswer, agentConfidence (高/中/低/回退), agentSource
提交澄清
提交澄清问题的答案并触发计划生成。对于要覆盖的问题,请提供自己的答案。其余部分保留代理建议。
输入:
goal_id(必填)--create_goal中的目标IDanswers--您的答案由问题ID键入(仅包括覆盖)accept_agent_answers--接受代理对未覆盖问题的建议(默认值:true)
退货: goalId, status, planGenerationStatus, agentAnswersUsed
导入计划
导入一个包含步骤和子步骤的预先制定的计划。完全跳过澄清。人工智能通过依赖关系、关键路径、持续时间估计、严重性、复杂性和速赢标志丰富了步骤。
输入:
title(必填)--目标标题description--目标描述steps(必填)--步骤数组,每个步骤包含:
- title (必填)--步骤标题 - description --步骤说明 - substeps --可选的子步骤数组,包括标题、描述、类型(研究/工作/决策/验证)
enrich--运行AI富集(默认值:true)。将0学分设置为falseenrich_options--控制要运行的富集功能:
- dependencies, critical_path, duration_estimates, severity, complexity, quick_wins, resources
goal_context--“个人”或“专业”(默认:“专业”)priority--“低”、“中”或“高”(默认值:“中”)claim_expires_in_days--索赔链接有效期(默认值:30)progress_share--生成可嵌入的进度链接(默认值:true)metadata--用于分析分组的自定义键值标签,例如。{ cohort: "spring-2026", track: "backend" }
退货: goalId, planId,丰富 steps[] 使用元数据, claimLink
列表_来源_类别
列出目标分类的可用资源类别。返回每个类别的活动提供者、内容安全策略和免责声明文本。使用此功能构建自适应UI,或在创建目标之前发现哪些类别可用。
输入: 无
退货: 类别数组,每个类别都有 id, name, description, activeProviders, showDisclaimer, disclaimerText
list_goals
使用可选过滤器列出组织中的所有目标。使用 metadata 为了过滤到队列, category 按目标类型划分, assigned_email 查找特定的学习者,或 inactive_days 在不进行全面分析的情况下找到有风险的目标。
输入:
status--按目标状态筛选(草稿、正在进行中、已完成、已阻止、已暂停)claim_status--按索赔状态筛选(未索赔、已索赔、已过期、已撤销)category--按资源类别筛选(学习、健康、一般)。使用此方法将ADHD目标与混合队列中的学习目标区分开来。metadata--按“key=value”格式的元数据标签过滤,例如。["track=frontend", "cohort=spring-2026"]assigned_email--仅返回分配给此学员电子邮件的目标inactive_days--仅返回过去N天内没有步骤活动的目标(1-365)limit--最大结果(默认值:50)offset--分页偏移
退货: 目标状态数组 progress, resourceCategory, metadata, claimCreatedAt, claimedAt
撤销索赔
使索赔链接无效,因此无法再使用。
输入:
claim_token(必需)--声明链接URL中的令牌
生成技能评估
为学习者生成技能水平评估(MCQ)。问题在返回之前是人工智能生成和验证的(结构+语义检查)。返回已签名的 assessment_token 对学习者的答案进行评分。
输入:
work_item_context(必填)——学习者正在准备的工作项目:
- title (必填)--工作项标题 - description --工作项描述(最多2000个字符) - domain_tags --问题锚定标签
skill(必填)-评估技能(例如“Python”、“SQL”、“项目管理”)target_proficiency(必填)——学习者应达到的等级:“初级”、“低级”、“中级”、“高级”num_questions(必填)--要生成的MCQ数量(3-20)difficulty_mix--分布为{easy, medium, hard}浮点数的总和为1.0。违约:{easy: 0.2, medium: 0.5, hard: 0.3}band_thresholds--自定义熟练程度范围。默认值:初学者\[0,10\],低\[11,50\],中\[51,85\],高\[86100\]language--ISO语言代码(默认值:“en”)request_id(必填)——标识键。相同的request_id返回相同的评估。
退货: assessment_token, questions[] (茎、选项、难度、技能面), band_map, max_raw_score, target_band, model_meta
需要范围: assessment:generate
分数_技能_评估
使用签名对提交的评估进行评分 assessment_token 从 generate_skill_assessment.返回学习者的熟练程度等级、差距与目标以及每个问题的结果。当学习者表现不佳时,包括 suggested_goal_seed 你可以通过 create_goal 创建有针对性的学习路径。
输入:
assessment_token(必填)--generate_skill-assessment中的签名令牌answers(必填)--数组{question_id, selected_option_id}(至少一个)band_thresholds--可选覆盖熟练程度范围(默认为令牌中嵌入的阈值)request_id(必填)--标识键
退货: raw_score, max_raw_score, raw_pct, band, target_band, gap_bands, per_question[], per_facet[] (每个子技能的服务器端聚合 total, correct, raw_pct, classification: weak | strong | mixed), weak_facets[], strong_facets[], facet_coverage (full | partial | difficulty_fallback), recommended_action (none/create_unfold_goal), suggested_goal_seed
链条提示: 此响应与形状兼容create_goal的新assessment领域(技能效率v1)。将其放入,并添加三个标题字段(assessment_type: "skill_proficiency",schema_version: "v1",assessed_at:)规划者直接使用它。没有客户端连接逻辑,没有阈值调整。
需要范围: assessment:score
获取评估能力
获取技能评估的支持参数。在致电之前使用此功能进行反思 generate_skill_assessment。不需要输入参数。
退货: schema_version, supported_languages, min_questions, max_questions, supported_proficiency_bands, default_band_thresholds, default_difficulty_mix, open_domain, token_ttl_seconds
需要范围: assessment:read_capabilities
运作原理
第1级——半自动(审查代理商建议)
- 呼叫
create_goal随着auto_respond=false以及你的背景 - 使用客服建议的答案和置信度回复问题
- 审查建议,推翻你不同意的任何建议
- 呼叫
submit_clarification触发计划生成 - 投票
get_goal_status直到planGenerationStatus已“完成”
第2层——全自动(代理处理一切)
- 呼叫
create_goal带上下文(auto_response默认为true) - 代理使用您的上下文+用户历史记录回答所有澄清问题
- 计划在后台生成(15-30s)
- 立即获取索赔链接——将其发送给您的用户
- 投票
get_goal_status完成和agentAnswersUsed透明度
第3层——导入(自带步骤)
- 呼叫
import_plan用你的步骤和子步骤 - 人工智能丰富了依赖关系、持续时间、严重性、关键路径
- 计划立即准备就绪(无需澄清)
- 获取索赔链接和丰富的步骤元数据
先评估后学习(评估到目标)\[更新v0.7.0\]
将评分评估转化为个性化计划的规范链,没有客户端连接逻辑:
- 呼叫
generate_skill_assessment具备技能、目标熟练程度和工作项目背景 - 在用户界面中向学习者提出问题
- 呼叫
score_skill_assessment带有令牌和学习者的答案。响应包括per_facet,weak_facets,strong_facets,facet_coverage(服务器端聚合)。 - 呼叫
create_goal随着分数反应下降到新的assessment领域(技能效率v1)。规划者使用弱/强刻面来偏置步骤并将其锚定work_item_context. - 将索赔链接发送给学员。
带有效载荷示例的完整演练 skill_proficiency, general,以及 clinical_intake 住在 指南_评估_计划_MCP.
遗产之路。 v0.7.0之前的集成将分数填充到additional_context.unfold_assessment根据 有效载荷公约这仍然有效POST /api/v1/ext/goals用于向后兼容;在幕后,这两条路径现在都通过同一个promptbuilder注册表进行路由。新的集成应使用结构化assessment场上create_goal.
示例提示
“为初学者创建一个Python认证学习路径,每周2小时,持续3个月。”
“导入我们的Jira sprint待办事项列表作为目标,其中包含依赖关系和时间估计。”
“为Sarah制定一个辅导计划,但在制定计划之前,让我先复习一下问题。”
“为患有时间盲症的患者制定一个ADHD晨间例行指导计划,其中包含health_ADHD类别。”
“列出春季队列中的所有health_adhd目标,并告诉我哪些目标有风险。”
“显示所有尚未使用索赔链接的目标。”
“目标abc-123的进展如何?学习者开始了吗?”
“为需要中等熟练程度才能从事ML管道工作的人生成一个包含8个问题的Python评估。”
“对这项评估进行评分,如果学习者没有达到目标,则根据结果创建一个目标。”
获取API密钥
- 首选 App.formmation.com
- 创建或切换到您的组织
- 转到组织设置
- 滚动到 API密钥 部分
- 点击 +创建密钥,为其命名,并复制密钥
键入错误和警告(v0.7.0+)
当一个工具因键入错误而失败时,响应是一个结构化的JSON信封,而不是一个字符串化的消息。上的分支 error_code:
error_code | 何时 | 备注 |
|---|---|---|
models_not_configured | BYO提供程序角色未配置 | 响应包括 settings_url |
provider_unauthorized | BYO提供程序密钥被拒绝 | 包括 settings_url 和 switch_to_unfold_ai CTA |
provider_quota_exceeded | BYO提供商返回配额/计费错误 | 包括 switch_to_unfold_ai CTA |
provider_unavailable | BYO供应商5xx或断路器断开 | 瞬态;稍后重试 |
assessment_type_not_supported | assessment_type 已识别但构建器尚未连接 | 响应包括 supported 列表 |
assessment_type_not_enabled_for_org | 租户尚未选择此评估类型 | 敏感类型(clinical_take)需要超级管理员启用 |
token_invalid / assessment_expired | 评估令牌被篡改或超过TTL | 通过generate_skill-Assessment重新生成 |
idempotency_conflict | 与不同请求体使用相同的request_id | 选择一个新的request_id |
validation_failed | 重试预算后生成输出验证失败 | 使用不同的request_id重试 |
对目标创建的成功回应也 warnings: ApiWarning[] (始终存在,无时为空)。已知警告代码:
code | 何时 |
|---|---|
category_assessment_type_mismatch | category 和 assessment.assessment_type 不同意。计划是使用assessment_type生成的。 |
duplicate_assessment_input | 两者均为结构化 assessment 领域与遗产 additional_context.unfold_assessment 信封已寄出。结构化获胜。 |
这两个分支都保留了结构化的信封,因此AI编码代理可以在 error_code 或警告 code 串。看 版本控制策略 以确保这些代码的稳定性。
版本控制
这个包遵循semver。固定次要版本范围("@unfoldit/mcp-server": "^0.7.0")--您将自动获得修复和附加功能;突破性的更改需要一个重大的版本升级。我们支持最新的两个次要版本;年龄较大的未成年人只接受安全修复。
了解更多
许可证
麻省理工学院
