Skip to main content
Glama

update_project

Fill in or correct a stored project. Facts and pack are merged into what is there, so you can add one field at a time as the maker answers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
nameNo
packNo
factsNo
pitchNo
projectIdNoOmit it when the account has one project, which is the free tier.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / pack / properties / xHandle
      Added value: +{
      +  "description": "Without the @. Launch boards ask for it and some make it a required field, so a pack without one stalls at the last step of a form that is otherwise finished. Fill it only with an account you hold: it is printed on the listing as the maker, and a handle typed to satisfy a validator credits whoever really owns it. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
      +  "type": "string"
      +}
  2. Changed8 schema fields changed
    • addedInput schema / properties / pack / properties / coverFile
      Added value: +{
      +  "description": "The same cover as a file on the machine your agent runs on, for the forms that upload it.",
      +  "type": "string"
      +}
    • changedInput schema / properties / pack / properties / coverUrl / description
      Previous value: -"1270x760, the size every gallery accepts. A URL or a local path."New value: +"1270x760, the size every gallery accepts. The public address of it."
    • addedInput schema / properties / pack / properties / demoVideoFile
      Added value: +{
      +  "description": "The video as a file on the machine your agent runs on, for the few platforms that upload rather than embed.",
      +  "type": "string"
      +}
    • changedInput schema / properties / pack / properties / demoVideoUrl / description
      Previous value: -"Optional almost everywhere, decisive on a few. A URL or a local path."New value: +"Optional almost everywhere, decisive on a few. A watch page or a hosted file."
    • addedInput schema / properties / pack / properties / galleryFiles
      Added value: +{
      +  "description": "The same frames as files on the machine your agent runs on, in the same order, one per line. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / pack / properties / galleryUrls / description
      Previous value: -"Three to five, first one a poster slide. URLs or local paths. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."New value: +"Three to five, first one a poster slide. Public addresses, one per line. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • addedInput schema / properties / pack / properties / logoFile
      Added value: +{
      +  "description": "The same logo as a file on the machine your agent runs on, like /Users/you/product/logo-512.png. This is the one a submission form uploads, because a file picker cannot be handed a link. It stays a path: nothing can display it, here or anywhere else.",
      +  "type": "string"
      +}
    • changedInput schema / properties / pack / properties / logoUrl / description
      Previous value: -"Square, transparent, 512px or better. A URL, or the path to the file on the machine your agent runs on."New value: +"Square, transparent, 512px or better. The public address of the image: forms with a logo URL field take this one, and it is what shows on your dashboard."
  3. Changed1 schema field changed
    • addedInput schema / properties / pack / properties / contactEmail
      Added value: +{
      +  "description": "The address you submit under. Most forms ask for one, and it is where the confirmation link lands, so a mailbox nobody opens stalls the submission. Per product, not per person: a client launch and a side project rarely want the same address, and the one you use here is the one the listing belongs to. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
      +  "type": "string"
      +}
  4. Changed10 schema fields changed
    • changedInput schema / properties / pack / properties / categories / description
      Previous value: -"Three at most, in the platform's own vocabulary where it has one."New value: +"Three at most, in the platform's own vocabulary where it has one. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / firstComment / description
      Previous value: -"Product Hunt and Show HN only, and it matters there."New value: +"Product Hunt and Show HN only, and it matters there. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / galleryUrls / description
      Previous value: -"Three to five, first one a poster slide. URLs or local paths."New value: +"Three to five, first one a poster slide. URLs or local paths. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / longDescription / description
      Previous value: -"Two or three paragraphs, for the forms with room."New value: +"Two or three paragraphs, for the forms with room. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / makerBio / description
      Previous value: -"Asked for by launch platforms, not by plain directories. Max 160 characters."New value: +"Asked for by launch platforms, not by plain directories. Max 160 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / name / description
      Previous value: -"Exactly as it should appear in a listing."New value: +"Exactly as it should appear in a listing. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / oneLiner / description
      Previous value: -"A sentence that works as a meta description. Max 140 characters."New value: +"A sentence that works as a meta description. Max 140 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / pricing / description
      Previous value: -"What it costs, in a sentence a form can take."New value: +"What it costs, in a sentence a form can take. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / shortDescription / description
      Previous value: -"The paragraph most directory forms ask for. Max 260 characters."New value: +"The paragraph most directory forms ask for. Max 260 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • changedInput schema / properties / pack / properties / tagline / description
      Previous value: -"One line, no product name, no full stop. Max 60 characters."New value: +"One line, no product name, no full stop. Max 60 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
  5. First observed

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It explicitly discloses the merge semantics ('Facts and pack are merged into what is there') and the incremental nature, which is critical for an agent to know it won't overwrite unmentioned fields. It does not cover error cases or idempotency, but the core behavior is transparent.

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 a single, concise sentence that front-loads the purpose and key behavior. It avoids verbosity and is easily scanned. However, given the tool's complexity, it is almost too terse—it omits context that might be expected at this level, though it remains structurally efficient.

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

Completeness2/5

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

The tool has complex nested objects and many optional fields, yet the description ignores how to select the project (projectId), what happens if no projectId is given, and how pack relates to facts. With zero annotations and low schema coverage, an agent lacks critical context to call this tool correctly without additional probing.

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

Parameters2/5

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

Schema description coverage is only 17%, yet the top-level description adds no parameter-level explanation. It does not clarify that 'projectId' is optional or how 'pack' and 'facts' relate. The schema itself covers some nested fields, but the description fails to compensate for the low coverage, leaving many parameters underspecified.

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 a specific verb ('Fill in or correct') and resource ('a stored project'), which unambiguously distinguishes it from create_project. It also communicates the incremental merge behavior, leaving no doubt that this tool patches existing data rather than creating new records.

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

Usage Guidelines2/5

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

The description hints at a usage pattern ('as the maker answers') but gives no explicit when-to-use guidance, no alternatives, and no exclusions. It does not mention that create_project should be used for new projects or that qualify_project fills gaps, so an agent must infer when to choose this tool.

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.