Ghost in the Box MCP Server
OfficialProvides source-linked briefs and draft files for Facebook; currently supports brief formats rather than a built-in publishing adapter.
Provides session registry, own-writing import, inbox reading, comments, carousel drafts, exact-job publishing with provider IDs and receipts, and MCP tools for Instagram.
Provides an optional SDK-backed MCP connector for Substack with persistent cookies, setup status, and publication receipts.
Provides posts and reply readers, inbox triage, drafts, cadence management, and publishing adapters for Threads, with account setup and provider authentication required.
Provides source-linked briefs and draft files for TikTok; currently supports brief formats rather than a built-in publishing adapter.
Provides source-linked briefs and draft files for YouTube; currently supports brief formats rather than a built-in publishing adapter.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Welcome to the garden 🌱 (what this is)
Good conversations need more than a publish button. Ghost in the Box connects the work around it: understand the conversation, keep the sources, develop a draft, choose the account, send the exact job, and remember what happened.
Built by Digital Disconnections for people who want to own their tools and keep control of their work. Read our mission statement, It's Not 1997.
New words such as brief, lane, frozen job or Bat are explained in plain terms.
In the garden | What it does |
Know your accounts | Keep local references to your own saved sessions. |
Listen first | Read a limited number of posts, comments, replies, and feed items into a local inbox. |
Keep your voice | Import your own writing and build source-linked briefs. |
Make something worth sharing | Prepare text, carousels, and visual research. |
Publish with receipts | Freeze queued content, claim one job, record its provider ID and link. |
Recover honestly | Keep uncertain sends visible for reconciliation instead of blindly repeating them. |
Related MCP server: so-easy-mcp
Pick a plot (supported platforms)
Connection | Available today |
Session registry, own-writing importer, inbox, comments, carousel drafts, exact-job publishing, and MCP tools. | |
Threads | Post and reply readers, inbox triage, queued posts and replies, cadence (post spacing and quiet hours), and publishing adapters. Account setup and provider authentication are required. Browser helpers are optional. |
Substack | Optional SDK-backed MCP connector, persistent cookies, setup status, and publication receipts. |
Browser login, reads of your identity, a profile, your own posts, your conversation list and messages, experimental delivery of text and single-image posts through the outbox, and MCP tools. | |
Brief engine | Source-linked briefs and draft files for Instagram, Threads, Substack, LinkedIn, Facebook, TikTok, and YouTube. |
Facebook, TikTok, and YouTube currently have brief formats, not built-in publishing adapters. The outbox refuses them, so you post those yourself. Provider access changes, so mocked tests establish local behavior rather than a guarantee that your account is connected.
Plant your first seed (install and first run)
You need Python 3.11 or newer (python3 --version) and Git.
git clone https://github.com/Digital-Disconnections-LTD/ghost-in-the-box.git
cd ghost-in-the-box
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[recommended]'
python -m playwright install chromium
ghost-in-the-box doctordoctor checks this machine and prints the exact command for anything missing.
It reads local files only. ghost-in-the-box --help lists every command by
group, ghost-in-the-box config shows where your files live, and
ghost-in-the-box --version prints the installed version. The
command index has one line per command.
Try the offline example before
connecting anything. It builds a brief, drafts and queues a post in a local outbox,
and previews the send with publish --dry-run. Nothing logs in and nothing is sent.
Then connect your chosen accounts with the login wizard and use
the same ghost-in-the-box command for accounts, briefs, inboxes, and delivery.
What each extra unlocks
The base install only needs Requests. Extras add optional features.
Extra | Installs | Unlocks |
|
| The quickstart above. Most people want this. |
| Playwright | The browser login wizard ( |
| instagrapi, Pillow | Instagram login, inbox, import, carousels, publishing and the |
| Pillow | Image checks for carousels and the meme library. |
| Scrapling | The optional Scrapling transport for Threads reads and posts. |
| python-substack (with MCP) | Substack login and the |
| test and build tools | Running the test suite and building the package. |
Combine extras with commas, for example '.[recommended,substack]'.
LinkedIn reads and posts need only the base install once a session exists.
Where it runs
Area | Linux | macOS | Native Windows |
Login wizard, session export and import, account registry | tested | tested | tested |
LinkedIn reads, portable Threads transport | tested | tested | tested |
Everything else (outbox, publish, inbox, MCP, brief, memes) | tested | tested | not tested in CI; use WSL |
systemd timer examples, | yes | no | no |
"Tested" means the offline test suite runs there in CI. Mocked tests prove local behaviour, not that a platform will accept your account today.
Browser-guided logins
ghost-in-the-box login start opens the Chrome you already have (or Edge, Brave
or Chromium). It starts it as a normal program with its own profile folder under
the state dir, so you sign in the way you always do. Google sign-in works too.
A numbered menu shows which accounts are already connected. Pick one, sign in, and the menu comes back until you say done. Instagram and Threads share one Meta login, so after one you are offered the other with no second sign-in. You never type your handle: the wizard reads it from the session and asks you to confirm.
What gets saved is a cookie session in files private to you. Nothing leaves your
machine unless you export it. login forget-browser --platform PLATFORM wipes a
browser profile, and login export and login import move the sessions you pick
to a server. Every step is in the login guide.
Bring a Bat, or your favorite MCP client 👻 (agents and MCP)
Ghost in the Box works alongside Batbox,
Claude Desktop, Claude Code, Codex CLI and other MCP clients. The Instagram,
LinkedIn and Substack servers speak standard MCP over stdio. Ready-made client
configs live in examples/. Threads is CLI-only today; an
agent reaches it through the ghost-in-the-box command.
Set up MCP → · Connect the platforms → · Follow the agent workflow →
Your garden stays yours (privacy and safety)
Accounts, cookies, drafts, inboxes, and receipts live in your local state directory. Ghost in the Box has no project-operated telemetry collector or analytics uploader. Social requests go to the platforms you connect; optional image inspection sends selected images to your configured vision endpoint. Those services control their own data practices.
Configuration and state explains the paths and optional helpers. Credentials and real account exports belong outside Git.
A few things to know before you connect a real account:
Sessions are credentials. A saved session or an export bundle lets anyone who holds it act as you. Keep them private and out of Git, chats and screenshots.
Platform terms apply. These tools use your own login, not an official developer API. Automated use may break a platform's terms and can get an account challenged or restricted. You decide what is acceptable for your account.
Nothing publishes by accident. Login, import, brief, draft, queue and
publish --dry-runnever post. A post goes out only when you runghost-in-the-box publish JOB, a timer you installed runspublish --due, you runthreads publish JOBorthreads retry JOB, you add--nowto athreadscommand, or an MCP client calls a publishing tool such asinstagram_publish_job.
Research use only
This code is for research purposes only. Follow the rules: use it only with accounts you own, respect each platform's terms of service and rate limits, and take responsibility for anything you publish.
Come grow with us (contributing)
This is a community project. Your fixes, improvements, testing, documentation, and artwork are welcome. AI-assisted code is welcome with regression tests.
We would love help with more provider adapters, clearer account setup, better conversation context, and a friendly interface over the existing inbox and outbox. Start with CONTRIBUTING.md and the roadmap.
Project-owned code uses the MIT license. Required dependency attribution is preserved in Third-party notices.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Agent-first social media publishing, scheduling, analytics, and unified inbox API + 16-tool MCP server across 18 social platforms (X, LinkedIn, Instagram, YouTube, TikTok, Threads, Bluesky, Reddit, Telegram, Discord, Mastodon, Facebook, Pinterest).
Run social media with agents. Connect over MCP to plan, write, and post to every network.
Hosted MCP server for AI agents to post to LinkedIn profiles and X and upload to YouTube.
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceSocial media API and MCP server for AI agents that enables publishing to X, Instagram, LinkedIn, Reddit, Bluesky, and Threads from a single endpoint.19 npmMIT
- AlicenseNot gradedqualityCmaintenanceA full social media management MCP server enabling post, read, schedule, and analyze across Facebook, Instagram, LinkedIn, X/Twitter, Pinterest, and YouTube from any MCP-compatible AI client.MIT
- AlicenseAqualityBmaintenanceEnables agents and scripts to drive a social publishing account through remote or local MCP tools: drafting, scheduling, approving and publishing posts, running durable background jobs with file attachments, and reading or editing Brand Memory, assets, and standing agents. Hosts can connect over OAuth with no API key, or run the stdio variant with a key for local disk tools.651MIT

Chat33 MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents and MCP clients to publish and schedule posts across eight social networks, answer Instagram and Facebook DMs and comments, and build comment-to-DM automations through a hosted remote endpoint.MIT