mcp server
Publora
Schedule and publish to 10 social platforms: LinkedIn, X, Instagram, TikTok, YouTube, and more.
Description as published by the maintainer. Source
- version 1.1.1
- active
active — Most recent push to the repository was 2026-06-30.
What this server can do
16 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
complete_media(mediaId)- Finalize an uploaded media file after the HTTP PUT to the presigned uploadUrl: Publora probes the bytes server-side and marks the media 'ready' for scheduling. Call once per uploaded mediaId (from get_upload_url), then schedule via update_post. Not needed for media attached via mediaUrls. Required: mediaId.
create_post(content, mediaUrls, platforms, scheduledTime, idempotencyKey, platformSettings)- Create a post. FASTEST for media posts: pass mediaUrls (public https URLs — Publora downloads them server-side) together with scheduledTime to create AND schedule in one call; platforms like Instagram, TikTok, YouTube require media before scheduling. Manual alternative for local files: omit scheduledTime to create a draft, upload media with get_upload_url + HTTP PUT + complete_media (once per file), then call update_post with status 'scheduled'. Required: content, platforms.
delete_media(mediaId)- Remove one media file from a post group — e.g. a duplicate or never-uploaded slot that blocks scheduling with MEDIA_COUNT_EXCEEDED or media-not-ready errors. Find mediaIds via get_post (its 'media' array shows status per file). Deleting media from a scheduled post demotes it to draft; re-schedule with update_post afterwards. Required: mediaId.
delete_post(postGroupId)- Delete a scheduled post group and all its platform-specific posts Required: postGroupId.
get_post(postGroupId)- Get details of a scheduled post group and its platform-specific posts Required: postGroupId.
get_upload_url(type, fileName, contentType, postGroupId)- Get a presigned S3 URL to upload a LOCAL media file (image/video) for a post. Call ONCE per file — repeat calls with the same fileName return the same mediaId instead of adding duplicate slots; use unique fileNames for different files. Next: HTTP PUT the raw bytes to uploadUrl with a Content-Type header EQUAL to the contentType passed here (the signature enforces it), then call complete_media with the mediaId. If the file is already reachable at a public URL, prefer create_post/update_post with mediaUrls — no upload steps at all. Required: postGroupId, fileName, contentType, type.
linkedin_create_comment(message, postedId, platformId, parentComment)- Post a comment on a LinkedIn post Required: postedId, platformId, message.
linkedin_create_reaction(postedId, platformId, reactionType)- React to a LinkedIn post (like, praise, etc.) Required: postedId, platformId, reactionType.
linkedin_create_reshare(parent, commentary, platformId, visibility)- Reshare (repost) an existing LinkedIn post to your feed, optionally with commentary Required: platformId, parent.
linkedin_delete_comment(postedId, commentId, platformId)- Delete a comment from a LinkedIn post Required: postedId, commentId, platformId.
linkedin_delete_reaction(postedId, platformId)- Remove your reaction from a LinkedIn post Required: postedId, platformId.
linkedin_list_mentionables(q, limit)- List LinkedIn people captured from engagement (comments/reactions) on your connected company pages. Each entry carries the native app-scoped person id — the only id namespace LinkedIn resolves in mentions — plus a ready-to-use mention token in the form @{urn:li:person:ID|Name}. Requires a paid plan (403 UPGRADE_REQUIRED otherwise).
list_connections- List all connected social media accounts (Twitter, LinkedIn, TikTok, etc.)
list_posts(page, limit, sortBy, status, toDate, fromDate, platform, sortOrder, responseFormat)- List scheduled/published posts with filtering by status, platform, date range
prune_media_reference(mediaId, postGroupId)- Repair MEDIA_REFERENCE_MISSING by removing a stale/dangling media reference from an owned post group, even when the MediaFile row is absent or inaccessible. Use delete_media for normal existing media rows. Required: postGroupId, mediaId.
update_post(status, content, mediaUrls, platforms, postGroupId, scheduledTime, idempotencyKey, platformSettings)- Edit an existing draft/scheduled post without deleting it. You may change its base content, target platforms, status, scheduled time, per-platform settings, and/or APPEND media from public https URLs via mediaUrls. Before changing platforms, call list_connections and copy each target's platformId verbatim. Published/failed posts and posts already being published are not editable. Scheduling re-validates the complete final content/media/platform state; omitting a field keeps its current value. Required: postGroupId.
Last successful function declaration observed on . Source: https://mcp.publora.com/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://mcp.publora.com/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 5 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-06-30 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 0 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 1.1.1 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-08-04 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| License | MIT | Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. | as of fetch | GitHub | |
| First listed in the MCP Registry | 2026-08-04 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 16 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | mcp.publora.com | |
| mcp endpoint status | ok | The server listed 16 functions when asked. | as of probe | mcp.publora.com |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json