Skip to main content
Glama
MrSagarShah

upload-post-mcp

by MrSagarShah

upload-post-mcp

License: MIT Node >= 18 MCP Hosted on Cloudflare Workers GitHub stars

An MCP (Model Context Protocol) server that lets Claude — or any MCP client — post to social media via upload-post.com: text, photos, and videos across 13 platforms: TikTok, Instagram, LinkedIn, YouTube, Facebook, X, Threads, Pinterest, Bluesky, Reddit, Discord, Telegram, and Google Business Profile.

Unlike scheduler-specific connectors (e.g. Buffer's), this publishes directly to your connected accounts — no Buffer subscription, and it covers platforms most connectors don't (TikTok video, YouTube, Reddit, Google Business), plus scheduling, queues, analytics, and Instagram comment/DM replies.

🚀 Try it in 2 minutes (no install)

A hosted instance is live — connect it straight from your Claude settings:

  1. claude.ai (web) / Claude Desktop / mobile: Settings → ConnectorsAdd custom connector

    • Name: Upload-Post

    • URL: https://upload-post-mcp.sgr-flutter.workers.dev/mcp

    • Leave the OAuth fields empty → Add

  2. Claude opens a consent page — paste your upload-post API key once (free account: 10 posts/month, no card)

  3. In a chat, try: "verify my upload-post account", then "post 'hello from Claude' to my X"

Claude Code: claude mcp add --transport http upload-post https://upload-post-mcp.sgr-flutter.workers.dev/mcp

Ships in two flavors from this repo:

Local (stdio) — repo root

Hosted (remote) — worker/

Runs

on your machine

on Cloudflare Workers

Works in

Claude Code, Claude Desktop, Cursor...

claude.ai (web), Claude Desktop & mobile via Settings → Connectors

Auth

UPLOAD_POST_API_KEY env var

OAuth 2.1 — users paste their API key once on a consent page; stored encrypted

Media

local file paths or URLs

public URLs only

Live instance

https://upload-post-mcp.sgr-flutter.workers.dev/mcp

Related MCP server: Video MCP

Quick start

  1. Get an API key: create an account at app.upload-post.com, create a profile, connect your social accounts to it, and generate an API key (Settings → API Keys). Free tier: 10 uploads/month.

  2. Add to Claude Code:

    claude mcp add upload-post --scope user \
      --env UPLOAD_POST_API_KEY=YOUR_KEY_HERE \
      -- npx -y upload-post-mcp

    Claude Desktop (claude_desktop_config.json):

    {
      "mcpServers": {
        "upload-post": {
          "command": "npx",
          "args": ["-y", "upload-post-mcp"],
          "env": { "UPLOAD_POST_API_KEY": "YOUR_KEY_HERE" }
        }
      }
    }
  3. Test: ask Claude to "verify my upload-post account". It should return your account email and plan. Then try "post 'hello world' to my X account".

From source

git clone https://github.com/MrSagarShah/upload-post-mcp.git
cd upload-post-mcp && npm install && npm run build
claude mcp add upload-post --scope user \
  --env UPLOAD_POST_API_KEY=YOUR_KEY_HERE \
  -- node "$(pwd)/dist/index.js"

Tools (17)

Tool

Purpose

post_text

Text posts (X, LinkedIn, Facebook, Threads, Reddit, Bluesky, Discord, Telegram, GBP)

post_photos

Photos/carousels — local file paths or URLs

post_video

Videos (Reels, Shorts, TikToks...) — local file path or URL

get_upload_status

Poll async uploads (request_id) or scheduled jobs (job_id)

get_history

Paginated upload history

list_scheduled_posts / edit_scheduled_post / cancel_scheduled_post

Manage scheduled posts

get_profile_analytics

Followers/reach/likes/etc. per platform

list_media

Recent posts on a connected platform account

get_comments / reply_to_comment

Instagram comments + private DM replies

verify_account

Validate the API key, show plan

list_page_targets

Facebook pages / LinkedIn org pages / Pinterest boards (for required IDs)

list_profiles / create_profile / generate_connect_link

Manage upload-post profiles and link social accounts

All publish tools support scheduled_date + timezone, add_to_queue, async_upload, first_comment, and an extra_params passthrough for any platform-specific field in the upload-post API docs (X polls, YouTube tags/privacy, Instagram REELS/STORIES, TikTok privacy, and more).

Scheduling runs on upload-post's servers — schedule posts and close your laptop; they publish on time.

Publish calls send an Idempotency-Key automatically, so a retried request won't double-post.

Example prompts

  • "Post 'We're hiring!' to my LinkedIn and X"

  • "Schedule this for Friday 9am New York time on LinkedIn"

  • "Post these three photos as an Instagram carousel with caption ..."

  • "Upload ~/Videos/demo.mp4 to YouTube as unlisted and TikTok"

  • "How did my last week's posts perform on X?"

  • "Reply to the latest comments on my Instagram reel"

Notes

  • The user argument on posting tools is your upload-post profile name (see list_profiles), not your account email.

  • Facebook needs facebook_page_id, Pinterest needs pinterest_board_id, Reddit needs subreddit — use list_page_targets to find IDs.

  • Media parameters accept either a local file path or a public http(s):// URL (hosted connector: URLs only).

Troubleshooting

Symptom

Cause / fix

401: Invalid API key format

The key in your env/consent page is wrong or a placeholder — regenerate at app.upload-post.com/api-keys.

429 — monthly quota exhausted

Free tier is 10 uploads/month; the error includes your usage counters. Upgrade or wait for reset.

"must be a public http(s) URL" (hosted)

The hosted connector can't read files on your machine. Use a public URL, or switch to the local connector for file uploads.

Facebook/Pinterest/Reddit post rejected

Missing facebook_page_id / pinterest_board_id / subreddit — ask Claude to run list_page_targets first.

Connector missing after adding in claude.ai

Enable it per-chat via the tools (sliders) menu, and check Settings → Connectors shows it as connected.

Nothing posts to a platform

That platform isn't linked to the profile — ask Claude for a generate_connect_link and link it in the browser.

Roadmap

  • Local stdio connector (17 tools)

  • Hosted remote connector — OAuth 2.1 + Streamable HTTP on Cloudflare Workers

  • npm package (npx -y upload-post-mcp)

  • Anthropic connector directory listing

  • LinkedIn document posts, auto-DM monitors, queue-settings tools

  • Managed tier: connect socials directly, no upload-post account needed

Contributing & support

Issues and PRs welcome — open an issue for bugs or tool requests. For anything else: saumil@tempbutton.com.

If this saved you time, a ⭐ helps others find it.

Disclaimer: community project, not affiliated with or endorsed by Upload-Post. Your API key is yours; the hosted instance stores it encrypted and only forwards your own requests (privacy).

License

MIT

Available Tools

17 tools
cancel_scheduled_postCancel a scheduled postA

Cancel (delete) a scheduled post by job_id so it will not be published.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID of the scheduled post to cancel.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that the action is destructive ('delete') and prevents publication, but lacks details on reversibility, confirmation requirements, or side effects. For a delete operation, more transparency is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and contains no fluff. It effectively conveys the purpose, though it could arguably be split into separate points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter tool with no output schema, the description is largely complete. It covers what the tool does and the required input. Missing elements like error handling or result description are minor given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes 'job_id' with 100% coverage. The description repeats this ('by job_id') without adding extra meaning, such as format, source, or constraints. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Cancel (delete)', the resource 'scheduled post', and the effect 'so it will not be published'. It uses the parameter 'job_id' to specify which post, and distinguishes from sibling tools like 'edit_scheduled_post' and 'list_scheduled_posts'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly states when to use (to cancel a scheduled post) but provides no explicit guidance on when not to use or alternatives. For example, it does not mention that editing might be preferred over canceling, or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_profileCreate an upload-post profileA

Create a new user profile. After creating, use generate_connect_link to get a URL for linking social accounts to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUnique identifier for the new profile.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the creation action but lacks details on reversibility, permissions, side effects, or return values. The follow-up hint adds some behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences with no extraneous information, front-loading the purpose and then a usage tip. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description covers the essential purpose and a follow-up action. It could mention the result or confirmation of creation, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the only parameter 'username' ('Unique identifier for the new profile'). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new user profile' with a specific verb and resource, and it distinguishes from sibling tools like list_profiles and get_profile_analytics by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage hint: after creating, use generate_connect_link to link social accounts. However, it does not explicitly state when not to use this tool or compare with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_scheduled_postEdit a scheduled postB

Change the publish time, title, or caption of a scheduled post by job_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew post title/caption.
job_idYesJob ID from list_scheduled_posts or the scheduling response.
captionNoNew caption/description.
scheduled_dateNoNew ISO-8601 date/time in UTC (future, within 1 year).

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description states mutation but lacks disclosure of behavioral traits like idempotency, error scenarios, or constraints beyond schema. No annotations to supplement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single focused sentence, front-loaded, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal context for a mutation tool with 4 params and no output schema; missing success/failure info, constraints, and usage examples.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all params with descriptions; description adds minimal extra meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Change' and resource 'scheduled post' with identifier 'job_id', distinct from sibling cancel_scheduled_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_commentsGet Instagram post commentsA

Retrieve comments on an Instagram post/reel. Provide post_id or post_url. Paginate with the returned next_cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUpload-post profile identifier.
afterNoPagination cursor from the previous response.
limitNoComments per page (max 50).
post_idNoNumeric Instagram media ID.
post_urlNoFull Instagram post or reel URL (alternative to post_id).

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present; description mentions pagination and read-like behavior, but lacks details on authentication, rate limits, or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-loading purpose followed by usage; no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers retrieval and pagination, but lacks output schema and does not detail what comment objects contain or prerequisite authentication.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions; description adds context on alternatives (post_id vs post_url) and pagination cursor, but adds limited new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Retrieve' and resource 'comments on an Instagram post/reel', and distinguishes from siblings like reply_to_comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage instructions (provide post_id or post_url, paginate with next_cursor), but no explicit when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_historyGet upload historyA

Retrieve paginated history of past uploads with their platforms, status, and post URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
limitNoItems per page.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description correctly indicates pagination and the fields returned. As there are no annotations, this is sufficient for a read-only tool. However, it does not mention ordering or other potential behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no redundant information. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description partially clarifies return fields but omits details like pagination metadata (e.g., total count, next page token) and ordering. This may hinder agent understanding of the complete response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description does not add additional meaning beyond what the schema provides, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'paginated history of past uploads', specifying the key fields returned (platforms, status, post URLs). This distinguishes it from siblings like get_upload_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for browsing upload history but does not explicitly state when to use this tool versus alternatives like get_upload_status or list_media. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_profile_analyticsGet profile analyticsA

Fetch account-level metrics (followers, reach, views, likes, comments, shares...) for a profile's connected platforms.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idNoFacebook Page ID — required for Facebook analytics.
page_urnNoLinkedIn organization URN/ID for page analytics (defaults to personal profile).
platformsYesComma-separated platforms: instagram, tiktok, linkedin, facebook, x, youtube, threads, pinterest, reddit.
profile_usernameYesUpload-post profile identifier.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states it fetches metrics implying read-only, but does not disclose if data is real-time, rate limits, or pagination behavior. Adequate for a simple fetch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence front-loading the purpose, no extraneous words, efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, and description gives a list of metrics but not the structure of the response (e.g., per platform or time period). Adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; all four parameters have descriptions in the schema. The description adds a list of metric types but does not add significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Fetch' and resource 'account-level metrics' with a scope 'for a profile's connected platforms', clearly distinguishing from siblings like get_comments or list_media.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like get_comments, but the description implies it's for aggregated metrics rather than individual comments or media.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_upload_statusGet upload statusA

Check the progress/result of an async upload (by request_id) or a scheduled post (by job_id). Provide one of the two.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNojob_id returned for scheduled posts.
request_idNorequest_id returned when async_upload=true.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description implies read-only check but lacks details on return states, error handling, or any side effects. Adequate but minimal for a status-check tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded with purpose and parameter usage. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-check tool with two parameters, the description covers the key information: what it does and how to identify the target. Lacks response format details, but reasonable without output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters fully; description adds the constraint 'Provide one of the two', clarifying mutual exclusivity beyond the schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks progress/result of an async upload or a scheduled post using either request_id or job_id, distinguishing it from siblings like cancel_scheduled_post or edit_scheduled_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies to provide one of the two identifiers, implying when to use it (when you have an async upload or scheduled post), but does not explicitly exclude other cases or mention alternatives for cancellation or editing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_mediaList recent posts on a platformB

List recent posts/media published on a connected platform account (instagram, tiktok, youtube, linkedin, facebook, x, threads, pinterest, bluesky, reddit).

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUpload-post profile identifier.
page_urnNoLinkedIn only: organization ID to fetch a company page's posts.
platformYesPlatform to list media from.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not explain what 'recent' means (time range, count), whether pagination is supported, or any authentication or rate limit details. The behavior is only superficially described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the tool's purpose. No filler or redundant information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is minimally adequate for a simple list operation. However, it lacks details on return format, error conditions, and the exact meaning of 'recent', which reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 3 parameters. The tool description adds no additional semantic value beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear action ('List recent posts/media'), the resource ('posts/media'), and the scope ('on a connected platform account'). It lists multiple platforms, and it distinguishes itself from sibling tools like list_profiles, list_scheduled_posts, and list_page_targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives like get_comments or get_profile_analytics. No conditions, prerequisites, or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_page_targetsList Facebook pages / LinkedIn pages / Pinterest boardsA

List posting targets needed for platform-specific IDs: facebook → pages (facebook_page_id), linkedin → organization pages (target_linkedin_page_id), pinterest → boards (pinterest_board_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoUpload-post profile identifier. Omit to list across all connected accounts.
platformYesWhich targets to list.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or response format. The agent cannot infer side effects or safety from the description alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb, every word is informative. No redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the tool's purpose and mapping but lacks details on output format, error handling, or prerequisites. Given no output schema, completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds little value beyond echoing the parameter mappings; it does not provide additional syntax or constraints. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'posting targets' with platform-specific mappings (facebook pages, linkedin organization pages, pinterest boards). It distinguishes from sibling tools which perform different actions like cancel, edit, or post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating the tool is needed for obtaining platform-specific IDs, but does not explicitly mention when not to use it or provide alternatives. It effectively guides when to use among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_profilesList upload-post profilesA

List all user profiles and which social accounts each has connected. The profile 'username' is the 'user' value for posting tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose all behavioral traits. It does not mention pagination, ordering, rate limits, authentication, or data freshness. For a list operation, such details are important but absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are concise and front-loaded. The first sentence states the main action, and the second adds crucial context about the username field. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no parameters, no output schema), the description covers the essential purpose and the key field (username). However, it lacks details about the output structure or any limiting factors, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. According to guidelines, baseline is 4. The description provides no parameter information, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all user profiles' and specifies what information is included (connected social accounts). It also explains the significance of the 'username' field for other tools, which adds clarity. This differentiates it from sibling tools like list_media or list_scheduled_posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Given 17 siblings, explicit comparison or context would help, but it is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scheduled_postsList scheduled postsA

List all posts scheduled for future publishing, with their job_ids.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It implies a read-only list operation, but does not disclose whether results are paginated, filtered, or how to handle empty results. It adds minimal behavioral context beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no extraneous information. It is appropriately sized for a tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with no output schema, the description is slightly incomplete: it does not specify whether the list includes only IDs or full post details, nor any ordering or filtering. It provides the essential intent but lacks some context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters with 100% coverage, so the description does not need to explain parameters. The description adds value by specifying the scope (future publishing) and included data (job_ids).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all scheduled posts with their job_ids, using a specific verb and resource. It distinguishes from siblings like cancel_scheduled_post or edit_scheduled_post which perform different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. Siblings exist for editing or canceling scheduled posts, but no indications of when each is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_photosPost photos to social platformsA

Publish photo(s) — including carousels — to instagram, tiktok, linkedin, facebook, x, threads, pinterest, bluesky, discord, telegram. Each photo can be a local file path or a public http(s) URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUpload-post profile identifier whose connected social accounts will be used.
titleNoDefault post text / title / caption. Required for YouTube and Reddit; for text posts this IS the post content.
photosYesPhoto(s): local file paths or public URLs. Multiple items become a carousel where supported.
timezoneNoIANA timezone for scheduled_date (e.g. 'America/New_York'). Defaults to UTC.
platformsYesTarget platform(s).
subredditNoSubreddit name without 'r/' — required when platforms includes reddit.
descriptionNoExtended text (LinkedIn commentary, Facebook/YouTube/Pinterest/TikTok descriptions, Reddit body).
add_to_queueNoSchedule into the next available queue slot instead. Cannot combine with scheduled_date.
async_uploadNoReturn immediately with a request_id and process in background (poll with get_upload_status).
extra_paramsNoAny additional platform-specific form fields from the upload-post API docs, passed through verbatim. Examples: {linkedin_title: '...'}, {privacy_level: 'PUBLIC_TO_EVERYONE'}, {media_type: 'REELS'}, {poll_options: ['a','b'], poll_duration: 1440}, {'tags[]': ['tag1','tag2']}.
first_commentNoAutomatically post this as the first comment after publishing.
scheduled_dateNoISO-8601 date/time to schedule publishing (must be in the future, ≤365 days). Omit to publish now.
facebook_page_idNoFacebook Page ID — required when platforms includes facebook (auto-detected if only one page). Use list_page_targets to find it.
pinterest_board_idNoPinterest board ID — required when platforms includes pinterest. Use list_page_targets to find it.
target_linkedin_page_idNoLinkedIn organization page ID to post as a company page instead of the personal profile.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It mentions publishing and platform support but does not disclose potential side effects, rate limits, authentication requirements, or error behavior. This is insufficient for a complex mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loads the core purpose, and contains no unnecessary words. It earns its place without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters and no output schema, the description is adequate but lacks details on platform-specific behaviors, error handling, or prerequisites. Schema descriptions compensate somewhat, but the free-text could be richer for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the description adds minimal value. It mentions that photos can be local files or URLs, which is already in the schema. The carousel mention is a slight addition, but overall the description does not significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Publish) and the resource (photo(s) to multiple social platforms), and specifies the supported platforms. This distinguishes it from sibling tools like post_text and post_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like post_video or post_text. It implies usage for images but lacks exclusion criteria or guidance on choosing between similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_textPost text to social platformsA

