Deployment status — October 10, 2026. The reviewed backend is deployed in
production. Read-only initialization and tool-list checks verified the same
42 tools, including 25 named provider helpers, using a workspace API
key in the Authorization header on
/api/mcp and /api/mcp-oauth. These checks
did not use OAuth bearer tokens or invoke tools. OAuth flows, host connections,
file/widget transfers, Prepare/Commit, provider publishing and directory
approval remain pending. Use only features advertised by your server and
client. This page does not establish a live ChatGPT integration or guarantee
successful publication.Choose your connection
Use Streamable HTTP when your client offers a transport choice. Choose the
endpoint matching your host setup: only
/api/mcp-oauth supplies the OAuth
protected-resource discovery and authentication challenge. Use /api/mcp for
a protected bearer-header setup. Both header paths can resolve a valid OAuth or
personal token; that overlap does not replace OAuth discovery for a host that
needs it. Older key-in-address HTTP/SSE connections are compatibility routes,
not the recommended setup. Do not put an API key in a URL. If an old connection
stops working, migrate to one of the two modes above rather than enabling URL
credentials.
The API-key header format for MCP is:
<NUSHIR_API_KEY> is a placeholder. Retrieve your real key through Nushir
Settings → Developers → Access → API Key and enter it only in the client’s
protected field. Do not paste it into a conversation, screenshot, shared
configuration or support ticket. An API key delegates workspace access to the
client; OAuth provides a separate revocable connection tied to the authorizing
member. Products serving several customers should use each customer’s OAuth
authorization rather than sharing an owner’s key.
Connect with OAuth
- Open your host’s remote MCP connection settings and enter the OAuth server URL above. Use its OAuth connection flow rather than entering an API key.
- When redirected to Nushir, sign in and review the application, selected workspace and requested permissions. Cancel if these are unexpected.
- After approval, return to the host and refresh its tool catalog.
- Ask: “Show my Nushir workspace timezone and connected channels. Do not change anything.” Confirm that the returned workspace and channels are yours.
offline_access for rotating
refresh access. Permissions and your current workspace role still apply on
every request. Draft creation does not imply permission to schedule or publish.
Older broad read/write grants cannot restore tools removed from the catalog.
What is available
Core operations read workspace context, connected channels, channel groups, provider settings, posts and publishing receipts. Post creation and settings updates use separate Prepare and Commit operations. There is no MCP post-deletion operation; manage deletion in the Nushir app. The deployed catalog also exposes 25 separately named provider settings helpers. For example,pinterestListBoards, redditGetSubredditRequirements and
tiktokGetCreatorInfo use an existing connected channel’s integrationId and
the fields in their advertised schema. The selected channel must belong to that
helper’s provider and your connected workspace. Provider-specific settings and
permissions still need validation before preparing a post.
For TikTok, read current creator settings with tiktokGetCreatorInfo. Choose
Direct Post privacy explicitly, with no preset, from the choices permitted by
the current creator and application. Honor interaction and video-duration limits
and review commercial disclosures. Every DIRECT_POST requires explicit
acknowledgment of TikTok’s Music Usage Confirmation.
When brand_content_toggle is true, also acknowledge the Branded Content Policy.
UPLOAD sends an inbox draft that you must finish in TikTok.
Explicitly authorize the exact content and mode before transfer. Do not default
or reuse posting_consent from another post or treat connecting your account as
posting consent.
The old generic triggerTool selector has been removed. Refresh the catalog and
use the advertised named helper instead of supplying methodName or an invented
schema. A settings lookup may refresh provider authentication or mark an expired
channel as needing reconnection; it does not create or publish a post.
External MCP does not generate images, videos or audio. Generation tools,
generation options, voice selection, the generic videoFunctionTool selector
and the ask_nushir wrapper are excluded from every external connection,
including OAuth, API-key and legacy transports. Configured generation remains
available to Nushir’s in-app AI. Uploading media you selected or generated in
another client remains supported when the server advertises that transfer mode.
Upload media
IfmediaIngestCapabilitiesTool is advertised, ask for it before selecting a
transfer method. The capability tool and file/session/widget bridge are optional;
their absence does not establish that URL imports are unavailable.
uploadFromUrlTool remains in the core catalog. Follow the actually advertised
tools, supported MIME types and byte limits.
The MCP bridge ceiling defaults to 64 MiB and can be configured differently.
Actual type and session limits can be smaller: images are limited to 10 MiB,
or the configured bridge ceiling if lower. A returned upload session’s maxBytes
is the minimum of the configured bridge and that file type’s limit. Use the
current capability/session values; a larger limit on another Nushir API does not
increase the MCP limit.
uploadFromUrlToolimports an approved public HTTPS image/video URL. The source must be accessible and pass Nushir’s network, file-type and size checks. Use media you have permission to upload; a webpage or local file path is not an image download URL.uploadMediaFileToolworks when the host supplies an authorized file with a temporary download URL. A host-specific attachment ID alone is not portable.- A capable client can use
createMediaUploadSessionTooland send the file bytes in a multipart POST to its returneduploadUrl, using field namefileand an Authorization header whose value is the returnedauthorization. The URL contains a session ID; the separate Authorization value is the short-lived, one-use upload credential. A URL-only upload is not authorized. Keep that credential and upload-session details out of shared material. - In a compatible MCP Apps host,
uploadWidgetToolcan open the Nushir device upload widget when the configured server advertises it. UseuploadWidgetStatusToolwith its session ID to read ready upload receipts.
Prepare, confirm and commit
- Ask for workspace context and choose the exact connected channel.
- Provide the caption, selected media and provider settings. For a scheduled post, resolve an exact date/time in the workspace timezone; “tomorrow” alone is insufficient. Start with a draft if you want to review inside Nushir.
- The assistant calls
prepareSchedulePostTooland shows the exact prepared account, caption/comment parts, media, privacy/settings and local/UTC timing. Preparation stores an expiring intent; it has not created a post. - Review that preview and explicitly confirm the exact request in a new turn. If anything changes or the intent expires, prepare and confirm again.
- The assistant calls
commitSchedulePostToolwith that intent’s confirmation token. Keep the returned Nushir post IDs and receipt. Post-settings changes similarly usepreparePostSettingsToolandcommitPostSettingsTool.
COMMITTED means Nushir saved the prepared request. A draft stays a draft; a
scheduled request still needs its publishing workflow and provider acceptance.
Neither Commit nor a preview URL guarantees delivery or public visibility.
Read postStatusTool for each returned post ID. Report its Nushir state,
providerReleaseId, providerReleaseUrl, error and providerConfirmed
truthfully. providerConfirmed reflects a stored provider receipt, not an
independent visual check of public delivery. A profile URL, private TikTok post
or TikTok inbox receipt is not proof of a publicly visible post. If status is
uncertain, inspect it read-only; do not create another post to “retry” delivery.
Reconnect or revoke access
If a social channel requires reconnection, reconnect that channel inside Nushir and read its current settings again before preparing another request. Changing the assistant connection alone does not repair the provider’s credentials. To revoke OAuth access, open Nushir Settings → Approved Apps and revoke the specific authorization. Disconnect it in the host as well. Simply removing a host entry should not be treated as proof that its Nushir grant was revoked. A later connection requires fresh approval, and current membership/role requirements still apply. For an API-key connection, remove the client’s stored key. If a key was exposed or you need to invalidate existing clients, use Nushir’s Rotate Key control and update every legitimate client that used the old workspace key. Never send either key to support.Troubleshooting
When requesting support, include the client name, approximate time, failing tool,
sanitized error and relevant Nushir post ID. Omit passwords, API keys, client
secrets, authorization codes, confirmation tokens and signed/download/upload URLs.