Posy

io.github.Himanshu-SangshettiPublished by GitHub account Himanshu-Sangshettiv2.0.0Updated Oct 24, 2026

Make and edit a hand-made link-in-bio page: add links, pick a look, publish.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowMedia & Design

Overview

AI-generated overview

Hosted MCP server for Posy that lets an assistant build, restyle and publish a hand-made link-in-bio page from your account.

What you can do
  • Read the current draft, its public URL and suggested next steps
  • Create a page once by claiming a username, or import a whole page from a page file
  • Add one or many links and tiles, then update, reorder or delete them
  • Set the look, palettes, fonts, name and bio, and list the allowed options
  • Publish the draft so the page goes live
When to use it
Useful when you want an assistant to assemble or rework a personal link-in-bio page — adding links, changing its look and publishing — without editing it by hand in the studio.
Requirements
Remote endpoint at posy.page/api/mcp over streamable HTTP, added with OAuth sign-in to a Posy account (no key to copy). A free account covers the basic looks; other looks need Pro at $5 a month or $48 a year. Self-hosted instances use their own URL.
Before you install
The assistant can change your page and publish it, which makes the draft live; review changes before publishing. Publishing may expose your name, bio, links and email on a public page. Paid Pro features cost money. The REST API uses a separate Bearer key from the Agents page.

Installation

In SourceWeft

  1. Open Posy in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Himanshu-Sangshetti%2Fposy/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "posy": {
      "type": "http",
      "url": "https://posy.page/api/mcp"
    }
  }
}

README

[posy: a link in bio that looks like you made it by hand. A girl works at her desk on a floating island in a painted sky, with a kite flying beside her.]

Posy is a link-in-bio page that looks hand-made.

Pick a look, add your links, publish. Edit it yourself, or let your AI do it.
Free and open source. Use it at posy.page or run it yourself.

[CI] [MIT licence] [Version] [Official MCP registry] [Docs] [GitHub stars]

Website · Docs · Connect your AI · Self-host · Contributing

[Add to Cursor] [Install in VS Code] [Install in VS Code Insiders] [Add to Claude] [Install in Goose] [Set up ChatGPT]

[Image]

What is Posy

Posy is a link-in-bio page that looks hand-made. You pick a look, add your links, and publish. Edit it yourself in a calm studio, or ask your AI to do it for you. Your page is one small JSON file you can take anywhere.

[Three steps: 1, pick a look. 2, add your links, and Posy turns each one into the right tile. 3, publish to posy.page/you, or ask your AI to do all three.]

[Image]

The looks

The same links, drawn as a wooden desk with polaroids, a Japanese print, a desktop left open, a watercolour, a two-ink print or a netrunner's screen. Each look has four palettes, and you can switch any time.

[A short tour of the looks on a desktop: Desk, Washi, Lofi, Painted, Cobalt and Night.]

On posy.page, Painted, Desk and Lofi are free, and the others come with Pro. Self-hosted, every look is unlocked. See them live in the looks gallery.

See each look on a desktop
Tiles, palettes and layouts
TileWhat it shows
LinkFavicon, title and an optional preview image
Social29 platforms (X, Instagram, GitHub, LinkedIn, YouTube, TikTok, Bluesky, Threads, Substack…) and email
NoteShort text with bold, italic and links
SectionA heading that starts a new group of tiles
ImageYour photo or artwork, with an optional caption and link
VideoYouTube, loads only when played
MusicSpotify embed
GitHubA repo with live stars and language, refreshed daily

Three layouts: bento (a grid), list (one column) and canvas (place tiles freely). Photos can be printed natural, mono, dither or ascii. On top of each look's palettes: Cream, Lavender, Mint, Sky, Peach, Paper, Blush, Sage, Midnight, Mocha, Dusk and Ocean, any accent colour, and font pairs.

[Image]

Make your page

Claim your name at posy.page. Paste a link anywhere to add a tile, drag to arrange, and press Publish. Your page is live in a minute.

Just looking? Open posy.page/new, paste a few links and see your page before you sign up.

Free, Pro and self-hosted
posy.page Freeposy.page ProSelf-hosted
Tiles, editor, API, MCP, CLIAllAllAll
LooksPainted, Desk, LofiAllAll
Your own domainNoYes, HTTPS set up for youYes, point it at your server
AnalyticsBasic12 months + CSV12 months + CSV
"Made with Posy" footerShownHide itHide it
Setup and upkeepNoneNoneYou

Pro is $5 a month or $48 a year. Your page works the same everywhere: Settings → Download page.json on one, Import page.json on the other.

[Image]

Connect your AI

Posy has a hosted MCP server, so your AI can make and edit your page. You sign in with your Posy account; there is no key to copy. Everything it does lands in your draft, and nothing goes live until you, or it, publish.

text
https://posy.page/api/mcp

One click

[Add to Cursor] [Install in VS Code] [Install in VS Code Insiders] [Add to Claude] [Install in Goose]

A few steps

[Set up ChatGPT] [Set up Claude Code] [Set up Codex]

