Skip to main content
Glama

Prepare a Foliyo

prepare_foliyo
Read-onlyIdempotent

Required before creating a new Foliyo and after each setup answer. Pass all explicit choices already known from the brief/conversation. Returns exactly the next question or a summary to confirm. Ask it and wait; do not build or publish until readyToBuild=true. Never silently fill missing brand, access or recipient choices. Read-only; loads account, plan and optional saved project/guide. Updates use get_page instead.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "prepare_foliyo"
  }
}

Input Schema

NameRequiredDescriptionDefault
choicesNo
projectNoAn EXISTING saved project handle only. Omit for new work unless the user explicitly identifies a saved project; do not put the document title here.
confirmedNoTrue only after approval of the complete summary, or explicit delegation of ALL choices plus a request to publish. A number answering a setup question is not approval.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / choices / additionalProperties
      Removed value: -false
    • removedInput schema / properties / choices / properties / access / $ref
      Removed value: -"#/properties/choices/properties/audience"
    • addedInput schema / properties / choices / properties / access / maxLength
      Added value: +500
    • addedInput schema / properties / choices / properties / access / minLength
      Added value: +1
    • addedInput schema / properties / choices / properties / access / type
      Added value: +"string"
    • removedInput schema / properties / choices / properties / brandSource / $ref
      Removed value: -"#/properties/choices/properties/audience"
    • addedInput schema / properties / choices / properties / brandSource / maxLength
      Added value: +500
    • addedInput schema / properties / choices / properties / brandSource / minLength
      Added value: +1
    • addedInput schema / properties / choices / properties / brandSource / type
      Added value: +"string"
    • removedInput schema / properties / choices / properties / recipientNames / items / $ref
      Removed value: -"#/properties/choices/properties/audience"
    • addedInput schema / properties / choices / properties / recipientNames / items / maxLength
      Added value: +500
    • addedInput schema / properties / choices / properties / recipientNames / items / minLength
      Added value: +1
    • addedInput schema / properties / choices / properties / recipientNames / items / type
      Added value: +"string"
    • removedInput schema / properties / choices / properties / sender / $ref
      Removed value: -"#/properties/choices/properties/audience"
    • addedInput schema / properties / choices / properties / sender / maxLength
      Added value: +500
    • addedInput schema / properties / choices / properties / sender / minLength
      Added value: +1
    • addedInput schema / properties / choices / properties / sender / type
      Added value: +"string"
  2. Changed3 schema fields changed
    • addedInput schema / properties / choices
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "access": {
      +      "$ref": "#/properties/choices/properties/audience",
      +      "description": "The user-selected gate: pin, none, email or domain:example.com. Do not fill an unanswered question with the default PIN."
      +    },
      +    "audience": {
      +      "description": "Audience explicitly identified in the brief or a prior answer.",
      +      "maxLength": 500,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "brand": {
      +      "description": "Only use foliyo when the user chooses or delegates the clean style. A sender name is not a brand choice.",
      +      "enum": [
      +        "mine",
      +        "client",
      +        "project",
      +        "foliyo"
      +      ],
      +      "type": "string"
      +    },
      +    "brandSource": {
      +      "$ref": "#/properties/choices/properties/audience",
      +      "description": "The chosen website URL, supplied assets, or saved design guide. Required for a non-Foliyo brand."
      +    },
      +    "format": {
      +      "enum": [
      +        "web",
      +        "slides-16-9",
      +        "slides-flexible",
      +        "interactive-static"
      +      ],
      +      "type": "string"
      +    },
      +    "recipientNames": {
      +      "description": "Names the user provided for personal links. Emails are optional at publication, never invented.",
      +      "items": {
      +        "$ref": "#/properties/choices/properties/audience"
      +      },
      +      "maxItems": 100,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "recipients": {
      +      "enum": [
      +        "personal",
      +        "shared"
      +      ],
      +      "type": "string"
      +    },
      +    "sender": {
      +      "$ref": "#/properties/choices/properties/audience",
      +      "description": "The actual person/company display name, not just individual/company/other."
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / confirmed
      Added value: +{
      +  "description": "True only after approval of the complete summary, or explicit delegation of ALL choices plus a request to publish. A number answering a setup question is not approval.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / project / description
      Added value: +"An EXISTING saved project handle only. Omit for new work unless the user explicitly identifies a saved project; do not put the document title here."
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotent/non-destructive, and the description adds real context beyond them: it loads account, plan and optional saved project/guide, returns exactly one question or a summary, and forbids inventing missing choices. It stops short of describing what happens to any prior answers or how the session state persists across calls, which would complete the picture.

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?

Front-loaded with the prerequisite and the return contract, and every sentence carries a constraint (wait, don't silently fill, use get_page for updates). Density is high; splitting the return-contract and the no-guessing rule into separate short sentences would read more cleanly.

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?

For a 3-parameter, no-output-schema, stateful setup tool, the description supplies what an agent actually needs: when to call, what comes back, when to stop, and what must not be assumed. Nothing essential to correct invocation is missing.

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 coverage is 67% and the nested 'choices' object is largely documented, but the description adds meaningful policy the schema can't: pass all already-known explicit choices, never silently fill brand/access/recipient values. It references 'readyToBuild' and confirmation state without fully mapping them to the 'confirmed' parameter, leaving a small gap.

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?

States a specific verb and resource ('prepare a new Foliyo') plus its role as a mandatory pre-step that returns the next setup question or a confirmation summary. It also explicitly distinguishes itself from get_page for updates, so an agent can place it among the siblings without opening the schema.

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

Usage Guidelines5/5

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

Gives explicit timing ('required before creating a new Foliyo and after each setup answer'), an explicit stopping rule ('ask it and wait; do not build or publish until readyToBuild=true'), and names the alternative for the other case ('Updates use get_page instead').

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