Skip to main content
Glama

Update Studocu Project

update-project
Idempotent

Change the name, icon, or linked course of an existing project. Pass course_id null to unlink the course.

Input Schema

NameRequiredDescriptionDefault
emojiNoNew icon text, usually an emoji. Example: "📚". Omit to leave it unchanged.
titleNoNew name, 1-255 characters, with at least one non-space character. Example: "Biology midterm". Omit to leave the name unchanged.
course_idNoPositive integer course id from search-courses, or null to unlink the course. Example: 1581710. Omit to leave the link unchanged.
project_idYesUUID of the project to change. Example: 11111111-1111-4111-8111-111111111111. From create-project or get-context.

Output Schema

NameRequiredDescriptionDefault
emojiYes
titleYesAgent-displayable project title. Null Alpha names become "Untitled project".
course_idYes
is_mobileYes
project_idYesUUID string in 8-4-4-4-12 hexadecimal form. Example: 11111111-1111-4111-8111-111111111111.
institution_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / course_id / description
      Added value: +"Positive integer course id from search-courses, or null to unlink the course. Example: 1581710. Omit to leave the link unchanged."
    • addedInput schema / properties / emoji / description
      Added value: +"New icon text, usually an emoji. Example: \"📚\". Omit to leave it unchanged."
    • changedInput schema / properties / project_id / description
      Previous value: -"NOTE: These shared primitives are copied from the AI API spec and owned\nlocally by Agent OS to keep this contract decoupled."New value: +"UUID of the project to change. Example: 11111111-1111-4111-8111-111111111111. From create-project or get-context."
    • addedInput schema / properties / title / description
      Added value: +"New name, 1-255 characters, with at least one non-space character. Example: \"Biology midterm\". Omit to leave the name unchanged."
    • changedOutput schema / properties / project_id / description
      Previous value: -"NOTE: These shared primitives are copied from the AI API spec and owned\nlocally by Agent OS to keep this contract decoupled."New value: +"UUID string in 8-4-4-4-12 hexadecimal form. Example: 11111111-1111-4111-8111-111111111111."
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the description does not need to argue safety; what it does add is genuinely new behavior — that passing course_id null unlinks the course, which is a removal-ish semantic an agent would otherwise not anticipate. It omits that omitting a field leaves it unchanged (that lives only in the schema property descriptions).

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

Conciseness5/5

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

Two short sentences, zero filler, with the capability stated first and the one non-obvious parameter behavior second. Every clause carries information.

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

Completeness4/5

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

With an output schema, full annotation coverage, and 100% schema descriptions, the description need only orient the agent, which it does. The main gap is that it never states the 'at least one field must be provided' rule that the schema enforces via anyOf and minProperties.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already documents omit-to-leave-unchanged and null-to-unlink, so the description largely restates schema content. Baseline 3 applies; no extra syntax, id provenance, or partial-update rules are added beyond what the schema says.

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

Purpose4/5

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

States a specific verb ('Change') plus the resource ('an existing project') and enumerates the three mutable fields (name, icon, linked course), so an agent can tell it is the mutation counterpart to create-project. It does not explicitly name get-project-state or create-project, but the 'existing project' framing makes the distinction inferable.

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

Usage Guidelines3/5

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

Usage is implied: it operates on an existing project and supports partial updates, and the null-unlink carve-out hints at how to remove a link. There is no explicit when-to-use vs. create-project guidance and no statement of the precondition that at least one optional field must be supplied (the schema's anyOf/minProperties), so the agent must open the schema to learn that.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources