Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"com-zernio-zernio": {
"args": [
"zernio-sdk"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
The official Python SDK for the Zernio API — schedule and publish social media posts across Instagram, TikTok, YouTube, LinkedIn, X/Twitter, Facebook, Pinterest, Threads, Bluesky, Reddit, Snapchat, Telegram, WhatsApp, and Google Business Profile with a single integration.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'zernio-sdk' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked zernio-sdk against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in communication / marketing
Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
DataForSEO API modelcontextprotocol server
PubNub Model Context Protocol MCP Server for Cursor and Claude
Social layer for Claude Code - DMs, presence, discovery, and games between AI-assisted developers
MCP Security Weekly
Get CVE alerts and security updates for com.zernio/zernio and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
One API to post everywhere. 14 platforms, zero headaches.
The official Python SDK for the Zernio API — schedule and publish social media posts across Instagram, TikTok, YouTube, LinkedIn, X/Twitter, Facebook, Pinterest, Threads, Bluesky, Reddit, Snapchat, Telegram, WhatsApp, and Google Business Profile with a single integration.
pip install zernio-sdk
from zernio import Zernio
# Reads ZERNIO_API_KEY from environment (or pass explicitly)
client = Zernio()
# Publish to multiple platforms with one call
post = client.posts.create(
content="Hello world from Zernio!",
platforms=[
{"platform": "twitter", "accountId": "acc_xxx"},
{"platform": "linkedin", "accountId": "acc_yyy"},
{"platform": "instagram", "accountId": "acc_zzz"},
],
publish_now=True,
)
print(f"Published to {len(post['post']['platforms'])} platforms!")
client = Zernio(
api_key="your-api-key", # Or set ZERNIO_API_KEY env var
base_url="https://zernio.com/api", # Optional, this is the default
timeout=30.0, # Optional, request timeout in seconds
)
post = client.posts.create(
content="This post will go live tomorrow at 10am",
platforms=[{"platform": "instagram", "accountId": "acc_xxx"}],
scheduled_for="2025-02-01T10:00:00Z",
)
Customize content per platform while posting to all at once:
post = client.posts.create(
content="Default content",
platforms=[
{
"platform": "twitter",
"accountId": "acc_twitter",
"platformSpecificContent": "Short & punchy for X",
},
{
"platform": "linkedin",
"accountId": "acc_linkedin",
"platformSpecificContent": "Professional tone for LinkedIn with more detail.",
},
],
publish_now=True,
)
# Option 1: Direct upload (simplest)
result = client.media.upload("path/to/video.mp4")
media_url = result["publicUrl"]
# Option 2: Upload from bytes
result = client.media.upload_bytes(video_bytes, "video.mp4", "video/mp4")
media_url = result["publicUrl"]
# Create post with media
post = client.posts.create(
content="Check out this video!",
media_urls=[media_url],
platforms=[
{"platform": "tiktok", "accountId": "acc_xxx"},
{"platform": "youtube", "accountId": "acc_yyy", "youtubeTitle": "My Video"},
],
publish_now=True,
)
data = client.analytics.get(period="30d")
print("Analytics:", data)
data = client.accounts.list()
for account in data["accounts"]:
print(f"{account['platform']}: @{account['username']}")
import asyncio
from zernio import Zernio
async def main():
async with Zernio(api_key="your-api-key") as client:
posts = await client.posts.alist(status="scheduled")
print(f"Found {len(posts['posts'])} scheduled posts")
asyncio.run(main())
from zernio import Zernio, ZernioAPIError, ZernioRateLimitError, ZernioValidationError
client = Zernio(api_key="your-api-key")
try:
client.posts.create(content="Hello!", platforms=[...])
except ZernioRateLimitError as e:
print(f"Rate limited: {e}")
except ZernioValidationError as e:
print(f"Invalid requ
... [View full README on GitHub](https://github.com/zernio-dev/zernio-python#readme)