Cursor + PostOnce

Publish your work to social from Cursor

Keep your product update in the editor. Use Cursor’s agent to publish through PostOnce and manage automatic crossposting between connected accounts.

Connect Cursor

Requires a PostOnce account, API access, and your own API key.

See setup steps

Set up your connection

Connect Cursor to PostOnce

Use your own PostOnce API key.

Alternative: import the PostOnce plugin locally

The plugin includes the MCP connection and PostOnce workflow skill. Choose this instead of the manual connection and separate skill below. This is a local developer import, not a Cursor marketplace listing. Your organization may disable local imports.

  1. Prepare a dedicated key using step 1 below, with accounts:read for the first check. Supply POSTONCE_API_KEY privately to the Cursor process before launching it. Keep the key out of plugin files, chat and shell history. Leave the bundled ${env:POSTONCE_API_KEY} reference unchanged.
  2. Download the ZIP and extract it into a new directory named cursor-postonce. Review its files. In Cursor’s Customize and MCP settings, check for an existing PostOnce connection or skill. Before enabling the plugin, remove or disable only the redundant PostOnce setup and preserve custom instructions. A same-name marketplace plugin takes precedence over a local import.
  3. From the directory containing cursor-postonce, copy the extracted plugin into Cursor’s local plugin directory:
    Terminal · import Cursor plugin
    test ! -e "$HOME/.cursor/plugins/local/postonce" && mkdir -p "$HOME/.cursor/plugins/local" && cp -R cursor-postonce/postonce "$HOME/.cursor/plugins/local/"

    This command stops if a local PostOnce plugin already exists. Review its source and version before updating it; do not overwrite another installation. The manifest should be at ~/.cursor/plugins/local/postonce/.cursor-plugin/plugin.json.

  4. After copying, restart Cursor or run Developer: Reload Window. If you changed its private environment, fully quit and relaunch Cursor from that environment; a running desktop app may not inherit your terminal’s new variables. Open Customize and check that both the PostOnce skill and MCP connection appear. Keep your normal tool permissions.
    Try this prompt

    Show my connected PostOnce accounts.

    A successful account read verifies access; an empty list is valid. Installing the plugin alone does not authenticate your account. If the plugin is unavailable under your organization’s policy, use the supported manual MCP setup below where permitted.

To disconnect, remove only this local plugin in Customize and revoke its dedicated API key in PostOnce Preferences. Removing the plugin alone does not revoke the key.

Recommended: manual MCP setup

  1. 1

    Prepare your PostOnce account

    You need API access on your plan and at least one connected social account. Create a dedicated key with accounts:read for your first check; add posts, media, or workflow scopes only for the actions you want.

  2. 2

    Add PostOnce to your global MCP settings

    Merge this entry into ~/.cursor/mcp.json. Replace the placeholder privately in your global file, then enable PostOnce in Cursor’s MCP settings. Keep this file out of shared repositories.

    ~/.cursor/mcp.json · merge into mcpServers
    {
      "mcpServers": {
        "postonce": {
          "url": "https://postonce.to/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_POSTONCE_API_KEY"
          }
        }
      }
    }

    Follow the client-specific instructions above. Keep your API key out of agent conversations and public files.

  3. 3

    Check the connection

    Open Cursor’s agent with PostOnce enabled. Ask it to show your connected social accounts and review the requested tool permission.

    Try this prompt

    Show my connected social accounts.

    Expect account names, platforms, and IDs from list_active_accounts. Choose actual accounts before asking the agent to publish.

Read the connection documentation

From connection to first result

Start with one useful action

Find your accounts

Try this prompt

Show my connected social accounts.

Use the returned names and IDs to choose your targets. If nothing appears, connect an account in the dashboard.

Publish an update

Try this prompt

Help me publish a product update. First show my connected accounts, then ask me to choose the destinations and confirm the exact text before publishing.

After creation, ask for the post ID and each destination’s delivery status. A queued post is still waiting to publish.

Set up crossposting

Try this prompt

Show my connected accounts and the available crossposting options. Help me choose a supported source and destinations, then confirm the workflow before creating it.

A created workflow applies to future matching source posts. Inspect the workflow in PostOnce before relying on it.

Know what your agent can access

Connected accounts and scoped actions

PostOnce uses your API key’s scopes and existing account permissions. Your available destinations come from your connected accounts; media and text requirements still vary by platform.

Media needs a supported upload path

The hosted server cannot read a file path on your computer or assume access to a chat attachment. For a first media post, use a supported publicly accessible media URL and have the agent validate the selected platform’s requirements before publishing.

Media post example

Help me publish an image from a public media URL. Ask me for the URL, text, and connected destination accounts; check the platform requirements and confirm the post before creating it.

Questions before connecting

Do I need a particular PostOnce plan?

You need a plan with Public API access. Your API keys tab checks your account’s actual entitlement and shows an upgrade option when required. Connecting a client does not change your plan.

What if my agent shows no social accounts?

Connect or reconnect a social account in PostOnce, then ask the agent to list active accounts again. The API key must belong to the same PostOnce account and include accounts:read.

How do I check a failed or queued post?

Ask the agent to get the post using its returned ID and inspect each target’s status and error. Review the post in the dashboard. Check the existing result before creating another post to avoid duplicates.

How do I disconnect or replace the key?

Revoke the dedicated API key in Preferences → API keys and remove the server from your client. To reconnect, create a new key with the scopes you need and replace the old key in the client’s private configuration.

Explore more ways to connect

Your next post starts here.

Connect Cursor

Requires a PostOnce account, API access, and your own API key.