Blueskyhosted MCP server
Bluesky MCP server
Give Claude, ChatGPT, Claude Code or any MCP host a Bluesky publishing arm: it writes, designs, schedules and publishes Bluesky posts through your Shapeless account, and you approve. Bluesky allows 300 characters and 4 images, 1 video up to 3 min; we publish text and images here; video and PDF documents we do not deliver to Bluesky yet.
https://shapelessai.com/mcpAdd that URL to your host. It opens a Shapeless tab to sign in and allow - OAuth 2.1 with dynamic client registration, no API key. Your Bluesky account is connected to Shapeless once, under Accounts, through Bluesky's own sign-in; the host never touches it.
Not a developer?
Use it from
- ClaudeSettings → Connectors → Add custom connector → paste the URL → Connect.
- ChatGPTDeveloper mode on (Settings → Security and login) → chatgpt.com/plugins → + → paste the URL, OAuth.
- Claude Code
claude mcp add --transport http --scope user shapeless https://shapelessai.com/mcp, then /mcp → Authenticate. - CursorOne-click install link, or add the URL to ~/.cursor/mcp.json → Needs login → sign in.
- Codex
codex mcp add shapeless --url https://shapelessai.com/mcp, thencodex mcp login shapeless. - VS CodeOne-click install link, or MCP: Add Server → HTTP → paste the URL → start it and sign in.
- Gemini CLI
gemini mcp add --transport http shapeless https://shapelessai.com/mcp, then /mcp auth shapeless.
What to say
Plain words, in the host's chat. Drafts land in your Shapeless queue for approval unless you say otherwise, and the host asks you before any tool that publishes or spends.
Post this to Bluesky, under 300 characters, with the screenshot.Draft a Bluesky thread about our open-source release, four posts, and schedule it for 9am tomorrow.What have we posted to Bluesky this month?
Bluesky allows 300 characters per post and 4 images, 1 video up to 3 min, from Bluesky's own documentation as read on 2026-07-14. Shapeless enforces that table before a draft is queued. The full table is on the Bluesky spec page; check a draft yourself with the free Bluesky character counter.
The tools
As the server publishes them. Read tools run freely; anything that publishes, spends or overwrites is flagged destructive so the host asks you first.
| Tool | What it does | Runs |
|---|---|---|
| me | Who this credential belongs to: email, plan, credit balance. | reads |
| connections_list | Connected social accounts (identity only, no tokens). | reads |
| jobs_create | Start a durable job from a goal, optionally with files attached. The run keeps going server-side; returns the job id and its web url to poll or continue. | drafts |
| jobs_list | List jobs with liveness and the web url of each, 200 per page, newest first. A non-null nextCursor means older jobs exist: pass it back as before. | reads |
| jobs_get | One job in full: transcript, running/idle status, outputs (posts with queue state, media) and its web url. Use jobs_brief when you only need enough to reply. | reads |
| jobs_brief | Compact context for continuing a conversation: the last messages clipped, an artifact inventory, post statuses, and the web url. Use jobs_get for the full transcript, jobs_continue to reply. | reads |
| jobs_tail | Watch a job's run: replays its events from the cursor, then follows live until the run ends, 60 seconds pass, or 200 events. Returns {live, cursor, events} - resume with that cursor. {live: false} means no run stream to attach to; the job may still have finished work, so read jobs_get. | reads |
| jobs_continue | Send another message to a job, optionally with files attached - also the way to resume a stuck or failed run with full history. | drafts |
| jobs_stop | Stop a running job. | asks you first |
| posts_list | The post queue: proposed drafts, scheduled posts, published history. | reads |
| posts_get | One post's live state. | reads |
| posts_approve | PUBLISHES CONTENT: approving moves proposals to the schedule, and they will go out. | asks you first |
| posts_dismiss | Dismiss proposed posts - nothing goes out. | asks you first |
| posts_publish | PUBLISHES CONTENT NOW: pushes a queued post to the platform immediately. | asks you first |
| characters_list | The account's actors: who they are, what their voice is, and which parts are locked. voiceDescription is the casting direction a designed voice was written from - read it before designing another one, and reuse the actor that already fits. | reads |
| characters_voice | SPENDS CREDIT: gives an actor a voice. description designs one from casting direction (kept on the character, so later runs can reuse the actor); sampleMediaKey clones a real voice and requires consent: true - the user's own attestation that they hold the rights. Returns the voice id, a preview clip and what it cost. | asks you first |
| brain_tree | Brand Memory's file list with the completion ring. | reads |
| brain_read | Read one Brand Memory file. | reads |
| brain_write | Write one Brand Memory file (.md paths only) - the agent grounds future posts in it. | asks you first |
| assets_list | The media library: brand uploads and generated media. | reads |
| agents_list | The agent roster (the API calls them strategies). | reads |
| agents_save | Create an agent (no id) or edit one (with id). Setting autoPublishPosts arms publishing without human approval and needs the publish scope; everything else needs write. | asks you first |
| agents_wake | PUBLISH-SCOPED: wake an agent now; it plans and proposes (or with auto-publish, posts) immediately. Returns the conversation it woke into and its web url. | asks you first |
Questions
- What is a Bluesky MCP server?
- A server that speaks the Model Context Protocol and exposes Bluesky publishing as tools an AI host can call. Ours is hosted at https://shapelessai.com/mcp: the host connects over OAuth, and its tools start jobs that research, write, design and render for Bluesky, queue the drafts for your approval, and publish on schedule through the Bluesky account you connected to Shapeless.
- Do I need a Bluesky developer app or API key?
- No. You connect your Bluesky account to Shapeless once, under Accounts, through Bluesky's own sign-in. Shapeless holds that connection; the host never sees a Bluesky token, and you never paste a key into the host either - it signs in to Shapeless with OAuth.
- Which hosts can use it?
- Claude, ChatGPT, Claude Code, Cursor, Codex, VS Code and Gemini CLI, and any other host that supports remote MCP servers with OAuth. Each has a page with the exact steps; the URL is the same everywhere.
- Will it post to Bluesky without asking me?
- Not unless you set a standing agent to auto-publish. A job proposes drafts and waits for your approval in Shapeless or in the chat; the tools that approve, publish or spend are flagged, so the host asks you before running one.
- Can it make the Bluesky media, not just the words?
- Yes - that is the point. We publish text and images here; video and PDF documents we do not deliver to Bluesky yet. Bluesky takes one video up to 3 min. You brief it in the chat; Shapeless designs the images or renders the narrated video with your actor and captions, and hands the draft back for approval.
- What does Bluesky allow in a post?
- 300 characters and 4 images, 1 video up to 3 min, per Bluesky's own documentation as we last read it on 2026-07-14. Shapeless enforces the same table its publishing engine does, so a draft that breaks a limit is fixed before it is queued.
