Skip to main content
The server is Streamable HTTP at https://posy.page/api/mcp (or https://YOUR-POSY/api/mcp on your own server). Sign in with OAuth, or send an API key as Authorization: Bearer posy_.... See Connect an AI app. All edits go to your draft. Only publish makes anything public. Start every session with get_page.
Descriptions below come from the server (src/app/api/mcp/route.ts). npm run docs:sync fails if a tool is added there without being listed here.

Read

tool
The current draft (profile, theme, tiles with ids), public URL, version, whether there are unpublished changes, and a next hint. Read-only. Inputs: none.
tool
Allowed values for looks (with a note and the palettes each offers), themes, fonts, backgrounds, tile styles, sizes, colours and social platforms. Read-only. Inputs: none.

Create

tool
Claim a username and create the page (one per account). Do this once, when get_page says there is no page.
tool
Load a whole page at once from a page file (a brief or the full page JSON). Creates the page if there is none (pass username). With an existing page it replaces the draft only when replace is true. Marked destructive.

Tiles

tool
Add tiles. Pass inputs for several, input for one, or a full tile object. Posy auto-detects links, emails, owner/repo and notes.
tool
Change fields of a tile, for example {"size":"l"}, {"title":"New title"}, {"color":"mint"}, {"text":"..."}. Crop a tile’s picture with {"focus":{"x":30,"y":20},"zoom":1.6} (focus 0 to 100 is the point to keep in view, zoom 1 to 3).
tool
Move a tile to a 0-based position in the tile list.
tool
Delete a tile by id. Marked destructive. Input: id (string, required).

Look and profile

tool
Change colours, fonts, layout and other theme settings. Only pass what should change.
tool
Change name, bio, avatar URL or location.

Go live

tool
Make the draft live at the public URL. Inputs: none.

Typical session

1

Look

get_page. If there is no page, ask for a username.
2

Create

create_page with empty: true, or import_page with a whole brief.
3

Fill

add_tile with inputs[], then set_theme and set_profile.
4

Publish

publish when the user is happy, then share the URL.