Skip to main content
Glama

Postkey: Instagram DM Automation and Comment-to-DM

Postkey guide

postkey_guide
Read-onlyIdempotent

Postkey: Reads 1 to 3 topics of the Postkey guide, as markdown: how the parts work, step-by-step recipes, every plan's limits, the channels, approvals and the safety rules. Use it for how-to and rule questions, and after a refusal: most refusals name their guide_topic. For this profile's own state (what is connected, usage, what waits) use postkey_get_started instead. Changes nothing.

Input Schema

NameRequiredDescriptionDefault
topicsYes1 to 3 topics. index: every topic in one line. recipes: step by step for common tasks and for each refusal. scheduling: now, at, queue and statuses. platforms: uploads, video lengths, each platform's settings. plans: every plan's limits. glossary: statuses, refusal codes, limit keys. The rest are named for what they cover.

Output Schema

NameRequiredDescriptionDefault
okYesfalse: refused (isError; code, message, guide_topic, url); no change.
relatedNoTopics worth reading next.
versionNoThe guide's version.
sectionsNoOne per topic asked: topic, markdown.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / ok / description
      Previous value: -"false: refused (isError true; code, message, guide_topic, url), nothing changed."New value: +"false: refused (isError; code, message, guide_topic, url); no change."
  2. Changed1 schema field changed
    • changedInput schema / properties / topics / items / enum
      Previous value: -[
      -  "index",
      -  "concepts",
      -  "automations",
      -  "templates",
      -  "scheduling",
      -  "platforms",
      -  "inbox",
      -  "ai",
      -  "sequences",
      -  "editor",
      -  "approvals",
      -  "plans",
      -  "channels",
      -  "safety",
      -  "recipes",
      -  "glossary"
      -]New value: +[
      +  "index",
      +  "concepts",
      +  "automations",
      +  "templates",
      +  "scheduling",
      +  "platforms",
      +  "inbox",
      +  "ai",
      +  "sequences",
      +  "editor",
      +  "craft",
      +  "moments",
      +  "sound",
      +  "broll",
      +  "render",
      +  "approvals",
      +  "plans",
      +  "channels",
      +  "safety",
      +  "recipes",
      +  "glossary"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / topics / items / enum
      Previous value: -[
      -  "index",
      -  "concepts",
      -  "automations",
      -  "templates",
      -  "scheduling",
      -  "platforms",
      -  "inbox",
      -  "ai",
      -  "sequences",
      -  "approvals",
      -  "plans",
      -  "channels",
      -  "safety",
      -  "recipes",
      -  "glossary"
      -]New value: +[
      +  "index",
      +  "concepts",
      +  "automations",
      +  "templates",
      +  "scheduling",
      +  "platforms",
      +  "inbox",
      +  "ai",
      +  "sequences",
      +  "editor",
      +  "approvals",
      +  "plans",
      +  "channels",
      +  "safety",
      +  "recipes",
      +  "glossary"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / topics / description
      Previous value: -"The topics to read."New value: +"1 to 3 topics. index: every topic in one line. recipes: step by step for common tasks and for each refusal. scheduling: now, at, queue and statuses. platforms: uploads, video lengths, each platform's settings. plans: every plan's limits. glossary: statuses, refusal codes, limit keys. The rest are named for what they cover."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "ok": {
      +      "description": "false: refused (isError true; code, message, guide_topic, url), nothing changed.",
      +      "type": "boolean"
      +    },
      +    "related": {
      +      "description": "Topics worth reading next.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "sections": {
      +      "description": "One per topic asked: topic, markdown.",
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "version": {
      +      "description": "The guide's version.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "ok"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered; 'Changes nothing' reinforces rather than adds. The genuinely additive detail is the refusal-recovery behavior — refusals name a guide_topic to read next — which is not expressible in any annotation. Return format is described but an output schema already exists, so that portion is partly redundant.

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?

Purpose is front-loaded, then usage, then the alternative, then the safety note — a sensible order. The middle sentence carries many parallel clauses (parts, recipes, limits, channels, approvals, safety) and could be trimmed, but no sentence is filler.

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 read-only retrieval tool with one enum-typed array parameter, full schema coverage and an output schema, the description supplies everything needed to choose and call it: scope, cardinality, content map, recovery path after refusals, and the sibling to prefer for state queries.

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 the enum items are individually documented in the schema, so the description's mention of 1-to-3 topics and the topic families adds little beyond it. It correctly restates the cardinality bound and hints at which topics answer which questions, but the schema already carries the per-value meaning.

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 — reads 1 to 3 topics of the Postkey guide — plus the output form (markdown) and the subject areas covered (recipes, plan limits, channels, approvals, safety). An agent can distinguish it from postkey_get_started purely from the description, which names that sibling and its different scope.

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 when-to-use guidance ('how-to and rule questions') plus a concrete trigger (after a refusal, since refusals name their guide_topic) and an explicit when-not with the alternative tool named for profile-state questions. The routing decision is fully specified.

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