Skip to main content
Glama

Get page

get_page
Read-onlyIdempotent

One Content Studio page: its brief (goal, reader, angle), target questions, outline, the page as Markdown (in parts when long), the latest conversation with Cleotic's page agent including any question it is waiting on, its pending suggestions and authority notes, and results once live. Read it after create_page and message_page; to find pages use list_pages.

Input Schema

NameRequiredDescriptionDefault
brandYesBrand or study: its ID from list_brands, or its name (exact or a unique prefix).
cursorNomarkdown_next_cursor from the previous call, for the next part of a long page.
page_idYesPage ID from list_pages.

Output Schema

NameRequiredDescriptionDefault
dataYes
generated_atYesRFC 3339 time the response was made.
schema_versionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed40 schema fields changed
    • changedInput schema / properties / cursor / description
      Previous value: -"markdown_next_cursor from the previous call, for the next part of a long draft."New value: +"markdown_next_cursor from the previous call, for the next part of a long page."
    • removedInput schema / properties / include_preflight
      Removed value: -{
      -  "description": "Also run the publish preflight checks, which fetch the live page.",
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / data / properties / agent_error
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / agent_state
      Added value: +{
      +  "description": "idle, working (poll get_page), or failed (agent_error says why).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / angle
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / authority_notes
      Added value: +{
      +  "description": "Claims with no confirmed fact or site passage behind them: suggestions to add a source, never blockers.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "message": {
      +        "type": "string"
      +      },
      +      "quote": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "quote",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / content_type
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / properties / conversation
      Added value: +{
      +  "description": "The latest messages with the page agent, oldest first.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "at": {
      +        "type": "string"
      +      },
      +      "from": {
      +        "description": "user, a teammate's name, or cleotic.",
      +        "type": "string"
      +      },
      +      "text": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "from",
      +      "text",
      +      "at"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / draft
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Set once drafting starts.",
      -  "properties": {
      -    "busy": {
      -      "description": "Sections are still being written; poll get_page.",
      -      "type": "boolean"
      -    },
      -    "failing_checks": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "id": {
      -            "type": "string"
      -          },
      -          "label": {
      -            "type": "string"
      -          },
      -          "reason": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "label",
      -          "reason"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "grade": {
      -      "description": "The draft's quality grade, A-F; empty until graded.",
      -      "type": "string"
      -    },
      -    "status": {
      -      "type": "string"
      -    },
      -    "summary": {
      -      "type": "string"
      -    },
      -    "unsupported_claims": {
      -      "description": "Sentences with no evidence behind them.",
      -      "type": "integer"
      -    },
      -    "version": {
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "status",
      -    "version",
      -    "busy",
      -    "grade",
      -    "summary",
      -    "unsupported_claims",
      -    "failing_checks"
      -  ],
      -  "type": [
      -    "null",
      -    "object"
      -  ]
      -}
    • addedOutput schema / properties / data / properties / edit_mode
      Added value: +{
      +  "description": "direct: the agent edits the page. suggest: its changes wait as suggestions.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / goal
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / interview
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "questions": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "answer": {
      -            "type": "string"
      -          },
      -          "kind": {
      -            "description": "number, process, or example.",
      -            "type": "string"
      -          },
      -          "question": {
      -            "type": "string"
      -          },
      -          "question_id": {
      -            "description": "Pass to answer_page_questions.",
      -            "type": "string"
      -          },
      -          "status": {
      -            "description": "pending, answered, or skipped.",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "question_id",
      -          "kind",
      -          "question",
      -          "status",
      -          "answer"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "status": {
      -      "description": "generating_questions (poll get_page), waiting_for_answers, or done.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "status",
      -    "questions"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / data / properties / live_at
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / live_url
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / data / properties / markdown / description
      Previous value: -"The draft as Markdown, or one part of it when markdown_next_cursor is set."New value: +"The page as Markdown, or one part of it when markdown_next_cursor is set."
    • addedOutput schema / properties / data / properties / outline
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "heading": {
      +        "type": "string"
      +      },
      +      "note": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "heading",
      +      "note"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / plan
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Set once the plan is ready.",
      -  "properties": {
      -    "angle": {
      -      "type": "string"
      -    },
      -    "format": {
      -      "type": "string"
      -    },
      -    "sections": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "error": {
      -            "type": "string"
      -          },
      -          "heading": {
      -            "type": "string"
      -          },
      -          "section_id": {
      -            "description": "Pass to redraft_page_section.",
      -            "type": "string"
      -          },
      -          "shape": {
      -            "description": "prose, table, or list.",
      -            "type": "string"
      -          },
      -          "status": {
      -            "description": "pending, drafting, drafted, or failed.",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "section_id",
      -          "heading",
      -          "shape",
      -          "status",
      -          "error"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "angle",
      -    "format",
      -    "sections"
      -  ],
      -  "type": [
      -    "null",
      -    "object"
      -  ]
      -}
    • removedOutput schema / properties / data / properties / plan_status
      Removed value: -{
      -  "description": "none, interview (answer its questions), planning (the plan is being built), or ready (draft_page can write it).",
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / properties / poll_after_seconds / description
      Previous value: -"While questions, the plan or the draft are being written, how long to wait before reading again; 0 otherwise."New value: +"While the agent is working, how long to wait before reading again; 0 otherwise."
    • removedOutput schema / properties / data / properties / preflight
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Set when include_preflight was true.",
      -  "properties": {
      -    "checks": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "id": {
      -            "type": "string"
      -          },
      -          "label": {
      -            "type": "string"
      -          },
      -          "reason": {
      -            "type": "string"
      -          },
      -          "status": {
      -            "description": "pass, fail, or pending.",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "label",
      -          "status",
      -          "reason"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "failing": {
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "failing",
      -    "checks"
      -  ],
      -  "type": [
      -    "null",
      -    "object"
      -  ]
      -}
    • removedOutput schema / properties / data / properties / question
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / properties / reader
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / results / properties / answers
      Removed value: -{
      -  "type": "integer"
      -}
    • removedOutput schema / properties / data / properties / results / properties / cited
      Removed value: -{
      -  "type": "integer"
      -}
    • addedOutput schema / properties / data / properties / results / properties / crawlers
      Added value: +{
      +  "description": "AI crawlers that have read the page since it went live.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "crawler": {
      +        "type": "string"
      +      },
      +      "first_at": {
      +        "type": "string"
      +      },
      +      "reads": {
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "crawler",
      +      "first_at",
      +      "reads"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / results / properties / day
      Removed value: -{
      -  "description": "Days since it went live.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / data / properties / results / properties / first_citation_at
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / results / properties / live_at
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / results / properties / named
      Removed value: -{
      -  "type": "integer"
      -}
    • removedOutput schema / properties / data / properties / results / properties / refresh_due_at
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / properties / results / properties / targets
      Added value: +{
      +  "description": "For each target question: answers in the 4 weeks before it went live and since.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "before": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "answers": {
      +            "type": "integer"
      +          },
      +          "cited": {
      +            "description": "Answers that cite the page.",
      +            "type": "integer"
      +          },
      +          "named": {
      +            "description": "Answers that name the brand.",
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "answers",
      +          "named",
      +          "cited"
      +        ],
      +        "type": "object"
      +      },
      +      "question": {
      +        "type": "string"
      +      },
      +      "since": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "answers": {
      +            "type": "integer"
      +          },
      +          "cited": {
      +            "description": "Answers that cite the page.",
      +            "type": "integer"
      +          },
      +          "named": {
      +            "description": "Answers that name the brand.",
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "answers",
      +          "named",
      +          "cited"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "question",
      +      "before",
      +      "since"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / results / properties / url
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / properties / results / required
      Previous value: -[
      -  "url",
      -  "live_at",
      -  "day",
      -  "answers",
      -  "named",
      -  "cited",
      -  "first_citation_at",
      -  "refresh_due_at"
      -]New value: +[
      +  "targets",
      +  "crawlers"
      +]
    • changedOutput schema / properties / data / properties / status / description
      Previous value: -"draft, generating, generated, failed, published, or archived."New value: +"drafting, sent, live (locked until revise_page), or revising."
    • addedOutput schema / properties / data / properties / suggestions
      Added value: +{
      +  "description": "Edits the agent proposed in suggest mode, waiting for the team in the app.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "find": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "type": "string"
      +      },
      +      "replace": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "find",
      +      "replace",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / data / properties / target_questions
      Added value: +{
      +  "description": "Tracked questions the page answers; its results count answers to these.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / tone
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / properties / version
      Added value: +{
      +  "description": "Pass as base_version to edit_page.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / data / properties / waiting_on_you
      Added value: +{
      +  "description": "The agent's open question, when its last turn ended asking one; answer it with message_page.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / data / required
      Previous value: -[
      -  "brand",
      -  "id",
      -  "title",
      -  "question",
      -  "content_type",
      -  "status",
      -  "plan_status",
      -  "tone",
      -  "interview",
      -  "plan",
      -  "draft",
      -  "markdown",
      -  "markdown_next_cursor",
      -  "results",
      -  "preflight",
      -  "app_url",
      -  "poll_after_seconds"
      -]New value: +[
      +  "brand",
      +  "id",
      +  "title",
      +  "status",
      +  "agent_state",
      +  "agent_error",
      +  "version",
      +  "edit_mode",
      +  "goal",
      +  "reader",
      +  "angle",
      +  "target_questions",
      +  "outline",
      +  "markdown",
      +  "markdown_next_cursor",
      +  "waiting_on_you",
      +  "conversation",
      +  "suggestions",
      +  "authority_notes",
      +  "live_url",
      +  "live_at",
      +  "results",
      +  "app_url",
      +  "poll_after_seconds"
      +]
  2. Changed5 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / brand / minLength
      Added value: +1
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "markdown_next_cursor from the previous call, for the next part of a long draft.",
      +  "type": "string"
      +}
    • addedInput schema / properties / page_id / minLength
      Added value: +1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "app_url": {
      +          "type": "string"
      +        },
      +        "brand": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "id": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "description": "The brand's website, or empty when none is set.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "url"
      +          ],
      +          "type": "object"
      +        },
      +        "content_type": {
      +          "type": "string"
      +        },
      +        "draft": {
      +          "additionalProperties": false,
      +          "description": "Set once drafting starts.",
      +          "properties": {
      +            "busy": {
      +              "description": "Sections are still being written; poll get_page.",
      +              "type": "boolean"
      +            },
      +            "failing_checks": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "id": {
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "type": "string"
      +                  },
      +                  "reason": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "id",
      +                  "label",
      +                  "reason"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "grade": {
      +              "description": "The draft's quality grade, A-F; empty until graded.",
      +              "type": "string"
      +            },
      +            "status": {
      +              "type": "string"
      +            },
      +            "summary": {
      +              "type": "string"
      +            },
      +            "unsupported_claims": {
      +              "description": "Sentences with no evidence behind them.",
      +              "type": "integer"
      +            },
      +            "version": {
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "status",
      +            "version",
      +            "busy",
      +            "grade",
      +            "summary",
      +            "unsupported_claims",
      +            "failing_checks"
      +          ],
      +          "type": [
      +            "null",
      +            "object"
      +          ]
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "interview": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "questions": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "answer": {
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "description": "number, process, or example.",
      +                    "type": "string"
      +                  },
      +                  "question": {
      +                    "type": "string"
      +                  },
      +                  "question_id": {
      +                    "description": "Pass to answer_page_questions.",
      +                    "type": "string"
      +                  },
      +                  "status": {
      +                    "description": "pending, answered, or skipped.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "question_id",
      +                  "kind",
      +                  "question",
      +                  "status",
      +                  "answer"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "status": {
      +              "description": "generating_questions (poll get_page), waiting_for_answers, or done.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "status",
      +            "questions"
      +          ],
      +          "type": "object"
      +        },
      +        "markdown": {
      +          "description": "The draft as Markdown, or one part of it when markdown_next_cursor is set.",
      +          "type": "string"
      +        },
      +        "markdown_next_cursor": {
      +          "description": "Pass as cursor for the next part of the Markdown; empty when complete.",
      +          "type": "string"
      +        },
      +        "plan": {
      +          "additionalProperties": false,
      +          "description": "Set once the plan is ready.",
      +          "properties": {
      +            "angle": {
      +              "type": "string"
      +            },
      +            "format": {
      +              "type": "string"
      +            },
      +            "sections": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "error": {
      +                    "type": "string"
      +                  },
      +                  "heading": {
      +                    "type": "string"
      +                  },
      +                  "section_id": {
      +                    "description": "Pass to redraft_page_section.",
      +                    "type": "string"
      +                  },
      +                  "shape": {
      +                    "description": "prose, table, or list.",
      +                    "type": "string"
      +                  },
      +                  "status": {
      +                    "description": "pending, drafting, drafted, or failed.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "section_id",
      +                  "heading",
      +                  "shape",
      +                  "status",
      +                  "error"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "required": [
      +            "angle",
      +            "format",
      +            "sections"
      +          ],
      +          "type": [
      +            "null",
      +            "object"
      +          ]
      +        },
      +        "plan_status": {
      +          "description": "none, interview (answer its questions), planning (the plan is being built), or ready (draft_page can write it).",
      +          "type": "string"
      +        },
      +        "poll_after_seconds": {
      +          "description": "While questions, the plan or the draft are being written, how long to wait before reading again; 0 otherwise.",
      +          "type": "integer"
      +        },
      +        "preflight": {
      +          "additionalProperties": false,
      +          "description": "Set when include_preflight was true.",
      +          "properties": {
      +            "checks": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "id": {
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "type": "string"
      +                  },
      +                  "reason": {
      +                    "type": "string"
      +                  },
      +                  "status": {
      +                    "description": "pass, fail, or pending.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "id",
      +                  "label",
      +                  "status",
      +                  "reason"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "failing": {
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "failing",
      +            "checks"
      +          ],
      +          "type": [
      +            "null",
      +            "object"
      +          ]
      +        },
      +        "question": {
      +          "type": "string"
      +        },
      +        "results": {
      +          "additionalProperties": false,
      +          "description": "Set once the page is live.",
      +          "properties": {
      +            "answers": {
      +              "type": "integer"
      +            },
      +            "cited": {
      +              "type": "integer"
      +            },
      +            "day": {
      +              "description": "Days since it went live.",
      +              "type": "integer"
      +            },
      +            "first_citation_at": {
      +              "type": "string"
      +            },
      +            "live_at": {
      +              "type": "string"
      +            },
      +            "named": {
      +              "type": "integer"
      +            },
      +            "refresh_due_at": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "url",
      +            "live_at",
      +            "day",
      +            "answers",
      +            "named",
      +            "cited",
      +            "first_citation_at",
      +            "refresh_due_at"
      +          ],
      +          "type": [
      +            "null",
      +            "object"
      +          ]
      +        },
      +        "status": {
      +          "description": "draft, generating, generated, failed, published, or archived.",
      +          "type": "string"
      +        },
      +        "title": {
      +          "type": "string"
      +        },
      +        "tone": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "brand",
      +        "id",
      +        "title",
      +        "question",
      +        "content_type",
      +        "status",
      +        "plan_status",
      +        "tone",
      +        "interview",
      +        "plan",
      +        "draft",
      +        "markdown",
      +        "markdown_next_cursor",
      +        "results",
      +        "preflight",
      +        "app_url",
      +        "poll_after_seconds"
      +      ],
      +      "type": "object"
      +    },
      +    "generated_at": {
      +      "description": "RFC 3339 time the response was made.",
      +      "type": "string"
      +    },
      +    "schema_version": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "schema_version",
      +    "generated_at",
      +    "data"
      +  ],
      +  "type": "object"
      +}
  3. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds value beyond that by disclosing pagination of long Markdown via an internal cursor and by noting that the latest conversation may contain a question the page agent is waiting on, which is operationally useful behavioral context not present in annotations.

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 first sentence is a long enumeration of returned contents but is efficiently packed and front-loads the resource. The second sentence cleanly handles sequencing. It is a single dense sentence plus one routing sentence, which is reasonably sized for a rich read tool, though the first sentence borders on a laundry list.

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?

With an output schema present, the description is not required to explain return value shape. It still complements the schema by summarizing what is inside a page and by explaining the cursor-driven pagination flow (markdown_next_cursor from the previous call), which is exactly the contextual information an agent needs to invoke this correctly. Nothing critical appears missing.

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 has a thorough description in the schema (brand ID or name, cursor for next Markdown part, page_id origin). The description does not add per-parameter detail the schema lacks. Baseline 3 is appropriate when the schema does the heavy lifting.

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 (get/read) and resource (one Content Studio page), and enumerates the rich contents returned (brief, questions, outline, Markdown, conversation, suggestions, live results). It explicitly names siblings create_page, message_page and list_pages, so an agent can distinguish this retrieval tool from creation and listing tools.

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?

Provides clear timing guidance: read it after create_page and message_page, and use list_pages to find pages. This signals when this tool is the right pick versus discovery via list_pages. It does not, however, contrast against the other page-reading siblings like get_doc or edit_page, but the population of sibling alternatives for a single-page fetch is limited.

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