Skip to main content
Glama
465,824 tools. Updated 2026-08-19 07:27

"Using SocialBu API to Upload Content to Social Media" matching MCP tools:

  • Upload a base64-encoded file to a site's container. Use this for binary files (images, archives, fonts, etc.). For text files, prefer write_file(). Requires: API key with write scope. Args: slug: Site identifier path: Relative path including filename (e.g. "images/logo.png") content_b64: Base64-encoded file content Returns: {"success": true, "path": "images/logo.png", "size": 45678} Errors: VALIDATION_ERROR: Invalid base64 encoding FORBIDDEN: Protected system path
    Connector
  • List the images the user ALREADY has in their Orivox media gallery -- uploads made on the editor's media page or through Orivox before -- as hosted URLs ready to use DIRECTLY in <img src> or apply_dom_ops set_attr. Check here FIRST whenever the user mentions "my images", their gallery, or pictures they already uploaded, before asking them to upload or send anything. role="logo" lists the logo folder, "content" the general image folder, "all" (default) both, newest first. Each entry carries url, file_name, width/height (null when unknown), and modified_at. Returns the newest `limit` images (default 24, max 500); truncated=true with a larger total means older images exist -- re-call with a bigger limit only when the user actually needs them. Use the urls exactly as returned -- never rewrite them through the a12 grammar. Read-only; changes nothing.
    Connector
  • File upload: stream-upload (one-shot — auto-finalizes, no filesize needed), chunked (create-session → chunk → finalize, for exact-known-size or files split across blobs), web URL import, and batch (many small files). Call action='describe' for the full action/param reference. Side effects: finalize/stream/stream-upload/web-import/batch create files and consume storage credits. Same-name uploads to a folder OVERWRITE the existing node in place (preserved as a recoverable version). BYTES → SERVER: the **DEFAULT for every file/binary is the `POST /blob` sidecar** — a plain HTTP POST outside the MCP pipe (the create-session/blob-info response hands you a ready-to-run curl command) that returns a `blob_id` you pass to stream-upload/chunk/batch: no base64, no MCP size limit, up to 100 MB. Use `content_base64` (inline base64, capped a few MB by the MCP transport) ONLY when your client cannot make the POST /blob call. `content` is small text only (verbatim UTF-8). UPLOAD STRATEGY (read top-to-bottom, pick the FIRST that matches): (1) Have a URL? → `web-import` (single call). (2) DEFAULT for a file/binary → `POST /blob`, then `stream-upload` with `blob_id` (single call, auto-finalizes, NO filesize required). Unknown/generated size and no way to reach /blob → `stream-upload` with `content_base64`. (3) Known exact byte count, or a large file split across blobs → `create-session` + `chunk`(`blob_id`) + `finalize`. **filesize must match the bytes you actually upload — mismatch causes finalize to fail with code 10522 and you must cancel the session.** (4) Multiple small files (≤4 MB each, ≤200 total) into one folder? → `batch`. Prefer `blob_id` (POST /blob) for every file/binary upload; fall back to `content_base64` only when you cannot reach /blob. Do NOT guess `filesize` for generated content — use `stream-upload`. max_size is a hard ceiling that aborts mid-transfer — always overestimate or omit (server uses plan limit).
    Connector
  • Prepare or upload media so it can be attached to posts. For a public asset, pass `url` and PostLake fetches it. For a file on the agent's own machine, omit `url`, pass `contentType` and preferably `sizeBytes`, then PUT the file bytes to the short-lived upload target returned by this tool. Both paths validate type/size (images ≤20MB: jpeg/png/webp/gif; videos ≤200MB: mp4/mov/webm) and produce a med_… id for create_post. Never put file bytes or base64 in the tool call. For a carousel, use upload_media_batch instead of calling this once per slide.
    Connector
  • Set the files on a file-upload input (<input type="file">) in Safari on an iOS device, WITHOUT opening the device's file picker. This is the only way to test an upload flow end to end on iOS: tapping an upload control opens a native sheet that automation cannot drive. Provide file content inline, or name a file already on the device (see ios_file_push / ios_upload_targets) to have it read from there. Fires the input and change events afterwards so framework bindings and validation run, then reads the input back and reports the file names and sizes the PAGE actually sees — so a silent no-op can't pass as success. Total content limit 2 MB.
    Connector

