@dopost/mcp-server
v1.1.0
Published
MCP server for dopost — manage social media posts and read analytics via AI agents
Readme
@dopost/mcp-server
MCP (Model Context Protocol) server for dopost. It lets AI agents schedule and manage social media posts, read reliable workspace analytics, and prepare public YouTube, Instagram, and TikTok downloads through any MCP-compatible host.
Install
npm install -g @dopost/mcp-serverOr run directly with npx (no install needed):
npx @dopost/mcp-serverConfiguration
The server supports these environment variables:
| Variable | Required | Default | Description |
| ---------------- | ----------------------- | ------------------- | --------------------------------------------------------------------------------------------------------- |
| DOPOST_API_KEY | For authenticated tools | None | Required for posts, analytics, accounts, and Media library tools. Public downloader tools work without it |
| DOPOST_API_URL | No | https://dopost.co | API base URL |
To use only the public downloader tools, start the server without DOPOST_API_KEY. Configure the key when you also want to publish posts or access a dopost workspace.
Usage with MCP hosts
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dopost": {
"command": "npx",
"args": ["-y", "@dopost/mcp-server"],
"env": {
"DOPOST_API_KEY": "your-api-key"
}
}
}
}VS Code (Copilot)
Add to .vscode/mcp.json in your project:
{
"servers": {
"dopost": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@dopost/mcp-server"],
"env": {
"DOPOST_API_KEY": "your-api-key"
}
}
}
}Cursor
Add to Cursor settings under MCP servers:
{
"mcpServers": {
"dopost": {
"command": "npx",
"args": ["-y", "@dopost/mcp-server"],
"env": {
"DOPOST_API_KEY": "your-api-key"
}
}
}
}Available tools
| Tool | Description |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------ |
| get_social_media_download_options | List temporary MP4 and MP3 options for a public YouTube, Instagram, or TikTok URL. No API key required |
| prepare_social_media_download | Select one quality and return its temporary download URL. No API key required |
| publish_post | Publish, schedule, reply on X or Threads, or create a thread on X, Threads, or Mastodon |
| list_posts | List posts with optional status filter and pagination |
| get_post | Get full details of a specific post |
| reschedule_post | Change the scheduled date of a pending post |
| delete_post | Delete a post (cancels schedule if pending) |
| create_recurring_post | Create a daily, weekly, or monthly recurring post series |
| list_recurring_posts | List recurring series, their next run, accounts, and latest result |
| update_recurring_post | Update future content, media, cadence, or the next occurrence |
| list_workspaces | List workspaces available to the current credential |
| list_accounts | List connected social accounts, grouped by workspace for OAuth |
| get_platform_limits | Get content limits for a platform |
| upload_media | Upload a local file to the media library (handles presigned URL + upload + finalize in one call) |
| list_media | List uploaded media files |
| delete_media | Delete a media file |
| get_google_business_search_terms | Read monthly location discovery keywords and privacy thresholds |
| get_analytics_overview | Read account KPIs, rankings, comparisons, and data availability |
| list_post_performance | List performance for posts published through dopost |
| get_post_performance | Read metrics and cumulative snapshots for one post |
| get_content_insights | Read Best Time, Best Day, Format Opportunity, and Platform Pulse |
| get_audience_analytics | Read available audience breakdowns |
Analytics tools require the analytics:read scope and an active paid plan. Existing credentials are not upgraded automatically; create a new API key with the scope or reauthorize the remote MCP client. Reconnect clients that cache the old tool schema.
How it works
AI Agent (Claude, Copilot, Cursor...)
│
▼
MCP Client (inside the host app)
│ stdio (JSON-RPC 2.0)
▼
@dopost/mcp-server ← this package
│ HTTPS
▼
dopost REST API (dopost.co/api/v1/*)The server uses stdio transport. The MCP host spawns it as a child process and communicates via stdin/stdout using JSON-RPC 2.0. Each tool calls a documented dopost REST API endpoint. Download tools return temporary URLs rather than transporting large binary files through MCP.
Development
# Run directly with tsx (no build step)
DOPOST_API_KEY=your-key npm run dev
# Build and run compiled JS
npm run build
DOPOST_API_KEY=your-key npm startBased on
Google Business and workspace dates
Connect verified locations in dopost first and use the returned accountId. Unzoned dates use the workspace timezone; explicit Z/offset dates retain their instant. Publishing supports standard updates, events, offers and gallery media. Events/offers may omit text/media; PROFILE/COVER require photos and gallery video must be MP4. Recurring supports standard updates only. See the Google Business API guide.
Overview exposes GOOGLE_BUSINESS daily Search/Maps and action metrics. Monthly search terms preserve location identity and privacy thresholds and support pagination. They use the existing analytics:read scope and do not call Google.
Use get_google_business_search_terms; reconnect clients with cached schemas after deployment.
