MCP tool reference
All 20 tools, grouped as the server registers them. Arguments use the same names and types as the REST API — an MCP tool is a thin wrapper over the corresponding endpoint.
Every tool returns the endpoint’s JSON response. Failures come back as tool errors carrying the API’s code and message (see Errors) rather than ending the turn, so the assistant can correct itself and retry.
Workspace
Section titled “Workspace”nativpost_get_account
Section titled “nativpost_get_account”Plan, subscription state and feature limits. No arguments.
Wraps GET /api/v1/me. Call it first when a request might hit a plan limit.
nativpost_get_brand_profile
Section titled “nativpost_get_brand_profile”Brand name, industry, audience, tone sliders, vocabulary, forbidden words, colors and hashtag strategy. No arguments.
Wraps GET /api/v1/brand-profile. Read this before drafting copy.
nativpost_update_brand_profile
Section titled “nativpost_update_brand_profile”Wraps PATCH /api/v1/brand-profile. Send only what changes.
| Argument | Type | Notes |
|---|---|---|
brand_name | string | 1–160 chars. |
industry | string | null | Up to 80 chars. |
target_audience | string | null | Up to 500 chars. |
company_description | string | null | Up to 2000 chars. |
website_url | string | null | Must be a URL. |
tone_formality | integer | 0 = casual, 10 = formal. |
tone_humor | integer | 0 = serious, 10 = playful. |
tone_energy | integer | 0 = calm, 10 = high energy. |
vocabulary | string[] | Words the brand favours. Max 100. |
forbidden_words | string[] | Words the brand must never use. Max 100. |
primary_color / secondary_color / accent_color | string | null | |
hashtag_strategy | string | null | Up to 500 chars. |
nativpost_list_social_accounts
Section titled “nativpost_list_social_accounts”Connected platforms, usernames and active state. No arguments.
Wraps GET /api/v1/social-accounts. A post can only target a platform that appears here.
nativpost_list_media
Section titled “nativpost_list_media”Uploaded assets with URLs, dimensions and tags.
| Argument | Type | Notes |
|---|---|---|
limit | integer | 1–100. Default 25. |
cursor | string | From a previous next_cursor. |
Wraps GET /api/v1/media-library. Use the returned url values in nativpost_create_content.
nativpost_list_templates
Section titled “nativpost_list_templates”Approved templates from the shared library, with source platform, content type, engagement metrics and niches.
| Argument | Type | Notes |
|---|---|---|
limit | integer | 1–100. Default 25. |
cursor | string | From a previous next_cursor. |
Wraps GET /api/v1/templates.
nativpost_get_analytics
Section titled “nativpost_get_analytics”Published totals and a per-platform breakdown for a trailing window.
| Argument | Type | Notes |
|---|---|---|
days | integer | 1–365. Default 30. Capped by the plan’s analytics history. |
Wraps GET /api/v1/analytics/overview.
nativpost_list_webhooks
Section titled “nativpost_list_webhooks”Registered webhook endpoints with their events and enabled state. No arguments.
Wraps GET /api/v1/webhooks.
Content
Section titled “Content”nativpost_list_content
Section titled “nativpost_list_content”| Argument | Type | Notes |
|---|---|---|
status | string | e.g. draft, approved, scheduled, published. |
content_type | enum | See below. |
limit | integer | 1–100. Default 25. |
cursor | string | From a previous next_cursor. |
Wraps GET /api/v1/content. Newest first.
nativpost_get_content
Section titled “nativpost_get_content”| Argument | Type | Notes |
|---|---|---|
id | string | Required. Content id (UUID). |
Wraps GET /api/v1/content/{id}.
nativpost_create_content
Section titled “nativpost_create_content”| Argument | Type | Notes |
|---|---|---|
caption | string | Required. 1–4000 chars. |
content_type | enum | Default single_image. |
hashtags | string[] | Without the leading #. Max 50. |
topic | string | Up to 280 chars. |
media_urls | string[] | Absolute URLs, in order. Max 20. |
target_platforms | string[] | Max 10. Must be connected. |
platform_specific | object | Per-platform overrides, keyed by platform. |
aspect_ratio | string | e.g. 9:16, 1:1. |
scheduled_for | string | ISO 8601. Pair with status: "scheduled". |
status | enum | draft (default), pending_review, approved, scheduled. |
Valid content_type values: text_only, single_image, slideshow, reel, talking_head, video_hook, video_hook_demo, carousel.
Wraps POST /api/v1/content.
nativpost_update_content
Section titled “nativpost_update_content”Same fields as create, all optional, plus id (required). status additionally accepts rejected. Setting status to approved is what makes an item eligible to publish.
Wraps PATCH /api/v1/content/{id}.
nativpost_delete_content
Section titled “nativpost_delete_content”| Argument | Type | Notes |
|---|---|---|
id | string | Required. |
Wraps DELETE /api/v1/content/{id}. Archives the item. Marked destructive — prefer status: "rejected" if it might be wanted back.
nativpost_publish_content
Section titled “nativpost_publish_content”| Argument | Type | Notes |
|---|---|---|
id | string | Required. |
scheduled_for | string | ISO 8601. Omit to publish immediately. |
Wraps POST /api/v1/content/{id}/publish. Marked open-world — this posts to live social accounts. The item must be approved, and must have media for content types that require it.
Campaigns
Section titled “Campaigns”nativpost_list_campaigns
Section titled “nativpost_list_campaigns”| Argument | Type | Notes |
|---|---|---|
limit | integer | 1–100. Default 25. |
cursor | string | From a previous next_cursor. |
Wraps GET /api/v1/campaigns.
nativpost_get_campaign
Section titled “nativpost_get_campaign”| Argument | Type | Notes |
|---|---|---|
id | string | Required. Campaign id (UUID). |
Wraps GET /api/v1/campaigns/{id}.
nativpost_create_campaign
Section titled “nativpost_create_campaign”| Argument | Type | Notes |
|---|---|---|
name | string | Required. 1–160 chars. |
description | string | Up to 1000 chars. |
posts_per_day | integer | 1–50. Default 3. |
campaign_length_days | integer | 1–365. Default 7. |
start_date | string | ISO 8601. Defaults to tomorrow. |
content_mix | object | Content type → percentage weight. |
content_mix keys are camelCase: ugc, slideshow, talkingHead, videoHookDemo, greenScreen, videoHook, carousel. For example {"ugc": 25, "talkingHead": 25, "videoHookDemo": 50}.
Creating a campaign defines the plan only — no posts exist until it is launched.
Wraps POST /api/v1/campaigns.
nativpost_update_campaign
Section titled “nativpost_update_campaign”Same fields as create, all optional, plus id (required) and status.
Wraps PATCH /api/v1/campaigns/{id}.
nativpost_delete_campaign
Section titled “nativpost_delete_campaign”| Argument | Type | Notes |
|---|---|---|
id | string | Required. |
Wraps DELETE /api/v1/campaigns/{id}. Marked destructive. Posts already generated are not deleted with it.
nativpost_launch_campaign
Section titled “nativpost_launch_campaign”| Argument | Type | Notes |
|---|---|---|
id | string | Required. |
Wraps POST /api/v1/campaigns/{id}/launch. Marked open-world — starts generation, which consumes plan quota and AI credits.
Generation is asynchronous. Poll nativpost_get_campaign and watch generated_posts.
A typical flow
Section titled “A typical flow”nativpost_get_brand_profile— so the copy sounds like the brand.nativpost_list_social_accounts— confirm the target platform is connected.nativpost_list_media— get real asset URLs.nativpost_create_content— write the draft.- Show the user, then
nativpost_update_contentwithstatus: "approved". nativpost_publish_content— withscheduled_forto queue, or bare to post now.