Matching MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Turns any OpenAPI REST or GraphQL API into an MCP server, allowing AI assistants like Claude to interact with APIs without writing code.
    18
    MIT

Matching MCP Connectors

  • Transform any blog post or article URL into ready-to-post social media content for Twitter/X threads, LinkedIn posts, Instagram captions, Facebook posts, and email newsletters. Pay-per-event: $0.07 for all 5 platforms, $0.03 for single platform.

  • Use SocialBu MCP for practical social media work, from content creation to analytics and account management.

  • Parse one supported document into markdown, HTML, links, summary, targeted answers, or JSON matching a schema. Supported inputs include common HTML, PDF, Word, RTF, OpenDocument, and spreadsheet files; PDF parsing can be bounded with `pdfOptions.maxPages`. Local MCP reads `filePath` from the server filesystem. Hosted MCP uses two calls: first provide `filePath` to receive upload instructions, upload locally, then call again with the returned `uploadRef`; do not send both fields together. Remote web URLs belong in `firecrawl_scrape`. Set `redactPII` to request redaction of personally identifiable information in the returned content. `zeroDataRetention` requires an eligible authenticated account; omit it for anonymous keyless use. Returns upload instructions for hosted phase one or parsed document content for the final call.
    Connector
  • Submit manual content to a pipeline for transformation. Use when user says "add this to my changelog", "create a newsletter from this", "transform this content", or provides content to be processed. Content will be transformed using the pipeline's persona and ICPs. Social pipelines publish to the pipeline's declared destination (x/linkedin/instagram/facebook/threads — set via update_pipeline; undeclared defaults to x) after human approval; instagram items REQUIRE media_artifact_ids. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
    Connector
  • Publish a post to a connected X account via the official X API (POST /2/tweets). Call x-twitter.connected_accounts first. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before posting. Agents cannot complete OAuth; ask the user to connect, then call x-twitter.connected_accounts again. Pass user_id or user_name to target a specific account, not both. Omit both to use the default connected account. At least one of text, poll, media, or card_uri is required. Supports text, polls, media attachments, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links. To attach media, upload files with files.upload_file and the @vee3/upload CLI, then pass file_name values returned by files.list_uploaded_files in the media array (up to 4 files). Only files listed by list_uploaded_files can be attached. poll, media, and card_uri are mutually exclusive in the X API. Token pricing: 60 tokens base for text posts. Posts whose text includes a URL are billed 1000 tokens base instead. Attaching only media (an image or video) without a URL in the text does not trigger the URL rate. Each attached image adds 50 tokens. Each attached video adds 150 tokens plus 50 tokens per 5 MB of video size. X rate limit: 100 POST /2/tweets requests per connected user per 15 minutes. Wait and retry if posting is temporarily blocked. If X authorization fails, reconnect the account in the Vee3 dashboard. Read the error message when X rejects a post and adjust the request.
    Connector
  • Edit a recent post from a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Requires post_id and at least one of text, media, paid_partnership, or made_with_ai. Edits must be within X's one-hour window after posting. The authenticated X account may need X Premium for API edits. Posts with polls and some other types cannot be edited. Each edit returns a new post_id. To attach media, upload files with files.upload_file and pass file_name values from files.list_uploaded_files. Token pricing matches x-twitter.create_post: 60 tokens base, 1000 with URL, plus media surcharges.
    Connector
  • Create a browser upload link for media files. ALWAYS use this when the user shares an image or video in chat — their file is local and cannot be passed directly to publish_content. WORKFLOW: 1. Call this tool to get an uploadUrl 2. Give the user the link to open in their browser and upload their file 3. After upload, call get_upload_session to get the public media URL(s) 4. Use the returned URL with publish_content or schedule_content Supports up to 20 files per session. Expires in 15 minutes.
    Connector
  • Upload an image (logo or screenshot) for create_startup. Pass the file content as base64 (data is base64 only, no data: prefix). Returns a url to pass into create_startup. Max 2 MB; formats: JPEG, PNG, WebP, GIF.
    Connector
  • Retrieve the original source media file of an already-analyzed job by generating a presigned download URL for it. This only fetches existing media identified by mediaId — it does not upload files or start any analysis (use echosaw_analyze_media_url to begin an analysis). The URL is valid for 1 hour.
    Connector
  • Upload an image and get back the stable `{ imageId, url }` to reference from your work: put `imageId` on update_profile's `avatarImageId` for an avatar, or embed `url` as a Markdown image in a bodyMd. Send the raw bytes base64-encoded in `data` plus their real `contentType`; the route sniffs the bytes and rejects a file whose content does not match the type you declared (JPEG, PNG, GIF, and WebP are accepted). Keep images under about 3MB HERE: the route caps a direct upload at 4MB and base64 inflates the JSON-RPC request roughly 1.33x against this endpoint's own body limit — for anything larger, POST the raw bytes to /api/images over plain HTTP with an `image/*` Content-Type instead. Mint a FRESH SIGN-IN-WITH-X for this call: the write routes burn each nonce once.
    Connector
  • Returns the upload API endpoint and example request/response for uploading images (JPEG, PNG) or videos (MP4) to YouCam AI./n Use when the user wants to upload an image/video via the API. If upload cannot be completed for any reason (including network restrictions, host_not_allowed, or other errors), do not retry. Immediately use the File Upload Widget instead. Do not ask the user for a public URL.
    Connector
  • Real-time X/Twitter sentiment narrative. Pass ticker=NVDA for a focused fintwit read on a name, or query=... for a free-form social-media question. Returns the narrative answer with quantified bullish/bearish ratio and any source URLs social-search grounded against. Use when you want the *vibe* on a name right now (retail sentiment, breaking rumours, unusual social activity), not the news article list.
    Connector
  • Map a file extension such as webp or png, or a MIME type string, to curated Content-Type metadata when setting headers, validating uploads, or choosing a media type. Use when: - What MIME type should I use for a .webp file? - Look up metadata for Content-Type application/json - Resolve a file extension to the correct MIME type for an upload or response header Do not use when: - Sniff or detect MIME type from raw file bytes - Encode or decode Base64 file payloads (use base64_encode / base64_decode) - Look up DNS top-level domain metadata (use tld_lookup)
    Connector
  • Map a file extension such as webp or png, or a MIME type string, to curated Content-Type metadata when setting headers, validating uploads, or choosing a media type. Use when: - What MIME type should I use for a .webp file? - Look up metadata for Content-Type application/json - Resolve a file extension to the correct MIME type for an upload or response header Do not use when: - Sniff or detect MIME type from raw file bytes - Encode or decode Base64 file payloads (use base64_encode / base64_decode) - Look up DNS top-level domain metadata (use tld_lookup)
    Connector
  • Generate ready-to-use marketing and business content for an idea: blog posts, social media, ad copy, press releases, elevator pitches and 12 more types. Returns cached content instantly if it exists, otherwise generates fresh copy. Spends credits only when generating new content. Not read-only; pass an ideaId you own and a contentType.
    Connector
  • Offload a document conversion to Botverse using an already-uploaded file. Workflow: (1) call get_upload_url to get a presigned upload form, (2) POST the file to that URL as multipart/form-data (all upload_fields first, then the file), (3) call convert_file with the object_key — Botverse handles the rest server-side. Returns a job_id immediately so you can continue with other tasks while conversion runs. Supported inputs: md, html, rst, txt, docx. Supported outputs: docx, pdf, html, txt, md, rst, xlsx. Poll get_job_status until complete, then get_download_url. Flat fee $0.05 per file. If you are in a sandboxed environment where the get_upload_url PUT is blocked, do not use this tool — use convert_content (inline content under 500 KB) or convert_from_url (public URL) instead; no upload needed.
    Connector