Skip to main content
Glama
posterly-mcp-server

posterly-mcp-server

by awpthorp

manage_oauth_client

Destructive

Create, update, or delete self-serve OAuth 2.1 + PKCE developer clients for posterly, with confirmation steps for name, redirect URIs, scopes, or deletion previews.

Instructions

Manage self-serve OAuth 2.1 + PKCE developer clients (public clients with no client secret; list them with list_oauth_clients). action=create: client_name, allowed_redirect_uris, and default_scopes; confirm=true only after the user confirms the name, redirect URIs, and scopes. action=update: client_id plus the changed fields; confirm=true after the user confirms the changes. action=delete: client_id; prevents new authorizations (existing access tokens stay revocable as API keys); preview then confirm: call without confirm to get a preview and preview_id, show it, then call again with confirm=true and that preview_id.

Input Schema

NameRequiredDescriptionDefault
actionYescreate, update, or delete.
confirmNocreate and update: true after explicit user confirmation. delete: leave out to get a preview; true only with the preview_id after the user approved it.
homepageNo
client_idNoupdate and delete: the client_id from list_oauth_clients.
is_activeNo
preview_idNodelete: the preview_id from the preview call. Required with confirm: true.
client_nameNocreate (required) or update.
descriptionNo
default_scopesNocreate (required) or update.
allowed_redirect_urisNocreate (required) or update.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.55.1

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, and the description adds genuinely non-obvious behavior: deleting prevents new authorizations while existing access tokens remain revocable as API keys, and the delete path is a two-phase preview/confirm. The only omission is what a create returns (no client secret surfaced in the description, though the 'no client secret' framing implies it), so a small gap remains.

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 text is front-loaded with the resource definition and then organized per action, so scanning by action works well. It is dense and semicolon-heavy, and the parenthetical about access tokens is slightly buried mid-sentence, but no sentence is filler.

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?

For a 10-parameter destructive mutation tool with no output schema, the description supplies the confirm/preview workflow and the per-action required fields, which is the information an agent most needs to avoid a bad call. The gap is the three optional fields (homepage, description, is_active) that neither schema nor description documents.

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?

With 70% schema coverage the schema does much of the work, but the description adds real meaning for action, confirm, client_id, and the create-required trio (client_name, allowed_redirect_uris, default_scopes), plus the constraint that confirm=true is gated on user approval. It does not explain homepage, description, or is_active, which are undocumented in the schema as well, so it stops short of full compensation.

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 names a specific resource class (self-serve OAuth 2.1 + PKCE developer clients) with a defining characteristic (public clients, no client secret) and immediately distinguishes it from the sibling list_oauth_clients. The verb 'manage' is then decomposed into create/update/delete semantics, so an agent knows exactly what surface this tool covers.

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?

Each action is given an explicit required-field set, plus an explicit confirmation protocol (create/update require confirm=true only after user approval; delete requires preview-then-confirm with preview_id). It also routes listing behavior to list_oauth_clients and tells the agent where client_id comes from, so there is essentially no ambiguity about when and how to call it.

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