Skip to main content
Glama
Unfold-it

Unfold It MCP Server

Official
by Unfold-it

create_goal

Create a goal with an AI-generated plan and generate a one-time claim link for users to join your org and start executing.

Instructions

Create a goal in your Unfold org with an AI-generated plan.

Returns a one-time claim link to send to the user. When they click it, they auto-join your org, get assigned the goal, and land directly on it with a fully AI-generated plan ready to execute.

The plan generates asynchronously (15-30s). The claim link works immediately. Use get_goal_status to check when planGenerationStatus changes to "completed".

With auto_respond=true (default), the agent answers all clarification questions automatically using the provided context. Set auto_respond=false to get questions back with agent suggestions for client review -- then use submit_clarification to provide your answers.

CHAINING:

  • If you have an assessment scored via score_skill_assessment, drop its response (band, target_band, per_facet, weak_facets, work_item_context) into the 'assessment' field. The planner will prioritise weak facets, skip strong ones, and anchor steps in the work item.

  • Each goal is for one user. Call this once per learner/user.

TYPED ERRORS (branch on error_code):

  • "models_not_configured": tenant's BYO provider has no role configured. Response includes settings_url for the user to fix it.

  • "provider_unauthorized" / "provider_quota_exceeded": BYO provider key rejected. Response may include switch_to_unfold_ai CTA.

  • "assessment_type_not_supported": you sent an assessment whose prompt builder is not yet wired (e.g. clinical_intake before partner integration). Response.details.supported lists what IS wired.

WARNINGS (non-fatal, surfaced in response.warnings):

  • "category_assessment_type_mismatch": category and assessment_type disagree (e.g. learning + clinical_intake). The plan was generated using assessment_type. Set category to align if you want category-aware resource routing.

  • "duplicate_assessment_input": you sent both the structured 'assessment' field and the legacy unfold_assessment envelope inside additional_context. Structured wins.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesGoal title, e.g. 'AI Fundamentals Learning Path'
contextNoStructured context the planner honours directly (not paraphrased via clarification). Higher-priority than free-form description.
categoryNoGoal category for resource routing. Auto-detected from title if omitted. 'learning' = technical skills, courses, upskilling. 'health_adhd' = ADHD management, executive function, habit building. 'general' = everything else. If you also pass `assessment`, prefer the matching category (learning <-> skill_proficiency, health_adhd <-> clinical_intake) to avoid the category_assessment_type_mismatch warning.
metadataNoCustom key-value tags for filtering and analytics (e.g. {cohort: 'spring-2026', track: 'frontend', department: 'engineering'}). Used in get_analytics to group and filter results.
priorityNomedium
assessmentNoStructured assessment input. Discriminated by assessment_type: - skill_proficiency v1: drop the score_skill_assessment response directly here. The planner uses band/target_band/weak_facets/strong_facets/work_item_context for a targeted plan. - clinical_intake v1: ADHD/coaching/clinical context. Wire shape is locked; the prompt builder is not yet wired (you will get assessment_type_not_supported until a real partner drives it). - general v1: catch-all for assessment data that does not fit either typed shape. Treated as soft hints; `constraints` are the only hard limits.
request_idNoIdempotency key. Within a 5-minute window, two calls with the same request_id return the SAME goal and claim link instead of creating a new one. MUST be unique per logical operation (per learner / per enrollment). Two different learners with identical title/description/assessment MUST use different keys -- if you reuse a key across learners, the second learner receives a claim link the first learner already claimed. Recommended construction: derive from your own enrollment_id, or `${course_id}:${learner_id}`. Omit to get a fresh goal on every call (the default). On a replay, the response's `idempotentReplay` is true and `claimStatus` reflects current DB truth so you can detect a link that was already consumed.
descriptionNoGoal description with context. More detail produces a better AI plan.
auto_respondNotrue = fully autonomous (agent answers all questions). false = returns questions with suggestions for review.
goal_contextNoprofessional
progress_shareNoGenerate an embeddable progress report link
resource_worldNoPer-goal resource config. Overrides org defaults for this goal's resource discovery.
claim_expires_in_daysNoHow many days the claim link stays valid
clarification_answersNoPre-set answers by question ID. Agent skips these questions.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It thoroughly discloses behavioral traits: returns a claim link, async plan generation (15-30s), auto_respond behavior, chaining, typed errors, warnings, and idempotency via request_id. This is comprehensive and exceeds expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with sections for CHAINING, TYPED ERRORS, and WARNINGS. It front-loads the core purpose. Every sentence adds value, though slight trimming could improve conciseness. Still, it is effectively organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (14 parameters, nested objects, no output schema), the description is very complete. It explains the return value (claim link), async behavior, error handling, warnings, and idempotency. Without an output schema, it still provides sufficient response details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86% (high), so baseline is 3. The description adds significant value beyond the schema, especially for the assessment parameter (explicitly explaining how to use it with chaining and types) and other parameters like auto_respond and request_id. The extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a goal with an AI-generated plan and returns a claim link. It is distinct from sibling tools like get_goal_status and delete_goal. The verb 'create' and resource 'goal' are specific, and the additional feature 'with AI-generated plan' adds clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides when to use (creating a goal for one user) and chaining information with assessments. It mentions alternatives like submit_clarification and advises calling once per learner. However, it does not explicitly compare to all siblings like import_plan or list_goals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Unfold-it/unfoldit-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server