Saved drafts are available on every Mallary plan and are separate from publishing. Use draft tools to save, read, edit and delete unpublished content. Never submit a draft without an explicit request to publish or schedule it. Use Mallary only for explicit Mallary requests. Prefer read-only tools first. Before publishing, editing a scheduled post, replying, deleting, disconnecting, changing settings, or creating webhooks, show the exact action and wait for user confirmation. Read the current post and revision before editing. To change destinations, specify one target profile and the complete final platform list. Do not silently retry consequential writes or revision conflicts. Never request or reveal API keys, OAuth tokens, webhook secrets, or unrelated account data.
Protocol
Pass100/10020 / 20 pts
Connection, authentication, and protocol compatibility.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Create a temporary presigned URL for uploading image or video bytes to Mallary. This tool creates the URL only and does not upload a file. Upload the raw file bytes with a PUT request to uploadUrl and include every header in the returned headers object. For MP4 files, use Content-Type: video/mp4. After the upload succeeds, use mediaUrl to create the post.
The description explains the capability, when to use it, and what to expect.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
filename
Not provided
Missing description. Explain what this value means and how to supply it.
size
Not provided
Missing description. Explain what this value means and how to supply it.
type
The file's media type, such as video/mp4. Recommended. If omitted, Mallary uses a supported filename extension. Send type when the extension is missing or unknown.
{
"name": "mallary_create_upload_url",
"title": "Create media upload URL",
"description": "Create a temporary presigned URL for uploading image or video bytes to Mallary. This tool creates the URL only and does not upload a file. Upload the raw file bytes with a PUT request to uploadUrl and include every header in the returned headers object. For MP4 files, use Content-Type: video/mp4. After the upload succeeds, use mediaUrl to create the post.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"filename"
],
"properties": {
"size": {
"type": "integer",
"exclusiveMinimum": 0
},
"type": {
"type": "string",
"description": "The file's media type, such as video/mp4. Recommended. If omitted, Mallary uses a supported filename extension. Send type when the extension is missing or unknown."
},
"filename": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ok",
"tool",
"http_status"
],
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {},
"tool": {
"type": "string",
"minLength": 1
},
"http_status": {
"type": "integer",
"maximum": 599,
"minimum": 100
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create media upload URL",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Submit content for immediate publishing or scheduling on the user's connected social accounts. Upload media with mallary_create_upload_url, finish the upload, and use the returned files.mallary.ai media URL. External media URLs are rejected. By default this runs preflight first and fails fast if checks block publishing. If preflight blocks the post, resolve its blocking_checks and keep preflight enabled. If trial_posting_throttled is returned, respect details.retry_after and do not automatically retry. Returns Mallary job IDs immediately; platform_post_id and platform_post_url are available after publishing through job lookup and post listing.
The description explains the capability, when to use it, and what to expect.
Inputs11/100
10 of 70 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Clear enough to supply this argument.
platforms
Not provided
Missing description. Explain what this value means and how to supply it.
message
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › url
Mallary-hosted media URL returned after uploading the file with mallary_create_upload_url.
Clear enough to supply this argument.
media › items › type
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › signedUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › storageKey
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnail_url
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnailUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › size
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › bytes
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › duration
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › width
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › height
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › alt_text
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › altText
Not provided
Missing description. Explain what this value means and how to supply it.
comments_under_post › items › anyOf › 1 › content
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › twitter › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › link
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › pageId
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › title
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › shareToFeed
For Instagram Reels only. Defaults to true. Set false to keep the Reel off the profile feed.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Set true when the video contains realistic AI-generated or altered content that could be mistaken for real people, places, or events.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › youtube › tags
YouTube video tags. Each tag can use up to 100 characters. YouTube allows 500 characters total after counting separators and quotes around tags with spaces. Exact duplicates are removed before upload.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › youtube › playlist_id
Existing playlist owned by the connected YouTube channel.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › tiktok › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › media_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › post_mode
Defaults to DIRECT_POST. Use MEDIA_UPLOAD only to finish publishing in TikTok.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › tiktok › source
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › title
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › description
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › privacy_level
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_comment
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_duet
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_stitch
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Fetch a single job status by ID, including platform_post_id and platform_post_url when the platform has published the post. Check result.warnings and result.config_issue: a successful Instagram post may be missing its caption or user tags. Report the warning and do not republish the post.
The description explains the capability, when to use it, and what to expect.
Inputs0/100
0 of 1 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
id
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Available on every Mallary plan. Save an unpublished Mallary draft. No date or destination platforms are required. This saves content to the user's Mallary account; it never publishes, schedules, or consumes posting usage. Upload approved media first. Use only for a clear request to save a draft.
The description explains the capability, when to use it, and what to expect.
Inputs12/100
10 of 66 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Clear enough to supply this argument.
platforms
Not provided
Missing description. Explain what this value means and how to supply it.
message
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › url
Mallary-hosted media URL returned after uploading the file with mallary_create_upload_url.
Clear enough to supply this argument.
media › items › type
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › signedUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › storageKey
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnail_url
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnailUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › size
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › bytes
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › duration
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › width
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › height
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › alt_text
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › altText
Not provided
Missing description. Explain what this value means and how to supply it.
comments_under_post › items › anyOf › 1 › content
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › twitter › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › link
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › pageId
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › title
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › shareToFeed
For Instagram Reels only. Defaults to true. Set false to keep the Reel off the profile feed.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Set true when the video contains realistic AI-generated or altered content that could be mistaken for real people, places, or events.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › youtube › tags
YouTube video tags. Each tag can use up to 100 characters. YouTube allows 500 characters total after counting separators and quotes around tags with spaces. Exact duplicates are removed before upload.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › youtube › playlist_id
Existing playlist owned by the connected YouTube channel.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › tiktok › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › media_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › post_mode
Defaults to DIRECT_POST. Use MEDIA_UPLOAD only to finish publishing in TikTok.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › tiktok › source
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › title
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › description
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › privacy_level
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_comment
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_duet
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_stitch
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Available on every Mallary plan. List saved unpublished drafts in one connection profile, with pagination. Omit profile_id for the default profile. Drafts are separate from published and scheduled posts.
Describe the returned information so the agent knows whether it will answer the request.
Inputs25/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Explain what happens when this optional value is omitted.
page
Not provided
Missing description. Explain what this value means and how to supply it.
per_page
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Available on every Mallary plan. Read one saved draft by its UUID, including complete content, profile, destinations and current revision. Read before editing, deleting, or submitting.
The description explains the capability, when to use it, and what to expect.
Inputs38/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
id
Not provided
Missing description. Explain what this value means and how to supply it.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Available on every Mallary plan. Edit a saved draft using its current expected_revision. Omitted fields are preserved; supplied lists and platform_options replace their complete saved values. You can change the single profile_id and complete platforms list. Never silently remove unsupported saved options. Conflicts require reading again. This never publishes or schedules.
The description explains the capability, when to use it, and what to expect.
Inputs12/100
10 of 68 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Clear enough to supply this argument.
platforms
Not provided
Missing description. Explain what this value means and how to supply it.
message
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › url
Mallary-hosted media URL returned after uploading the file with mallary_create_upload_url.
Clear enough to supply this argument.
media › items › type
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › signedUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › storageKey
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnail_url
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnailUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › size
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › bytes
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › duration
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › width
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › height
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › alt_text
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › altText
Not provided
Missing description. Explain what this value means and how to supply it.
comments_under_post › items › anyOf › 1 › content
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › twitter › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › link
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › pageId
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › facebook › title
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › instagram › shareToFeed
For Instagram Reels only. Defaults to true. Set false to keep the Reel off the profile feed.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Set true when the video contains realistic AI-generated or altered content that could be mistaken for real people, places, or events.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › youtube › tags
YouTube video tags. Each tag can use up to 100 characters. YouTube allows 500 characters total after counting separators and quotes around tags with spaces. Exact duplicates are removed before upload.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › youtube › playlist_id
Existing playlist owned by the connected YouTube channel.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › tiktok › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › post_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › media_type
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › post_mode
Defaults to DIRECT_POST. Use MEDIA_UPLOAD only to finish publishing in TikTok.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › tiktok › source
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › title
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › description
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › privacy_level
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_comment
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_duet
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › tiktok › disable_stitch
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Available on every Mallary plan. Delete a saved unpublished draft using its current expected_revision. This permanently removes the draft, not any published social post. Requires the user's clear deletion request.
The description explains the capability, when to use it, and what to expect.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
id
Not provided
Missing description. Explain what this value means and how to supply it.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Clear enough to supply this argument.
expected_revision
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Available on every Mallary plan. Publish a saved draft now, or schedule it with scheduled_at and optional scheduled_timezone. Requires the user's explicit publishing or scheduling request for the saved content, profile, destinations and time. Read the draft first. Normal plan, account and platform checks apply. A retry with identical revision and schedule returns the same publishing jobs. Never use this to save a draft.
The description explains the capability, when to use it, and what to expect.
Inputs20/100
1 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
id
Not provided
Missing description. Explain what this value means and how to supply it.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Clear enough to supply this argument.
expected_revision
Not provided
Missing description. Explain what this value means and how to supply it.
scheduled_at
Not provided
Missing description. Explain what this value means and how to supply it.
scheduled_timezone
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
List grouped posts with per-platform status, platform post IDs, and platform post URLs when available. Check each result's warnings and config_issue: a successful Instagram post may be missing its caption or user tags. Report the warning and do not republish the post.
The description explains the capability, when to use it, and what to expect.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Clear enough to supply this argument.
page
Not provided
Missing description. Explain what this value means and how to supply it.
per_page
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Get the complete saved post group by its stable numeric Mallary post ID. Returns its edit revision, eligibility, current connection profile, destination accounts, message, media, platform options, and schedule. Read this before editing a scheduled post.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
id
Stable numeric Mallary post ID from mallary_list_posts or mallary_get_post. Do not use a social platform post ID or batch ID.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Edit one scheduled post group before any destination begins publishing. First use mallary_get_post for the current revision and saved fields. Omit unchanged fields. If sending media, comments_under_post, or platform_options, include each field's complete final value so existing items are not lost. To change destinations, send destinations.profile_id and the complete final destinations.platforms list together; one profile applies to the whole group. Check mallary_list_profiles and mallary_list_platforms for the chosen profile. Never guess a target profile, silently drop a platform, or retry a revision conflict without reading the post again. This changes real future social publishing and requires the user's clear request.
The description explains the capability, when to use it, and what to expect.
Inputs15/100
13 of 69 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
id
Stable numeric Mallary post ID from mallary_list_posts or mallary_get_post. Do not use a social platform post ID or batch ID.
Clear enough to supply this argument.
expected_revision
Revision returned by mallary_get_post. If another edit or publishing wins first, Mallary returns a conflict.
Clear enough to supply this argument.
message
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › url
Mallary-hosted media URL returned after uploading the file with mallary_create_upload_url.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
media › items › type
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › signedUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › storageKey
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnail_url
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › thumbnailUrl
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › size
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › bytes
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › duration
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › width
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › height
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › alt_text
Not provided
Missing description. Explain what this value means and how to supply it.
media › items › altText
Not provided
Missing description. Explain what this value means and how to supply it.
comments_under_post › items › anyOf › 1 › content
Not provided
Missing description. Explain what this value means and how to supply it.
scheduled_at
Not provided
Missing description. Explain what this value means and how to supply it.
scheduled_timezone
Not provided
Missing description. Explain what this value means and how to supply it.
auto_reply_enabled
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › anyOf › 0 › twitter › message
Not provided
Missing description. Explain what this value means and how to supply it.
platform_options › anyOf › 0 › facebook › message
Not provided
Missing description. Explain what this value means and how to supply it.
Set true when the video contains realistic AI-generated or altered content that could be mistaken for real people, places, or events.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
platform_options › anyOf › 0 › youtube › tags
YouTube video tags. Each tag can use up to 100 characters. YouTube allows 500 characters total after counting separators and quotes around tags with spaces. Exact duplicates are removed before upload.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
List comments and replies on Mallary-published posts only. Use each comment's concrete post_id and id to reply. Instagram returns parent_comment_id, is_reply, has_own_reply, replies_complete, hidden, and visibility. has_own_reply=null means unknown, not unanswered. A hidden or unverified own reply must not trigger another reply; check it in Instagram. For grouped posts, limit is per platform: use each platform_pagination entry's post_id, platform, and pagination.next_cursor. Otherwise use pagination.next_cursor. Keep profile_id and limit the same. Follow new cursors only while has_more=true; stop at has_more=false. Never reuse a cursor. If unavailable_reason is present or has_more=true with no next_cursor, stop and report the scan is incomplete. Combine all pages to match parent_comment_id with replies whose is_own=true and hidden=false. Pagination covers the comments edge, not a guarantee that every reply was returned. complete=false can remain on the last paged response. Other platforms may have unknown paging and reply status.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
3 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
post_id
Use the numeric Mallary post ID returned by mallary_list_posts. Do not use a social platform post ID, post URL, or batch ID.
Clear enough to supply this argument.
platform
Not provided
Missing description. Explain what this value means and how to supply it.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
cursor
New opaque pagination.next_cursor from mallary_list_comments, or a platform_pagination entry for grouped posts. Use that entry's concrete post_id and platform with the same profile_id and limit. Never reuse a cursor. Stop at has_more=false, unavailable_reason, or has_more=true with no next_cursor. Combine all pages; complete=false can remain on the final page.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "mallary_list_comments",
"title": "List post comments",
"description": "List comments and replies on Mallary-published posts only. Use each comment's concrete post_id and id to reply. Instagram returns parent_comment_id, is_reply, has_own_reply, replies_complete, hidden, and visibility. has_own_reply=null means unknown, not unanswered. A hidden or unverified own reply must not trigger another reply; check it in Instagram. For grouped posts, limit is per platform: use each platform_pagination entry's post_id, platform, and pagination.next_cursor. Otherwise use pagination.next_cursor. Keep profile_id and limit the same. Follow new cursors only while has_more=true; stop at has_more=false. Never reuse a cursor. If unavailable_reason is present or has_more=true with no next_cursor, stop and report the scan is incomplete. Combine all pages to match parent_comment_id with replies whose is_own=true and hidden=false. Pagination covers the comments edge, not a guarantee that every reply was returned. complete=false can remain on the last paged response. Other platforms may have unknown paging and reply status.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"post_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "New opaque pagination.next_cursor from mallary_list_comments, or a platform_pagination entry for grouped posts. Use that entry's concrete post_id and platform with the same profile_id and limit. Never reuse a cursor. Stop at has_more=false, unavailable_reason, or has_more=true with no next_cursor. Combine all pages; complete=false can remain on the final page."
},
"post_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0
},
{
"type": "string",
"minLength": 1
}
],
"description": "Use the numeric Mallary post ID returned by mallary_list_posts. Do not use a social platform post ID, post URL, or batch ID."
},
"platform": {
"enum": [
"facebook",
"instagram",
"threads",
"linkedin",
"x",
"twitter",
"youtube",
"bluesky"
],
"type": "string"
},
"profile_id": {
"type": "string",
"pattern": "^[A-Za-z0-9]{6,32}$",
"description": "Mallary connection profile ID, as returned by mallary_list_profiles."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ok",
"tool"
],
"properties": {
"ok": {
"type": "boolean"
},
"data": {},
"tool": {
"type": "string",
"minLength": 1
},
"error": {
"type": "object",
"required": [
"code",
"message",
"http_status"
],
"properties": {
"code": {
"type": "string",
"minLength": 1
},
"message": {
"type": "string"
},
"http_status": {
"type": "integer",
"maximum": 599,
"minimum": 100
}
},
"additionalProperties": true
},
"status": {
"type": "string",
"const": "pending"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean",
"const": false
},
"http_status": {
"type": "integer",
"maximum": 599,
"minimum": 100
},
"provider_accepted": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "List post comments",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Publish the supplied text as a reply to a specific comment on a Mallary-published social post. This changes a public external conversation. Instagram replies include provider verification. A pending or hidden reply is not confirmed complete. Keep its reply_id and do not send it again automatically. API verification does not guarantee visibility in Instagram's app.
The description explains the capability, when to use it, and what to expect.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
post_id
Use the numeric Mallary post ID returned by mallary_list_posts. Do not use a social platform post ID, post URL, or batch ID.
Clear enough to supply this argument.
comment_id
Not provided
Missing description. Explain what this value means and how to supply it.
message
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Get post analytics. Use a Mallary job ID with the same profile_id for one post. Set view to posts to browse all saved posts with filters and a next cursor. Omit view to list recent per-platform snapshots.
Describe the returned information so the agent knows whether it will answer the request.
Inputs25/100
3 of 12 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
profile_id
Mallary connection profile ID, as returned by mallary_list_profiles.
Clear enough to supply this argument.
view
Use posts to browse every saved post with filters and a cursor. Omit for recent per-platform snapshots.
Clear enough to supply this argument.
post_id
Mallary job ID from mallary_list_posts or mallary_create_post. Do not use a social platform post ID or a batch ID. Use the same profile_id as the post. Omit to list recent post analytics.
Clear enough to supply this argument.
start_date
Not provided
Missing description. Explain what this value means and how to supply it.
end_date
Not provided
Missing description. Explain what this value means and how to supply it.
platform
Not provided
Missing description. Explain what this value means and how to supply it.
status
Not provided
Missing description. Explain what this value means and how to supply it.
media_type
Not provided
Missing description. Explain what this value means and how to supply it.
search
Not provided
Missing description. Explain what this value means and how to supply it.
sort
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
cursor
Not provided
Missing description. Explain what this value means and how to supply it.
mallary-mcp setup, tools, quality score, publishing readiness, and alternatives.
How do I add mallary-mcp to Claude, ChatGPT, or Cursor?
Add mallary-mcp to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mallary.ai/mcp.
Is mallary-mcp MCP ready for ChatGPT and Claude?
As of October 15, 2026, mallary-mcp scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is mallary-mcp's MCP tool documentation?
As of October 15, 2026, mallary-mcp scores 71/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 28 of 28 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to mallary-mcp?
As of October 15, 2026, alternatives to mallary-mcp in marketing-seo on the Manufact MCP catalog include Buzzfy, Dreamlit MCP, Keyword Tool MCP Server, adwhispr, and athenahq.
How can mallary-mcp improve its MCP documentation?
mallary_create_webhook is the lowest-scoring reviewed tool at 59/100. 0 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.