Publish a text-only post to one or more platforms (x, linkedin, facebook, threads, reddit, bluesky, discord, telegram, google_business). 'title' is the post content. Supports scheduling, queueing, link previews (link_url), X polls via extra_params.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUpload-post profile identifier whose connected social accounts will be used.
titleYesThe post text content.
link_urlNoURL to include as a link preview card (LinkedIn, Bluesky, Facebook, Reddit).
timezoneNoIANA timezone for scheduled_date (e.g. 'America/New_York'). Defaults to UTC.
platformsYesTarget platform(s).
subredditNoSubreddit name without 'r/' — required when platforms includes reddit.
descriptionNoExtended text (LinkedIn commentary, Facebook/YouTube/Pinterest/TikTok descriptions, Reddit body).
add_to_queueNoSchedule into the next available queue slot instead. Cannot combine with scheduled_date.
async_uploadNoReturn immediately with a request_id and process in background (poll with get_upload_status).
extra_paramsNoAny additional platform-specific form fields from the upload-post API docs, passed through verbatim. Examples: {linkedin_title: '...'}, {privacy_level: 'PUBLIC_TO_EVERYONE'}, {media_type: 'REELS'}, {poll_options: ['a','b'], poll_duration: 1440}, {'tags[]': ['tag1','tag2']}.
first_commentNoAutomatically post this as the first comment after publishing.
scheduled_dateNoISO-8601 date/time to schedule publishing (must be in the future, ≤365 days). Omit to publish now.
facebook_page_idNoFacebook Page ID — required when platforms includes facebook (auto-detected if only one page). Use list_page_targets to find it.
pinterest_board_idNoPinterest board ID — required when platforms includes pinterest. Use list_page_targets to find it.
target_linkedin_page_idNoLinkedIn organization page ID to post as a company page instead of the personal profile.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It mentions scheduling, queueing, link previews, and polls, but lacks details on error handling, idempotency, or rate limits. Adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, well-structured sentence that front-loads core purpose. No redundant phrases, efficiently covers key features.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters and no output schema, description covers most important features (scheduling, queueing, async) but omits details on response format. Adequate for complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

