# solnk-dev/solnk-mcp [Health: Active]

**Category:** 🌐 Social Media  
**Repository:** https://github.com/solnk-dev/solnk-mcp  
**GitHub Stars:** 1  
**Views:** 5  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/solnk-dev-solnk-mcp

## Description
Official Solnk MCP server — publish and schedule content across 9 platforms (X, Instagram, TikTok, YouTube, Facebook, LinkedIn, Pinterest, Threads, Bluesky) from any MCP client. 11 tools for publishing, drafts, scheduling, media upload, and post analytics. Hosted at mcp.solnk.com with bearer API key auth.

## Tools
Capabilities this server exposes over MCP:

- **solnk_list_teams** — List teams owned by the connected Solnk user. Call this before solnk_delete_team to identify the protected default team, the API-key team, and a destination team for migrated content.
- **solnk_set_default_team** — Make the connected API-key team the owner's default team. The default team is used as the fallback after leaving a shared team and is preselected as the migration destination when deleting another team.
- **solnk_delete_team** — Permanently delete an extra team after the user explicitly requests it. The connected API key must belong to the deleted team. Accounts, posts, groups, and media move to destination_team_id; memberships, source-team API keys, webhooks, and invitations are removed. The default team cannot be deleted. Success revokes the current API key, so the MCP connection must be reconnected to a key in the destination team.
- **solnk_list_accounts** — List the user's connected social accounts (id, platform, username, status, capabilities). Call this first to get account_id values for publishing.
- **solnk_get_usage** — Get the user's plan limits and current usage. Check `can_publish` is true before publishing.
- **solnk_publish** — Publish content to one or more platforms in a single request. Use publish_mode 'draft' to stage for review (then solnk_confirm_publish), 'scheduled' with scheduled_at, or 'immediate' to send now. Reuse the same idempotency_key when retrying the same logical publish. If omitted and a network/503 error occurs, the error details include the generated key to reuse. NOTE: if the team requires approval and this key is not an owner/admin, the response comes back with status 'awaiting_approval' (approval_status 'pending_approval') and is NOT published until a team owner/admin approves it (solnk_approve_publish).
- **solnk_confirm_publish** — Confirm an unconfirmed draft so it goes out. Omit scheduled_at to publish immediately, or pass it to schedule. This tool never reschedules an already-confirmed publish; use solnk_reschedule_publish explicitly for that. If queue dispatch returns a 503, retry this same call safely: Solnk redelivers using the same deterministic job ID. NOTE: if the team requires approval and this key is not an owner/admin, confirming returns status 'awaiting_approval' and the draft is held for a team owner/admin to approve rather than published.
- **solnk_update_publish** — Update an existing draft or not-yet-sent scheduled publish in place. This preserves the same publish_id and, for scheduled posts, the existing publish time. Never cancel and recreate a publish just to edit it. When targets is provided it is the complete replacement target list, not a partial list.
- **solnk_update_draft** — Backward-compatible alias for solnk_update_publish. Updates the same draft or not-yet-sent scheduled publish in place and preserves its publish_id.
- **solnk_reschedule_publish** — Move a not-yet-sent scheduled publish to a new future time without creating a new publish. Preserves the same publish_id, content, media, and targets; only the queue time changes.
- **solnk_cancel_publish** — Cancel a draft publish. Cannot cancel one already queued, processing, or published.
- **solnk_unschedule_publish** — Cancel the future delivery of a not-yet-sent scheduled publish and restore the same publish to an editable draft. Preserves publish_id, content, media, and targets; does not create a replacement. Use solnk_confirm_publish to schedule or publish it again later.
- **solnk_get_publish_status** — Get a publish's current state and editable preview, including top-level content plus each target's content, media_ids, and platform_settings. Status may be draft/awaiting_approval/rejected/queued/processing/success/partial_success/failed/cancelled. Call this before solnk_update_publish. For live URLs and engagement, use solnk_get_post_analytics.
- **solnk_retry_publish** — Retry a failed or partial_success publish — re-sends ONLY the targets that failed, never the ones that already succeeded (so a partial failure won't duplicate posts on the platforms that worked). A failure usually means the content was rejected, so pass `targets` to fix the failed targets' content/media before resending; each entry must reference a target that actually failed. Omit `targets` to resend unchanged — only do that for transient failures like an expired token. Poll solnk_get_publish_status for the new result.
- **solnk_list_publishes** — List recent publishes with optional filters.
- **solnk_list_approvals** — List publishes awaiting team approval (only relevant when the team has approval enabled). Owners/admins see every pending request in the team; members see only the ones they submitted. Approve/reject with solnk_approve_publish / solnk_reject_publish.
- **solnk_approve_publish** — Approve a publish that is awaiting team approval and release it to the publishing queue. Only the team owner/admin that this API key belongs to can approve — others get a not-found error. Idempotent.
- **solnk_reject_publish** — Reject a publish that is awaiting team approval — it will NOT be published. Only the team owner/admin that this API key belongs to can reject. A rejected request is terminal; submit a new solnk_publish to try again.
- **solnk_get_post_analytics** — Get post performance. Without post_id: a list of posts with rolled-up metrics. With post_id: per-platform breakdown including each live platform_post_url and engagement.
- **solnk_list_media** — List confirmed media already available in the current team. Reuse returned media IDs when creating or updating a publish.
- **solnk_create_media_upload** — Upload a LOCAL image/video file in 3 steps: (1) call this to get a presigned `upload_url` + `media_id`; (2) HTTP PUT the raw file bytes to that `upload_url` with header `Content-Type` equal to the same content_type (URL expires in 15 min); (3) call solnk_confirm_media_upload with the media_id. Then pass media_id to solnk_publish. Use this when you have a local file on disk; use solnk_create_media_from_url when you already have a public URL. Limits: max 500 MB; types png/jpeg/webp/gif, mp4/mov.
- **solnk_confirm_media_upload** — Finalize a presigned upload after you've PUT the file to the upload_url from solnk_create_media_upload. Verifies the file is in storage and marks the media ready, returning the media_id to use in solnk_publish.
- **solnk_create_media_from_url** — Attach an image or video by public URL — Solnk fetches and stores it server-side, returning a media_id to use in solnk_publish. Limits: max 500 MB per file; allowed types png/jpeg/webp/gif, mp4/mov. (For a local file on disk, use solnk_create_media_upload instead.)

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "solnk-mcp": {
    "command": "npx",
    "args": ["-y","mcp-remote","https://mcp.solnk.com/mcp","--header","Authorization:Bearer ${SOLNK_API_KEY}"],
    "env": {
      "SOLNK_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `SOLNK_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What solnk-dev/solnk-mcp MCP server does

The solnk-dev/solnk-mcp MCP server provides an MCP interface to Solnk’s social publishing API. It lets an MCP client work with connected social accounts and publish one piece of content to one or more supported platforms: X, Instagram, TikTok, YouTube, Facebook, LinkedIn, Pinterest, Threads, and Bluesky.

Publishing can happen immediately, at a future time, or as a draft for later confirmation. Teams can also require owner or administrator approval before content enters the publishing queue. The server exposes operations for listing publishes, checking status, editing drafts or pending scheduled posts, rescheduling, cancelling, unscheduling, retrying failed targets, and reviewing post analytics.

## How it works

The hosted endpoint is `https://mcp.solnk.com/mcp`. A client connects over MCP and sends a Solnk API key as a bearer token. The implementation is a stateless proxy: credentials are supplied with requests and are not stored by the Worker. Solnk handles authentication, permissions, team scope, and usage limits.

Clients should list connected accounts before publishing to obtain account IDs, and check usage before attempting a publish. Media can be supplied from a public URL, or uploaded from a local file through a presigned URL followed by confirmation. A local upload supports images and videos up to 500 MB, with the documented PNG, JPEG, WebP, GIF, MP4, and MOV formats.

The solnk-dev/solnk-mcp MCP server also supports MCP discovery without an API key. Calling `initialize` or `tools/list` reveals the tool surface, but an API key is needed for publishing operations.

## Setup and configuration

For normal use, connect an MCP client to the hosted endpoint and provide a Solnk API key created in Solnk’s API-key settings. Clients with native Streamable HTTP support can connect directly and set the authorization header. Other clients can use an MCP-compatible remote HTTP bridge in their client configuration.

For self-hosting, the repository provides a Cloudflare Worker. Install dependencies with `pnpm install`, run local development with `pnpm dev`, and deploy with `pnpm deploy`. `SOLNK_API_BASE` in `wrangler.toml` controls the upstream Solnk API and defaults to `https://api.solnk.com/api/v1`. No deployment-time secret is required because the API key arrives from the client.

## Tools and capabilities

- List teams and connected social accounts.
- Inspect plan limits and current usage.
- Publish immediately, schedule delivery, or create drafts.
- Confirm, edit, reschedule, cancel, or unschedule publishes.
- Submit, approve, reject, and list approval requests.
- Retry only failed targets after a partial or failed publish.
- Upload local media or ingest media from a public URL.
- List available team media and inspect publish status.
- Retrieve rolled-up and per-platform post analytics, including live URLs.
- Set a default team or delete an extra team after explicit confirmation.

## Limitations and notes

A publish may remain in `awaiting_approval` when team approval is enabled and the API-key holder is not an owner or administrator. Deleting a team moves supported content to a destination team, removes related memberships and credentials, and revokes the current API key, requiring reconnection with a destination-team key. Draft cancellation is unavailable once a publish is queued, processing, or published. The repository is MIT-licensed.

_Full upstream README: https://allmcps.com/mcp/solnk-dev-solnk-mcp/readme_

