# @markaestro/mcp

Model Context Protocol server that lets AI agents schedule, publish, and review Markaestro posts through the public API

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 0.2.2
- **Author:** Unknown
- **License:** MIT
- **npm:** @markaestro/mcp
- **Endpoints:** streamable-http https://markaestro.com/api/public/v1/mcp
- **Source:** https://github.com/markaestro/markaestro-agents
- **Endpoint health:** reachable (last checked 2026-09-24T09:57:31.207Z, 1 sample) — uptime is not a security property and is not part of the trust score
- **Compatible clients:** claude-code, cursor, copilot, chatgpt, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-24T19:07:31.368Z
- **Version scanned:** 0.3.2
- **CVEs:** none found by OSV at scan time

## Tools

35 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `list_products` — List the brands (products) this connection can act on, with their connected channels: one brand for a single-brand connection, every brand in the workspace for 
- `list_destinations` — List the publishable destinations (Facebook Page, Instagram account, TikTok account, ...) of a brand, with their ids and delivery modes. Use a destinationId on 
- `get_brand_profile` — A brand's description, website, categories, voice, and visual identity as set in Markaestro. Read it before writing captions so they sound like the brand. Read-
- `list_posts` — List posts, newest first. Filter by status: draft, scheduled, publishing, published, platform_action_required, failed, partial_failed. On an all-brands connecti
- `get_post` — Fetch one post with its targets, status, media, schedule, publish results, and live URL when published.
- `update_post` — Change a draft or scheduled post: its caption, its media, one channel's settings (settings.__type names the channel), or, for a scheduled post, its time. Omitte
- `create_post` — Create a post for this brand. Without scheduledAt the post is saved as a DRAFT and nothing is published; with scheduledAt it is scheduled and the worker publish
- `publish_post` — Queue an immediate publish of a draft post. Returns a job run; poll get_job_run until status is succeeded or failed. For manual_reminder targets this queues a r
- `mark_post_posted` — Record that a person has posted a manual-reminder or TikTok-inbox post natively, which moves it from platform_action_required to published. Only for posts in pl
- `delete_post` — Delete a draft, or cancel a scheduled, failed, or waiting-to-be-posted post before it reaches any platform. Published posts cannot be deleted or taken down from
- `bulk_posts` — Apply one action to up to 25 posts: reschedule (needs scheduledAt), or status (draft or scheduled). Per-post failures are reported individually. To remove posts
- `create_posts` — Create up to 25 posts in one call, for example a week of scheduled content. Each item takes the same fields as create_post. Failures are per item: the response 
- `preview_evergreen_queue` — Check whether a published post has mature measured performance and get a recommended Evergreen cadence. This does not create or schedule anything.
- `list_evergreen_queues` — List this brand's Intelligent Evergreen queues and their activation evidence, cadence, next run, and status.
- `get_evergreen_queue` — Get one Intelligent Evergreen queue including its caption variants.
- `create_evergreen_queue` — Create a draft Evergreen queue from an eligible published post. Creation does not activate it or schedule anything; activate_evergreen_queue does that separatel
- `update_evergreen_queue` — Update a queue's cadence, review policy, expiry, name, or full caption-variant set. Pass the current version from get_evergreen_queue; a stale version is reject
- `activate_evergreen_queue` — Activate a draft or paused queue. This schedules future public posts. The user must have confirmed the caption variants (contentConfirmed on create_evergreen_qu
- `pause_evergreen_queue` — Pause a queue and unschedule any pending occurrence generated by it.
- `resume_evergreen_queue` — Resume a paused queue and compute its next occurrence from the current time.
- `list_evergreen_runs` — List the generated occurrences and evaluation outcomes for a queue.
- `get_evergreen_analytics` — Get source metrics, queue-lifetime metrics, tracked clicks, attributed conversions, and recent run outcomes. Unavailable provider metrics are null, not zero.
- `get_analytics`
- `list_post_analytics`
- `get_post_analytics_history` — How one post earned its numbers over time: the metric snapshots taken 1h, 6h, 24h, 72h, 7d, 14d, 30d, 60d, and 90d after publish (a post published directly on t
- `refresh_analytics` — Pull live metrics from the platforms now instead of waiting for the next scheduled poll: posts in the window (optionally one channel, or one brand on an all-bra
- `suggest_post_times` — When this brand's audience responds best, learned by Markaestro Intelligence from the brand's own post history (not an industry table). timing is null until the
- `upload_media`
- `list_media` — List uploaded media assets with their ids, type, dimensions, and how many posts reference them.
- `get_media` — Fetch one media asset: type, dimensions, processing state, thumbnail, and how many posts reference it.
- `get_job_run` — Check the status of a publish run returned by publish_post: queued, running, succeeded, or failed, with the message and details.
- `list_job_runs` — List recent publish runs, optionally filtered by status or by the post id (resourceId).
- `get_channel_rules` — The per-channel media, caption, and delivery-mode rules the API enforces, plus the draft-then-publish model. Read before creating posts.
- `get_tiktok_posting_options` — The connected TikTok creator's live posting options: allowed privacy levels, whether comments, duets, and stitches can be enabled, and the longest video. TikTok
- `markaestro`

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@markaestro/mcp\"\n      ],\n      \"env\": {\n        \"MARKAESTRO_API_KEY\": \"<YOUR_MARKAESTRO_API_KEY>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `MARKAESTRO_API_KEY` — Markaestro API Key (required)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 1 credential (1 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Extensive blast radius — deletes data; runs locally and hosted.
- Floor 57, ceiling 57 (tier: extensive)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40markaestro%2Fmcp
- Install plan: https://forgeregistry.com/api/v1/packages/%40markaestro%2Fmcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40markaestro%2Fmcp
- HTML page: https://forgeregistry.com/registry/%40markaestro%2Fmcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
