Skip to content
Wahlu API

MCP Server

Read and manage content through hosted MCP. The local server update adds the same tools.

Wahlu's public MCP connector exposes 38 intention-level production tools backed by the same SDK and contracts as the REST API. The local stdio package adds get_plans and upload_media_from_file for an exact 40-tool inventory. Wahlu's isolated held policy remains fixed at 11 tools.

Connect with the hosted MCP URL

Use Wahlu from an agent that supports custom remote MCP connections. Your agent can read your media and calendar, create drafts, schedule posts and check publishing results.

Hosted MCP URL
https://mcp.wahlu.com/mcp
  1. Add a custom remote MCP connection in your agent's settings.
  2. Enter the hosted MCP URL above and choose OAuth authentication.
  3. Sign in to Wahlu and choose the workspace, brands and permissions you want the agent to use.

To let your agent set this up, give it wahlu.com/connect. That guide has the steps for Claude, ChatGPT, Claude Code, Codex, VS Code, Cursor and Gemini CLI. See the MCP server page for every tool and the permission it needs.

The hosted connection uses Wahlu sign-in, not an API key. Custom connection availability depends on your agent's settings and workspace policy.

Claude directory app: Coming soon. ChatGPT directory app: Coming soon. These listings are separate from the hosted MCP connection, which is available now.

To revoke hosted access, open Wahlu agent connections and disconnect the matching grant. This does not disconnect your social accounts from Wahlu.

Connect a local MCP client

Local server 0.18.0 is available on npm and requires Node.js 20 or later. Create a Wahlu API key with only the scopes and brands the workflow needs, then configure your local MCP host to launch the current public package over stdio:

Version 0.18.0 adds posting to Meta's Threads app; 0.17.0 added Pinterest, with a Pinterest account's boards from refresh_target_dynamic_options; 0.16.0 added Telegram, Discord, Tumblr and X/Bluesky threads; 0.15.0 added Bluesky and 0.14.0 added X, active Autopilot plan discovery and media pagination. Older installed versions expose fewer tools and reject responses that name a newer network, so update before you connect one.

MCP host configuration
{
  "command": "npx",
  "args": ["-y", "@wahlu/mcp-server@latest"],
  "env": {
    "WAHLU_API_KEY": "wahlu_live_your_api_key_here"
  }
}

Keep the key in the host's secret environment rather than in a shared configuration file or prompt. The package connects to https://api.wahlu.com by default.

Canonical tool inventory

IntentTools
Discoveryget_context, list_targets, refresh_target_dynamic_options, get_platform_capabilities
Brandget_brand_context (voice, audience, content pillars, brand kit and Link in bio page, read-only), list_labels
Mediaimport_media_from_url, list_media, get_media, create_media_repair_derivative, upload_media, upload_media_from_file (local stdio only)
Contentlist_content_items, get_content_item, create_draft, update_draft_tiktok_privacy, preflight_draft
Scheduleslist_schedules, create_schedule, get_schedule, get_publish_run_receipt, reschedule_schedule, cancel_schedule
Draft managementlist_drafts, update_draft, delete_draft
Historylist_history
Link in bioget_bio_page, get_bio_stats
Autopilotget_autopilot_plan, get_autopilot_week, approve_autopilot_item, regenerate_autopilot_item, resolve_autopilot_fact_flag
Notificationslist_notifications
Schedule reviewapprove_schedule, move_schedule_to_draft, delete_schedule
Cleanupcleanup_provider_publications (production only; exact receipt-bound authority)

The isolated held policy exposes 11 tools and restricts new schedules to pending_review. It includes schedule and receipt lookup, but excludes draft edits, History, Link in bio, Autopilot, notifications, schedule review, collection browsing, rescheduling, cancellation, byte uploads, live TikTok options, TikTok privacy updates and publication cleanup. Tool results preserve the API's errors, request metadata and idempotency replay status.

History needs publications:read; notifications need notifications:read. They are separate OAuth permissions and may need a fresh connection. Standard new API keys do not offer these scopes. If a read is denied, show the permission error rather than reporting an empty History or inbox.

The hosted connector excludes subscription catalogue discovery and upgrade links under OpenAI directory policy. It explains unavailable features without changing billing. General local stdio clients retain get_plans; public API and CLI catalogue discovery remain separate.

Safety boundary

For a TikTok draft, call list_targets, then pass the selected brand and exact TikTok integration_id to refresh_target_dynamic_options. Choose only a returned privacy value and send it with that same integration ID to update_draft_tiktok_privacy. Wahlu validates the value against a fresh target-specific provider read immediately before updating only tiktok_settings.privacy_level on the existing draft. A stale or unsupported value fails clearly; Wahlu never guesses PUBLIC_TO_EVERYONE. Rerun preflight_draft against the same draft ID afterwards.

Dynamic-option discovery requires the explicit integrations:write permission because its live provider-backed refresh may rotate stored credentials, update provider-effect lease state, or mark the integration for reauthorisation.

The privacy update creates no replacement draft, Schedule, Job, or provider post.

Draft preflight is write-free. Schedule creation requires an explicit approval state and caller-owned idempotency key. A pending_review Schedule is held and creates no execution, job, or provider effect. An approved Schedule additionally requires publish:execute (the Publishing permission) and may later post to your connected social media accounts.

Receipt lookup returns redacted per-platform outcomes for one exact Schedule/run. Production cleanup is available only through the cleanup authority from that bounded receipt and requires publish:execute; the held surface never returns that authority or its cleanup link.

See the discovery and preflight reference and Schedule reference.

For the complete non-publishing flow, follow the held Schedule recipe.

Review each change first

Draft edits change only the name and caption of an unused draft. New writes need an idempotency key and an exact item ID confirmation. Schedule approval also needs Publishing permission. Moving a schedule to drafts needs content-write and schedule-write permission. Deleting a schedule never removes a post from a social account.

Both Autopilot writes need a paid plan. Approval approves an idea without scheduling it. Topic regeneration does not make images or videos. See the drafts, History and planning reference.

Actions to use the Wahlu app for

Use the Wahlu app to manage queues, change draft media or platform settings, edit your Link in bio page, or design in the Editor. Insights and comment-to-DM are not exposed through these tools.