SocialHive
pro.socialhive/platformsocialhive.prostreamable-httpv1.0.0Scanned
Social media management, multi-platform publishing, AI generation, and cross-channel analytics.
24 tools: 2 do something that can't be undone, 9 change things and 13 only read.
- Reads private data · 2
- Reads text others write · 12
- Can send data out · 6
- No findings
Tools listed without sign-in. Remote posture
Anlyon alternative
11 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
24 tools
Can't be undone 2Claude Code: ask
publish_articlePublish (or send as a draft) an article from the workspace library to one or more connected sites.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "publish_article" says "publish": a word for a change that another call does not undo.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "publish_article" says "publish": it sends or publishes something to other people.
Description, as the server wrote it Publish (or send as a draft) an article from the workspace library to one or more connected sites. Get site ids from list_connected_sites and article ids from list_articles or create_article. The article must have a body. Publishing again updates the existing post on that site.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- idempotentHint: true
publish_postPublish an existing draft now (queues it immediately).Reads text others writeCan send data outNo findings
Why it is in this group
- The name "publish_post" says "publish": a word for a change that another call does not undo.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "publish_post" says "publish": it sends or publishes something to other people.
Description, as the server wrote it Publish an existing draft now (queues it immediately). Approval policy still applies — the post may land in pending_approval instead.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- idempotentHint: false
Changes things 9Claude Code: ask
adapt_postRewrite existing copy for another platform's length, tone and conventions.Can send data outNo findings
Why it is in this group
- The name "adapt_post" says "post": a word for a change.
What it can reach
- outboundThe name "adapt_post" says "post": it sends or publishes something to other people.
Description, as the server wrote it Rewrite existing copy for another platform's length, tone and conventions. Supports adapting to LinkedIn, X, and other networks. Metered.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
create_articleSave a long-form article or blog post (e.g.No findings
Why it is in this group
- The name "create_article" says "create": a word for a change.
Description, as the server wrote it Save a long-form article or blog post (e.g. generated by ChatGPT, Claude, or an LLM) into the workspace article library. Quota: maximum 10 articles per month via MCP. Can be linked into syndication workflows or published to CMS targets.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
create_postCreate and optionally publish a post for LinkedIn, X, Instagram, Facebook, YouTube, TikTok, etc.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "create_post" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "create_post" says "create" and "post": it writes something other people read.
Description, as the server wrote it Create and optionally publish a post for LinkedIn, X, Instagram, Facebook, YouTube, TikTok, etc. Supports post copy text, image attachments (Base64 data or URLs), and video. When publishNow is true, the post is published immediately to the social accounts (available to admin-approved users). Without publishNow or scheduledAt, it is saved as a draft.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- idempotentHint: false
generate_imageGenerate an image into the media library and return its asset id (attach with create_post.mediaIds).No findings
Why it is in this group
- The name "generate_image" says "generate": a word for a change.
Description, as the server wrote it Generate an image into the media library and return its asset id (attach with create_post.mediaIds). quality 'free' uses the free provider; 'hq' costs credits.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
generate_textWrite social copy in the workspace brand voice.No findings
Why it is in this group
- The name "generate_text" says "generate": a word for a change.
Description, as the server wrote it Write social copy in the workspace brand voice. Returns one or more variants. Metered (free daily allowance, then 1 credit).
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
import_mediaImport an image or video from an external public URL into the workspace media library and return its asset id (to attach with create_post.mediaIds).Reads text others writeCan send data outNo findings
Why it is in this group
- The name "import_media" says "import": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Import an image or video from an external public URL into the workspace media library and return its asset id (to attach with create_post.mediaIds).
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- idempotentHint: false
propose_workflowPropose an automation workflow as a graph (nodes + edges).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Propose an automation workflow as a graph (nodes + edges). The graph is validated and saved as a DRAFT version that a human must review and activate in Workflow Studio; it never runs on its own. Call list_node_types first for valid node types and config schemas.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
schedule_postSchedule an existing draft (or move a scheduled post) to an ISO 8601 time.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "schedule_post" says "schedule": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "schedule_post" says "schedule" and "post": it writes something other people read.
Description, as the server wrote it Schedule an existing draft (or move a scheduled post) to an ISO 8601 time. Approval policy still applies.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- idempotentHint: false
upload_mediaUpload an image, video, or PDF directly using base64 data (or data URI) into the workspace media library and return its asset id (to attach with create_post.mediaIds).No findings
Why it is in this group
- The name "upload_media" says "upload": a word for a change.
Description, as the server wrote it Upload an image, video, or PDF directly using base64 data (or data URI) into the workspace media library and return its asset id (to attach with create_post.mediaIds).
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
Only reads 13Show 13 read-only tools
get_analyticsWorkspace performance for the last N days: impressions, engagements, posts, follower change, top posts and recommended posting slots.Reads text others writeNo findings
Why it is in this group
- The name "get_analytics" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
Description, as the server wrote it Workspace performance for the last N days: impressions, engagements, posts, follower change, top posts and recommended posting slots.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
get_articleGet full details and Markdown body of an article in the workspace library by its ID.No findings
Why it is in this group
- The name "get_article" says "get": a word for reading.
Description, as the server wrote it Get full details and Markdown body of an article in the workspace library by its ID.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
get_connected_social_accountsGet all connected social media accounts (LinkedIn, X, YouTube, Instagram, Facebook, TikTok, Threads) for the workspace with account IDs, platforms, connection status, and automatio…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_connected_social_accounts" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "get" and "thread": it reads messages.
- untrusted-inputThe description's first sentence says "get" and "thread": it reads messages, which other people can write.
Description, as the server wrote it Get all connected social media accounts (LinkedIn, X, YouTube, Instagram, Facebook, TikTok, Threads) for the workspace with account IDs, platforms, connection status, and automationEnabled status.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
get_postGet one post with its body, per-channel variants, status and metrics.Reads text others writeNo findings
Why it is in this group
- The name "get_post" says "get": a word for reading.
What it can reach
- untrusted-inputThe name "get_post" says "get" and "post": it reads posts, which other people can write.
- untrusted-inputThe description's first sentence says "get" and "post": it reads posts, which other people can write.
Description, as the server wrote it Get one post with its body, per-channel variants, status and metrics.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_articlesList long-form articles in the workspace library with their id, title, status, word count, summary, and last updated time.No findings
Why it is in this group
- The name "list_articles" says "list": a word for reading.
Description, as the server wrote it List long-form articles in the workspace library with their id, title, status, word count, summary, and last updated time.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_channelsList the social accounts connected to this workspace with their ids, platform, handle, health, and automationEnabled status.No findings
Why it is in this group
- The name "list_channels" says "list": a word for reading.
Description, as the server wrote it List the social accounts connected to this workspace with their ids, platform, handle, health, and automationEnabled status. Use channel ids when creating posts.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_connected_sitesList the websites connected to this workspace for article publishing (SocialHive blog, WordPress, Ghost, Dev.to, ...).Reads text others writeNo findings
Why it is in this group
- The name "list_connected_sites" says "list": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "list" and "website": it reads web pages, which anyone can write.
Description, as the server wrote it List the websites connected to this workspace for article publishing (SocialHive blog, WordPress, Ghost, Dev.to, ...). Use an id from here as destinationIds in publish_article.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_mediaList or search media assets (images, videos) in the workspace media library.No findings
Why it is in this group
- The name "list_media" says "list": a word for reading.
Description, as the server wrote it List or search media assets (images, videos) in the workspace media library. Returns asset ids to attach with create_post.mediaIds.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_node_typesCatalog of workflow node types (triggers, sources, AI, control, destinations) with their config schemas.No findings
Why it is in this group
- The name "list_node_types" says "list": a word for reading.
Description, as the server wrote it Catalog of workflow node types (triggers, sources, AI, control, destinations) with their config schemas. Read before calling propose_workflow.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_postsList posts in the workspace, newest first.Reads text others writeNo findings
Why it is in this group
- The name "list_posts" says "list": a word for reading.
What it can reach
- untrusted-inputThe name "list_posts" says "list" and "post": it reads posts, which other people can write.
- untrusted-inputThe description's first sentence says "list" and "post": it reads posts, which other people can write.
Description, as the server wrote it List posts in the workspace, newest first. Filter by status (draft, pending_approval, scheduled, published, failed) or free text.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_sourcesList content data sources (RSS feeds, sitemaps, web pages, documents) with counts of unused items.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_sources" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "document": it reads documents.
- untrusted-inputThe description's first sentence says "list" and "rss": it reads web pages, which anyone can write.
Description, as the server wrote it List content data sources (RSS feeds, sitemaps, web pages, documents) with counts of unused items.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
list_workflowsList automation workflows with status and last run.No findings
Why it is in this group
- The name "list_workflows" says "list": a word for reading.
Description, as the server wrote it List automation workflows with status and last run.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
search_source_itemsFetch recent items from one data source (title, url, excerpt).Reads text others writeNo findings
Why it is in this group
- The name "search_source_items" says "search": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "fetch" and "url": it reads web pages, which anyone can write.
Description, as the server wrote it Fetch recent items from one data source (title, url, excerpt). Use them as raw material for posts.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
144 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 private-data tools breaks every one.
- Reads private data2
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write12
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out6
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__platform__get_connected_social_accounts",
"mcp__platform__list_sources"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 15:12 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 11
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- not observed
- RFC 9728 protected resource metadata
- https://platform.socialhive.pro/.well-known/oauth-protected-resource
- Authorization servers
- https://platform.socialhive.pro
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- yes
- Client ID metadata documents
- no
- HighThe whole server
The endpoint served tools/list without credentials, and the list has 11 tools that change things (2 irreversible, 9 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://platform.socialhive.pro/api/mcp: tools/list returned 24 tools to an anonymous client, including publish_post (irreversible), publish_article (irreversible), generate_text (write), adapt_post (write), generate_image (write) and 6 more
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http platform https://platform.socialhive.pro/api/mcpclaude mcp add --transport http platform https://platform.socialhive.pro/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__platform__list_channels",
"mcp__platform__get_connected_social_accounts",
"mcp__platform__list_posts",
"mcp__platform__get_post",
"mcp__platform__list_articles",
"mcp__platform__get_article",
"mcp__platform__get_analytics",
"mcp__platform__list_sources",
"mcp__platform__search_source_items",
"mcp__platform__list_workflows",
"mcp__platform__list_node_types",
"mcp__platform__list_media",
"mcp__platform__list_connected_sites"
],
"ask": [
"mcp__platform__generate_text",
"mcp__platform__adapt_post",
"mcp__platform__generate_image",
"mcp__platform__import_media",
"mcp__platform__upload_media",
"mcp__platform__create_post",
"mcp__platform__schedule_post",
"mcp__platform__publish_post",
"mcp__platform__create_article",
"mcp__platform__publish_article",
"mcp__platform__propose_workflow"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as platform. Review it before you use it.
Capability tags behind 13 rules
- mcp__platform__get_connected_social_accounts private-data, untrusted-input
- mcp__platform__list_posts untrusted-input
- mcp__platform__get_post untrusted-input
- mcp__platform__get_analytics untrusted-input
- mcp__platform__list_sources private-data, untrusted-input
- mcp__platform__search_source_items untrusted-input
- mcp__platform__adapt_post outbound
- mcp__platform__import_media untrusted-input, outbound
- mcp__platform__create_post untrusted-input, outbound
- mcp__platform__schedule_post untrusted-input, outbound
- mcp__platform__publish_post untrusted-input, outbound
- mcp__platform__list_connected_sites untrusted-input
- mcp__platform__publish_article untrusted-input, outbound
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/pro.socialhive/platform/verify?hash=c330e9b28cb35e7efb563959d0174432d5b825887d914d01a8f0f2dbf9a4a958" | jq -e '.changed == false'Pinned hash c330e9b28cb3, from Oct 21, 2026, 19:15 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/pro.socialhive/platform/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/pro.socialhive/platform)Source: MCP Registry · repository. Synced Oct 21, 2026, 18:54 UTC.