vibemarketing-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Verify the Vibe Marketing MCP server is reachable. Returns the configured base URL and the MCP package version. No auth required. Use this if you suspect connectivity issues before assuming a deeper failure. |
| connectA | Explicitly start the Vibe Marketing sign-in flow. This opens the user's browser to the consent screen. Use this when the user says something like 'connect to vibe marketing' or after |
| disconnectA | Forget the locally stored Vibe Marketing tokens. The user will be prompted to consent again on the next API-using tool call. This does NOT revoke the grant server-side — to fully revoke, the user must use Settings → Connected Apps on vibemarketing.to. Use this when the user says 'log out', 'disconnect', or 'forget my credentials'. |
| whoamiA | Return info about the active Vibe Marketing connection: workspace, granted scopes, when the connection was made, when it was last used. Triggers the consent flow if not connected. Useful when the user asks "am I connected" or "which workspace am I using". |
| create_draftA | Create a new draft post in the user's Vibe Marketing workspace. The draft lands in 'pending' status awaiting owner approval — it does NOT publish automatically. Use this whenever the user wants to draft a social post. Required: contentType ('reel'|'photo'|'carousel'), caption (string), platforms (array of 'instagram'|'tiktok'|'youtube'|'linkedin'|'bluesky'|'threads'), and mediaItems (array of {url, mimeType, sizeBytes}). For now mediaItems must reference URLs that are already publicly accessible — uploading new files from a chat is not yet supported. After creation, the draft appears in the user's Review queue on vibemarketing.to and they (or you, via approve_and_publish_now / approve_and_schedule) can move it forward. |
| approve_and_publish_nowA | Approve a pending draft AND publish it immediately to its target platforms. Owner-only — if the connected user is not the workspace owner this returns a 403. Use this when the user says 'publish this now', 'send it out', or 'go ahead and post'. The draft must currently be in 'pending' status. Returns the updated draft including the per-platform publish results. For scheduled publishing instead, use approve_and_schedule. |
| approve_and_scheduleA | Approve a pending draft AND schedule it to publish at a future time. Owner-only. Use this when the user wants to queue a post — 'schedule for Friday 9am', 'post next Monday morning', etc. The cron checks scheduled drafts every minute and publishes them at the scheduled time (catching up if the server was down). The scheduledFor value must be an ISO 8601 datetime; use the user's stated timezone if they give one, otherwise the workspace timezone. The draft must currently be in 'pending' status. For immediate publishing, use approve_and_publish_now instead. |
| reject_draftA | Reject a pending draft so the submitter knows it won't publish. Owner-only. Use when the user says 'reject this', 'this one's no good', or describes a problem with a draft. Optional reason (one of: thumbnail_weak, caption_rewrite, wrong_platform, off_brand, duplicate) and optional free-text comment that explains the rejection — both surface in the employee's view of the draft. Leave reason null and explain via comment if none of the five categories fit. The draft must currently be in 'pending' status. Rejection is undoable via the existing undo journal in the web UI for ~10 seconds after the action. |
| list_draftsA | List drafts in the user's workspace. Use this whenever the user asks 'what's in my drafts', 'show me pending posts', 'what's scheduled', etc. All filters are optional and AND together. Returns { drafts: Draft[], nextCursor, total } — |
| get_draftA | Fetch a single draft by id. Returns the full Draft including mediaItems, platformOverrides, publish results (if published), and rejection info (if rejected). Use this when the user references a specific draft and you need its full state. Returns 404 if not in the user's workspace or soft-deleted (deleted drafts can be fetched if needed by inspecting the list with status:['deleted']). |
| get_draft_auditA | Fetch the audit trail for a single draft: who submitted it, when, who approved/rejected/scheduled/published it, with timestamps and actor names. Use this when the user asks 'what happened to this draft', 'who approved this', or wants to debug a publish that didn't fire. Returns an ordered list of audit events. |
| get_calendar_dayA | Fetch all drafts for a single calendar day (in the workspace's timezone). Use this when the user asks 'what's going out tomorrow', 'show me Friday's posts', or wants to inspect a specific date in the calendar. Returns the full Draft[] for that day, sorted by their effective time (scheduledFor if scheduled, publishedAt if published, submittedAt otherwise). Empty array if no drafts that day (never 404). Optional filters mirror list_drafts. |
| get_calendar_weekA | Fetch the calendar aggregate for one week (Monday → Sunday). Returns |
| list_notificationsA | List the current user's notifications (notifications are per-user, scoped to the user's workspace). Use this for 'do I have any notifications', 'what got rejected recently', 'show me the bell' type queries. Returns a Notification[] sorted by creation time (newest first), capped at 200 rows. Pass unsurfacedOnly:true to return only ones the user hasn't seen yet (the equivalent of the unread bell badge). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Each tool has a distinct purpose: draft lifecycle (create, get, list, reject, approve variants), calendar views, notifications, and auth utilities. Even similar functions like approve_and_publish_now vs approve_and_schedule are clearly separated by immediate vs scheduled action, and get_calendar_day vs get_calendar_week serve different granularities.
Tools mostly follow a verb_noun snake_case pattern (get_draft, list_drafts, create_draft, reject_draft). Some deviation exists with compound actions like approve_and_publish_now and utility verbs like ping/whoami/connect, but the style is consistent and readable.
14 tools is well within the ideal 3-15 range. Each tool serves a clear function in the workspace workflow: auth, draft management, calendar views, and notifications. No redundancy or excessive compartmentalization.
Core lifecycle is covered: create, read, approve, reject, publish, schedule, and calendar aggregation. However, there is no update_draft or delete_draft, and no way to cancel a scheduled post or edit an existing draft. Media upload is explicitly unsupported, requiring external URLs. These gaps mean agents cannot handle edits or deletions.