DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
MCP server and Claude Code / Codex plugin for SparkShare: publish to LinkedIn and X from your AI agent
翻訳待ち
Loading the full README.
Read the full README ↗MCP server for SparkShare: let Claude Code, Codex, Claude Desktop and other AI agents publish text, images and video to your LinkedIn profile, and queue posts for X that the SparkShare Chrome extension fills in for you. Facebook Pages and Instagram follow once Meta has approved SparkShare.
Your agent writes the post; SparkShare publishes it. The agent shows you the exact text for each platform and publishes only after you say yes.
npx -y sparkshare-mcp login
Your browser opens SparkShare; sign in with Google if asked and click Authorize (OAuth 2.1 with
PKCE). A key is saved in ~/.sparkshare/credentials.json and every MCP client on this computer finds
it, including desktop apps that do not see your shell's environment variables. Nothing to copy or
paste; signing in again replaces this computer's previous key. Without a browser use --no-browser
(prints the link) or --paste (paste a key created in the dashboard).claude mcp add sparkshare -- npx -y sparkshare-mcp
or install the plugin, which also brings a skill with the publishing rules:
/plugin marketplace add stimQQ/sparkshare-mcp then /plugin install sparkshare@sparksharecodex mcp add sparkshare -- npx -y sparkshare-mcp
or the plugin: codex plugin marketplace add stimQQ/sparkshare-mcp then codex plugin add sparkshare@sparkshare{ "mcpServers": { "sparkshare": { "command": "npx", "args": ["-y", "sparkshare-mcp"] } } }
Then ask in plain words: "Write a LinkedIn post about this release and share the screenshot on Instagram and X."
| Tool | What it does |
|---|---|
list_accounts | The accounts you can post to, with their ids. x is always there. |
publish_post | Publish one post (text, optional images or video from local paths, https URLs or upload ids, optional link) to some accounts, with optional per-account text. Every target is checked first; if any has a problem, nothing is published. |
upload_media | Upload one image or video ahead of time and get its id; use it for videos so no single call runs long. |
get_media | Whether an uploaded file is ready (videos are processed for a minute or two after uploading). |
get_post | Status and links of a post, e.g. while a platform is still processing a video. |
recent_posts | Your latest posts, so a failed call can be checked before retrying. |
X's API charges per post, so SparkShare does not post to X for you. The post waits in the SparkShare
Chrome extension: click it, choose Fill on X, and X's composer opens with the text, images and video
in place; you check it and press Post. Without the extension, publish_post also returns a link that
opens X with the text only.
sparkshare-mcp run the MCP server on stdio
sparkshare-mcp login authorize in the browser (--no-browser | --paste | --stdin)
sparkshare-mcp status show which account the saved key belongs to
sparkshare-mcp logout delete the saved key
Environment: SPARKSHARE_API_KEY (a sk_live_u_… key, used before the saved key),
SPARKSHARE_CREDENTIALS_FILE, SPARKSHARE_URL (site URL; for local development http://localhost:3031).
pnpm install && pnpm build
# against a local SparkShare (PUBLISH_DRY_RUN=true) on a local backend-hub, see ../README.md:
SPARKSHARE_URL=http://localhost:3031 pnpm smoke
This folder is part of the SparkShare repository (the site lives next to it in web/). The smoke
test creates the dev user with ../web/scripts/dev-seed.ts, drives every tool, runs
sparkshare-mcp login against the real sign-in (approving on the site the way a browser would) and
deletes the dev user at the end.