Solnk MCP
Official# Solnk MCP
A [Model Context Protocol](https://modelcontextprotocol.io) server for [Solnk](https://solnk.com) — let any MCP client (Claude, Cursor, your own agent) **publish and schedule content across 9 social platforms** through one tool surface: **X, Instagram, TikTok, YouTube, Facebook, LinkedIn, Pinterest, Threads, and Bluesky**.
It's a thin, stateless proxy to the [Solnk public API](https://developers.solnk.com): your API key is forwarded per request, and all auth/scope/quota enforcement happens server-side. No credentials are stored in this Worker.
## Hosted endpoint
A managed instance runs at:
```
https://mcp.solnk.com/mcp
```
Authenticate with a Solnk API key as a bearer token. Create one at **https://solnk.com/settings/api-keys**.
```
Authorization: Bearer sk_...
```
## Connect a client
Most MCP clients reach a remote HTTP server through [`mcp-remote`](https://www.npmjs.com/package/mcp-remote). Example config (Claude Desktop / Cursor / any client using the standard `mcpServers` schema):
```json
{
"mcpServers": {
"solnk": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.solnk.com/mcp",
"--header",
"Authorization:Bearer ${SOLNK_API_KEY}"
],
"env": {
"SOLNK_API_KEY": "sk_your_key_here"
}
}
}
}
```
Clients with native Streamable HTTP support can connect to `https://mcp.solnk.com/mcp` directly and set the `Authorization: Bearer sk_...` header.
## Tools
| Tool | What it does |
| --- | --- |
| `solnk_list_accounts` | List connected social accounts (id, platform, username, status, capabilities). Call first to get `account_id`s. |
| `solnk_get_usage` | Plan limits and current usage — check `can_publish` before posting. |
| `solnk_publish` | Publish to one or more platforms in a single request (`immediate`, `scheduled`, or `draft`). |
| `solnk_confirm_publish` | Confirm a draft so it goes out, now or scheduled. |
| `solnk_cancel_publish` | Cancel a draft or not-yet-sent scheduled publish. |
| `solnk_get_publish_status` | Aggregate status of a publish. |
| `solnk_list_publishes` | List recent publishes with filters. |
| `solnk_get_post_analytics` | Rolled-up or per-platform post metrics, including live post URLs. |
| `solnk_create_media_upload` | Presigned upload for a local image/video file (3-step flow). |
| `solnk_confirm_media_upload` | Finalize a presigned upload. |
| `solnk_create_media_from_url` | Ingest an image/video by public URL in one call. |
Full request/response shapes and per-platform options live at **[developers.solnk.com](https://developers.solnk.com)**.
## Self-hosting
The server is a single [Cloudflare Worker](https://workers.cloudflare.com/).
```bash
pnpm install
# Local dev — point at your own Solnk API base if needed
# (edit SOLNK_API_BASE in wrangler.toml, e.g. http://localhost:3002/api/v1)
pnpm dev
# Deploy to your own Cloudflare account
pnpm deploy
```
`wrangler.toml`:
- `SOLNK_API_BASE` — the Solnk public API the tools proxy to (defaults to `https://api.solnk.com/api/v1`).
- `routes` — bind your own custom domain.
No secrets are needed at deploy time; the API key is supplied by the client at request time.
### Discovery without a key
MCP discovery (`initialize` / `tools/list`) is open — clients, inspectors, and directories can introspect the tool surface without an API key. A key is only required to actually invoke a publishing tool. A `Dockerfile` is included so the Worker can be built and run locally (`wrangler dev`, no Cloudflare login) for introspection.
## License
[MIT](./LICENSE) © Solnk
TDQS
Scored across 11 tools
Each tool has a distinct purpose: media upload methods are clearly separated by source (URL vs local file), publishing operations are split into create, confirm, and cancel, and analytics, status, usage, accounts, and lists all address different needs without overlap.
All tools follow the 'solnk_' prefix and consistent snake_case with verb_noun patterns (e.g., confirm_publish, get_usage, list_accounts). The two media creation tools are clearly distinguished by suffix (_from_url vs _upload).
11 tools is appropriate for a publishing platform, covering media upload, publishing lifecycle, analytics, accounts, and usage. Each tool serves a clear role without being excessive or insufficient.
The tool set covers the main workflow: list accounts, check usage, upload media, create/confirm/cancel publish, get status and analytics. Minor gap: no direct edit/update for a draft publish, though cancel and re-create may suffice.