100% schema coverage means baseline is 3. Description adds value by clarifying relationship between parameters (e.g., 'title' as content) and giving examples for extra_params, going beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Publish a text-only post to one or more platforms' with specific verb and resource. Lists supported platforms and distinguishes itself from media-focused siblings like post_photos and post_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Context suggests this is for text-only posts, implying when to use alternatives, but no explicit when-not-to-use or direct comparisons to siblings are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_videoPost a video to social platformsA

Publish a video to tiktok, instagram (reels/stories), youtube, linkedin, facebook, x, threads, pinterest, bluesky, discord, telegram. The video can be a local file path or a public http(s) URL. 'title' is required for YouTube and Reddit. YouTube extras (tags, categoryId, privacyStatus...), Instagram media_type, TikTok privacy etc. go in extra_params.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUpload-post profile identifier whose connected social accounts will be used.
titleNoDefault post text / title / caption. Required for YouTube and Reddit; for text posts this IS the post content.
videoYesVideo: local file path or public URL.
timezoneNoIANA timezone for scheduled_date (e.g. 'America/New_York'). Defaults to UTC.
platformsYesTarget platform(s).
subredditNoSubreddit name without 'r/' — required when platforms includes reddit.
thumbnailNoYouTube custom thumbnail: local file path or public URL (max 2MB).
descriptionNoExtended text (LinkedIn commentary, Facebook/YouTube/Pinterest/TikTok descriptions, Reddit body).
add_to_queueNoSchedule into the next available queue slot instead. Cannot combine with scheduled_date.
async_uploadNoReturn immediately with a request_id and process in background (poll with get_upload_status).
extra_paramsNoAny additional platform-specific form fields from the upload-post API docs, passed through verbatim. Examples: {linkedin_title: '...'}, {privacy_level: 'PUBLIC_TO_EVERYONE'}, {media_type: 'REELS'}, {poll_options: ['a','b'], poll_duration: 1440}, {'tags[]': ['tag1','tag2']}.
first_commentNoAutomatically post this as the first comment after publishing.
scheduled_dateNoISO-8601 date/time to schedule publishing (must be in the future, ≤365 days). Omit to publish now.
youtube_privacyNoYouTube privacyStatus.
facebook_page_idNoFacebook Page ID — required when platforms includes facebook (auto-detected if only one page). Use list_page_targets to find it.
pinterest_board_idNoPinterest board ID — required when platforms includes pinterest. Use list_page_targets to find it.
target_linkedin_page_idNoLinkedIn organization page ID to post as a company page instead of the personal profile.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions scheduling, async upload, and extra_params for platform-specific fields, but lacks details on error handling, rate limits, or the irreversible nature of publishing. Decent but could be more comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that efficiently packs key information about platforms, video source, and extra_params. It is front-loaded with the main purpose. Slightly dense but without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 17 parameters, the description covers the main functional points: video source, platform-specific requirements, scheduling, and async mode. It references supporting tools for IDs. Lacks explanation of return values or error handling, but overall fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by clarifying that title is required for YouTube and Reddit, and by referencing list_page_targets for facebook_page_id and pinterest_board_id. This goes beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Publish a video to [list of platforms]', specifies video source options, and notes title requirements for certain platforms. It is distinct from sibling tools like post_photos and post_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists target platforms and mentions that title is required for YouTube and Reddit, providing context. However, it does not explicitly state when to use this tool versus alternatives like post_photos or post_text, though the name implies its use for videos.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reply_to_commentReply to an Instagram comment (private DM)A