bash
claude mcp add --transport http posy https://posy.page/api/mcp   # Claude Code, then /mcp → Authenticatecodex mcp add posy --url https://posy.page/api/mcp               # Codex

In ChatGPT, open Plugins, press +, choose Add custom MCP server, paste the URL and pick OAuth. On your own server, use https://YOUR-POSY/api/mcp. Posy is in the official MCP registry as io.github.Himanshu-Sangshetti/posy.

No connector? Hand it a page file

Any chat can write your page as one small JSON file. Paste it at posy.page/new and it becomes a page.

[A JSON page file on the left, with name Mira Sol, look washi and a few links. An arrow points to the same page rendered in the Washi look on a phone.]

Or skip the file: an AI can hand you a link that opens a live preview, no sign-in needed.

text
https://posy.page/new?name=Mira%20Sol&look=washi&links=https://github.com/mira,[email protected]
The page file, MCP tools, REST, llms.txt and the CLI
json
{  "posy": 1,  "name": "Mira Sol",  "bio": "Writer and editor.",  "location": "Lisbon",  "look": "washi",  "links": [    "https://substack.com/@mira",    "https://x.com/mira",    "[email protected]",    { "heading": "Writing" },    "https://mira.so/letters"  ]}

Every field: the page file.

ToolWhat it does
get_pageYour draft, public URL, and what to do next
create_pageClaim a username and create your page (once)
import_pageLoad a whole page from a page file
add_tileAdd one link, or many at once. Posy picks the right tile
update_tile, move_tile, remove_tileChange, reorder or delete a tile
set_theme, set_profileLook, colours, fonts, name and bio
publishMake the draft live
list_optionsAllowed looks, palettes, fonts and sizes
SurfaceWhere
REST/api/v1/page with a Bearer key from the Agents page. Spec: /openapi.json, guide: API reference
Public JSON/api/v1/public/<username> for any published page
llms.txtposy.page/llms.txt for the app, /<username>/llms.txt for any page
Schemasschema/page.schema.json and /schema/brief.schema.json
PluginClaude Code and Cursor skills in plugin/
bash
export POSY_URL=https://posy.page POSY_API_KEY=posy_...npm run posy -- add https://github.com/owner/repo --size wnpm run posy -- theme --preset moonlit --layout listnpm run posy -- publish

Full guide: docs/ai-agents.md. Working on this repo with a coding agent? Read AGENTS.md.

[Image]

Run it yourself

[Deploy with Vercel]

Or with Docker:

bash
git clone https://github.com/Himanshu-Sangshetti/posy.git && cd posydocker build -t posy . && docker run -p 3000:3000 -v posy-data:/data \  -e NEXT_PUBLIC_SITE_URL=http://localhost:3000 -e BETTER_AUTH_URL=http://localhost:3000 \  -e BETTER_AUTH_SECRET=$(openssl rand -base64 32) posy

Open http://localhost:3000 and sign up: the first account owns the instance, and every look is unlocked. Domains, backups and every setting: self-hosting guide · .env.example

Built with

Next.js 16 · React 19 · TypeScript · Tailwind CSS 4 · Motion · dnd-kit · shadcn/ui · Better Auth · Drizzle + libSQL · Zod · MCP

One schema, src/lib/schema.ts, describes a page. It drives the JSON Schema, the REST API, the MCP tools and the editor, so they never drift apart.

How the pieces fit
mermaid
flowchart LR  studio["Studio<br/>(browser)"] --> app  agent["AI agents"] -- "MCP /api/mcp" --> app  scripts["Scripts, CLI"] -- "REST /api/v1" --> app  app["Next.js app<br/>page schema in Zod"] --> db[("SQLite or Turso<br/>(Drizzle + libSQL)")]  app --> files[("Uploads<br/>data dir or Vercel Blob")]  app --> page["/username<br/>+ llms.txt + public JSON"]
WhereWhat
src/components/page/styles/The looks, one .tsx + .css each
src/components/studio/The editor
src/app/api/REST (v1), MCP (mcp), auth and uploads
src/lib/Schema, looks, palettes, fonts, link detection

From source: npm install && npm run dev (Node 22 or 24). Your local data lives in ~/.posy.

Contributing

Issues and pull requests are welcome. Start with CONTRIBUTING.md.

  • Add a look. A look is a .tsx and a .css file plus a lab page to check it in every palette. The steps: Adding a look.
  • Pick up an issue. Good first issues and look ideas are a nice place to begin.
  • Before a PR: npm run check, npm test, and npm run e2e for UI changes.

Community, security and licence

  • Questions and ideas: issues. Please follow the Code of Conduct.
  • Found a vulnerability? See SECURITY.md and report it privately.
  • Posy is MIT licensed. The art that ships with the looks is public domain, CC0, or made for Posy; every file and its source is in public/looks/CREDITS.md. Some of it was generated with Krea 2, whose community licence allows commercial use only while your company makes under US$1M a year. Read the note in the credits file first.
  • Brand files and colours: BRAND.md.

[A painted meadow of wildflowers]

Made by hand, with a cat asleep on the desk.

Source: README.md at commit 253d020

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v2.0.0LatestOct 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts