Available MCP Tools
Available Tools
Section titled “Available Tools”The Nuelink MCP server exposes six tools. You rarely need to call them by name, your assistant picks the right one based on what you ask for, and most users never look at this page.
If you do end up here, it’s usually for one of three reasons: you want to know what’s technically possible, you’re debugging an unexpected behavior, or you’re evaluating before adoption. For all three, the structured details (required input, return shape, underlying endpoint) matter. So they’re kept below, skim past them if you don’t need them.
Each tool maps directly to a REST API endpoint. Behavior, response shapes, and error codes are identical.
nuelink_get_me
Section titled “nuelink_get_me”Returns the profile of the Nuelink account whose API key is in use.
When the assistant calls this: confirming identity, troubleshooting “wrong account” issues, or as a quick health check at the start of a session.
Prompt patterns that trigger it:
- “Which Nuelink account am I connected as?”
- “Am I signed in?”
- “What’s my plan?”
Returns: account email, name, plan tier, and account-level metadata.
Underlying endpoint: GET /me
nuelink_list_brands
Section titled “nuelink_list_brands”Lists every brand the connected account has access to.
When the assistant calls this: any time you mention a brand by name, switch brands, or ask “what do I have?” the assistant needs the brand ID (and its timezone) to call anything else.
Prompt patterns that trigger it:
- “List my brands.”
- “What brands am I working with?”
- “Post to Fernwood Botanicals…” (assistant calls this to resolve the name to an ID)
Returns: an array of brands, each with id, name, timezone, and metadata. The timezone is the one used to interpret scheduledAt timestamps on that brand.
Underlying endpoint: GET /brands
nuelink_list_collections
Section titled “nuelink_list_collections”Lists collections inside a specific brand. Each collection has its own default channels and weekly queue.
When the assistant calls this: before creating a post, to find the right collection ID. Also when you’re exploring or comparing collections.
Prompt patterns that trigger it:
- “Show me my collections in Fernwood Botanicals.”
- “Which collections post to Instagram?”
- “Add this to my Product Launches collection…” (to resolve the name)
Required input: brand ID (the assistant gets this from nuelink_list_brands first, usually invisibly).
Returns: an array of collections with id, name, default channels, and queue settings.
Underlying endpoint: GET /brands/{brandId}/collections
nuelink_list_channels
Section titled “nuelink_list_channels”Lists the social accounts connected to a specific brand: Instagram handles, X profiles, TikTok accounts, etc.
When the assistant calls this: when you ask which platforms are connected, or want to audit a brand’s setup. Channels aren’t passed to nuelink_create_post directly (the collection determines that), so this is mainly for inspection.
Prompt patterns that trigger it:
- “Which social accounts are connected to Fernwood?”
- “Do I have TikTok connected on this brand?”
- “List all my channels.”
Required input: brand ID.
Returns: an array of channels with id, platform, handle, and connection status.
Underlying endpoint: GET /brands/{brandId}/channels
nuelink_create_post
Section titled “nuelink_create_post”Creates a post in a collection. The single tool that handles queuing, scheduling, drafting, and immediate publishing - the publishMode parameter decides which.
When the assistant calls this: the final step of any publishing prompt. Everything else exists to feed this tool the right IDs.
Prompt patterns that trigger it:
- “Add this to the queue for Product Launches.”
- “Schedule this for Friday at 9am.”
- “Save this as a draft.”
- “Post this right now.”
Required input:
- Brand ID, collection ID
caption(1-3000 characters) required unlesspollis setpublishMode: one ofQUEUE,SCHEDULE,IMMEDIATE,DRAFTscheduledAt(only ifpublishMode = SCHEDULE): timestamp inY-m-d H:i:sformat, interpreted in the brand’s timezone
Optional input:
media: array of media IDs fromnuelink_upload_file(or direct URLs, see below)title: used by YouTube, Pinterest, etc.alt: alt text for accessibilitylink: URL to attach to the postpostAsStory: publishes as a Story on Instagram and Facebook only. Channels on other platforms in the collection will publish as a regular feed post.poll: poll object (question, options, period). Supported on LinkedIn, X, Telegram, Threads, Mastodon, Bluesky. Other channels in the collection ignore the poll or fall back to caption-only.comment: an auto-comment posted after publishing, applied globally to every channel that supports comments. There is no per-platform comment customization in the alpha.platforms: platform-specific non-content options like Instagram collab tags and locations, TikTok send-to-inbox, YouTube tags and playlists. The caption is global, you cannot customize caption text per platform.
Returns:
{ "status": "success", "data": { "id": 4364709, "message": "Post created successfully" }}The id is the Nuelink post ID. Per-channel publishing status (whether each platform actually pushed the post successfully) is not returned in the response, you can check post status in the Nuelink dashboard.
Important: you don’t pick which channels receive the post. That’s determined by the collection’s configuration. If you want the post to go to a different set of channels, post to a different collection.
Underlying endpoint: POST /brands/{brandId}/collections/{collectionId}/posts
nuelink_upload_file
Section titled “nuelink_upload_file”Uploads an image or video to a brand’s media library. The returned media ID is passed to nuelink_create_post. These two tools are designed to work together, upload_file rarely runs on its own.
When the assistant calls this: any time your post includes media that isn’t already a public URL, whether you pasted an image into the chat, pointed at a local file, or asked the assistant to generate one.
Prompt patterns that trigger it:
- “Upload
/path/to/photo.jpgto my brand.” - (implicit) “Queue this image with the caption…”, assistant uploads first, then creates the post.
Required input: brand ID, the file itself.
Returns: a media object with id (use this in nuelink_create_post), url, and type.
Underlying endpoint: POST /brands/{brandId}/media
Tip: you can skip uploading entirely with public URLs. If your media is already hosted somewhere publicly accessible (a Google Drive, Dropbox, or OneDrive share link, Unsplash, your CDN, anywhere) you can pass the URL directly to nuelink_create_post instead of uploading. The assistant handles this automatically when you give it a link. See Media in Example Prompts for details.
publishMode quick reference
Section titled “publishMode quick reference”| Value | What it does |
|---|---|
QUEUE | Adds the post to the collection’s next available time slot. Recommended default. |
SCHEDULE | Publishes at the exact scheduledAt timestamp (in the brand’s timezone). |
IMMEDIATE | Publishes right now. |
DRAFT | Saves the post without publishing or scheduling. Review and approve in the dashboard. |
Tool permission model
Section titled “Tool permission model”Most AI assistants let you choose, per tool, whether to:
- Allow always: no confirmation, useful for read-only tools like
nuelink_list_brands. - Ask each time: confirm before every call, useful for
nuelink_create_postif you want a checkpoint before anything actually goes live. - Deny: block the tool entirely.
A reasonable default setup:
| Tool | Recommended permission |
|---|---|
nuelink_get_me | Allow always |
nuelink_list_brands | Allow always |
nuelink_list_collections | Allow always |
nuelink_list_channels | Allow always |
nuelink_create_post | Ask each time (it publishes to the world, unless using DRAFT) |
nuelink_upload_file | Ask each time (it writes to your media library) |
You can adjust these any time in your assistant’s settings.
Errors
Section titled “Errors”MCP tool calls return the same error codes as the underlying API. See Errors for the full list. Your assistant will usually summarize the error in plain English rather than showing the raw response. Common ones:
401: Your API key is missing, invalid, or revoked. See Authentication.422: Validation error (for example, missing caption with no poll, pastscheduledAt).404: Brand, collection, or referenced resource doesn’t exist or doesn’t belong to your account.429: Rate limited. The assistant should retry after a brief wait.