Send a private reply DM to the author of an Instagram comment (comment_id comes from get_comments).

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUpload-post profile identifier.
messageYesThe private reply message text.
comment_idYesID of the comment to reply to.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action but omits details like success/failure responses, rate limits, permissions, or character limits. This is minimal transparency for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that clearly conveys the purpose and a key relationship. It is front-loaded and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with 3 parameters and no output schema, but the description lacks information on return values, error handling, authentication, or rate limits. This is insufficient for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds value by linking comment_id to get_comments, but for 'user' and 'message' it merely restates schema info. Baseline is 3, and the added hint is minor.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('send a private reply DM') and identifies the resource ('the author of an Instagram comment'). It also distinguishes from siblings like get_comments by specifying the source of comment_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by noting that comment_id comes from get_comments, hinting at a prerequisite. However, it does not provide explicit when-not-to-use scenarios or alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_accountVerify upload-post accountA

Validate the API key and return account info (email, plan). Use this to test the connection.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description discloses validation and read-only return of account info. No annotations needed; behavior is straightforward and non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, 17 words total. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description is complete: it explains the purpose and return info. No missing details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100% trivially. Description adds value by explaining return values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates an API key and returns account info (email, plan). It sets this apart from siblings as a connection test tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to test the connection,' providing clear when-to-use guidance. No exclusions needed given simplicity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 17 tool updatesv0.1.0
    • First observedcancel_scheduled_post
    • First observedcreate_profile
    • First observededit_scheduled_post
    • First observedgenerate_connect_link
    • First observedget_comments
    • First observedget_history
    • First observedget_profile_analytics
    • First observedget_upload_status
    • First observedlist_media
    • First observedlist_page_targets
    • First observedlist_profiles
    • First observedlist_scheduled_posts
    • First observedpost_photos
    • First observedpost_text
    • First observedpost_video
    • First observedreply_to_comment
    • First observedverify_account

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct action on a specific resource (e.g., post_photos vs post_video, cancel_scheduled_post vs edit_scheduled_post). There is no functional overlap, making it easy for an agent to select the correct tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores (e.g., list_profiles, get_upload_status). No mixing of conventions, which enhances predictability.

Tool Count5/5

17 tools cover a broad but focused domain (social media posting, scheduling, analytics, account management). Each tool serves a necessary function without redundancy.

Completeness4/5

The set covers core workflows: account linking, posting (photo/video/text), scheduling, commenting, analytics, and history. Minor gaps like missing a tool to delete a published post or update a profile, but overall comprehensive.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Upload-Post is the all-in-one social media MCP server the Model Context Protocol server for social media publishing, scheduling and analytics. Connect any MCP-compatible AI agent (Claude, Cursor, ChatGPT, Claude Desktop, n8n, and more) and publish, schedule and analyze content across 13+ social networks from one API: TikTok, Instagram, YouTube, YouTube Shorts, Instagram Reels, LinkedIn, Facebook
    51
    58
    5
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A local MCP server that lets Claude log in to LinkedIn and publish image posts to your personal profile feed, backed by LinkedIn's REST Images API and Posts API.
    2
    29
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MrSagarShah/upload-post-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server