AI + automation

Social media for AI agents

Connect ChatGPT Web, Chat, or Work; Claude Web, Desktop, Chat, or Cowork; Codex; Claude Code; Cursor; Windsurf; Hermes; OpenClaw; or any MCP client to search your stash, schedule and publish posts, and analyze connected social accounts.

Choose your agent

Which AI are you connecting?

Select the app or agent you are using. You do not need to know whether it uses OAuth or local MCP; we will show the right steps automatically.

Agentic setup

Cursor · Add the remote MCP server in Cursor and use OAuth.

Cursor: remote MCP with OAuth

Cursor supports Streamable HTTP and OAuth. Add only the FavStash entry to the global MCP config so it is available across projects.

1

Add FavStash to Cursor's MCP settings

Use Cursor's MCP settings UI or merge this entry into ~/.cursor/mcp.json. Preserve every existing mcpServers entry.

json
{
  "mcpServers": {
    "favstash": {
      "url": "https://mcp.favstash.app/mcp"
    }
  }
}

Global config: ~/.cursor/mcp.json. For one project only, use .cursor/mcp.json in that project.

2

Complete Cursor OAuth

Open Cursor's MCP settings and connect FavStash. Cursor CLI users can start the same OAuth flow with the command below.

bash
cursor-agent mcp login favstash

Sign in on FavStash's page. Never paste a FavStash API key or social-provider credential into chat.

3

Reload and verify

Reload Cursor, confirm FavStash appears under available MCP tools, and make a real read-only request.

prompt
Use FavStash to find reels I saved this week about AI product ideas. Include links and short summaries.

Do not report success until this returns data from the user's own stash.

If configuration access is blocked

The install prompt authorizes only the FavStash MCP entry. Request narrowly scoped permission for the host command or config file. If this is a cloud-only session that cannot reach the user's machine, provide these exact local steps and describe setup as awaiting local completion.

API key fallback

For clients that cannot complete remote MCP OAuth. Keep the key in local secret storage.

MCP endpoint

text
URL                  https://mcp.favstash.app/mcp
Authorization        Bearer favstash_pk_YOUR_TOKEN_HERE
Content-Type         application/json
Protocol             MCP over HTTP (Streamable HTTP, JSON-RPC 2.0)

The minimum any MCP HTTP client needs to connect.

Manual MCP client config

json
{
  "mcpServers": {
    "favstash": {
      "type": "http",
      "url": "https://mcp.favstash.app/mcp",
      "headers": {
        "Authorization": "Bearer favstash_pk_YOUR_TOKEN_HERE"
      }
    }
  }
}

For CLI or custom MCP clients that expose a JSON server config. Claude hosted surfaces and ChatGPT Web/Chat/Work should use the OAuth guide above.

Raw HTTP examples

Useful for debugging or custom clients.

bash
# Quick smoke test — list MCP tools
curl -s -X POST https://mcp.favstash.app/mcp \
  -H "Authorization: Bearer favstash_pk_YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Smoke test — should return the tool descriptors. Health probe (no auth): GET https://mcp.favstash.app/health

bash
# Semantic search across your stash
curl -s -X POST https://mcp.favstash.app/mcp \
  -H "Authorization: Bearer favstash_pk_YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "search_saved_content",
      "arguments": {
        "query": "react hooks",
        "sourcePlatform": "youtube",
        "dateFrom": "2026-05-02T00:00:00.000Z"
      }
    }
  }'

Semantic retrieval with explicit filters. Use ISO timestamps for saved-at ranges.

bash
# Count-only query for agents
curl -s -X POST https://mcp.favstash.app/mcp \
  -H "Authorization: Bearer favstash_pk_YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "get_stash_summary",
      "arguments": { "since": "2026-05-02T00:00:00.000Z" }
    }
  }'

Count-only retrieval for inventory questions without returning transcripts.

bash
# Schedule an Instagram post to a connected account.
# Get connectionId + platform from list_connected_social_accounts and inspect
# live provider requirements with get_social_publishing_options first.
curl -s -X POST https://mcp.favstash.app/mcp \
  -H "Authorization: Bearer favstash_pk_YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "create_social_post",
      "arguments": {
        "targets": [{
          "connectionId": "YOUR_CONNECTION_ID",
          "platform": "instagram",
          "settings": {
            "contentType": "reel",
            "shareToFeed": true,
            "isAiGenerated": false
          }
        }],
        "content": "Caption goes here",
        "media": [{ "url": "https://example.com/clip.mp4" }],
        "publishAt": "2026-07-10T18:00:00Z"
      }
    }
  }'

Schedule a post to Instagram, YouTube, TikTok, or LinkedIn. Media must be public HTTPS; import temporary or private media with import_post_media first.

Here's the thing that makes FavStash different: everything is built for AI. The stash, the scheduler, the analytics — all of it is exposed through a hosted MCP endpoint, so any MCP-capable assistant can operate FavStash on your behalf, in plain conversation.

Not a chatbot bolted onto an app. The app itself, as a toolbox your AI already knows how to hold.

What your AI can do#

Once connected, a standard MCP client gets 19 owner-scoped tools for the stash, analytics, planning, and publishing. See the complete MCP tools reference.

  • Search your stash for inspiration — "find the reels I saved about product launches and pull their hooks."
  • Save links for you — paste a URL mid-conversation; it lands in your stash and uses full enrichment while your plan allowance is available.
  • Plan a content calendar — it can read what you've saved, what you've posted, and what performed, then propose a week.
  • Bulk-schedule across channels in one conversation — a week of posts, multiple platforms, one chat.
  • Pull analytics reports and suggest what to double down on — per-channel and per-post numbers, interpreted instead of just listed.

Current publishing-media boundary

The standard hosted MCP profile can import media from a server-fetchable HTTPS URL. It cannot read a local path such as /Users/.../video.mp4, because the FavStash server runs remotely. ChatGPT can receive ChatGPT-native attachment descriptors. Filesystem-capable agents can instead run the local @sketric/favstash-mcp bridge and pass an absolute local path directly in a post mutation. The bridge is a separate package release; its 0.3.0 public npm publication is pending. Until it is published, use hosted HTTPS media or ChatGPT attachments. A hosted MCP deployment does not install the local bridge. The bridge uses a locally stored FAVSTASH_API_KEY; it does not reuse the remote OAuth session.

Do not give an agent a FavStash bearer token so it can call undocumented upload routes, and do not treat opening the web composer as part of an MCP publishing flow. The local bridge validates and uploads the file, then substitutes the FavStash CDN reference inside the same create_social_post or update_social_post call. Hosted generic import_post_media still requires an existing HTTPS source.

Prompts that actually work

Schedule this reel idea to Instagram and TikTok on the next three Tuesdays at 6pm.
Which of my last 5 posts performed best and why? Pull the numbers first.
Search my stash for the "hook ideas" collection, pick the 3 strongest hooks,
and draft a TikTok script for each.
Save https://www.instagram.com/reel/... to my Inspiration collection with the
note "remix this format for the launch".
Pull my YouTube analytics for the last 30 days and tell me what to post more of.

Get connected#

If your first analytics or scheduling request has no connected social account, FavStash returns a secure setup link instead of an empty or misleading report. Open Connect account, finish the Instagram, YouTube, TikTok, or LinkedIn connection in FavStash, then repeat the request. The AI never receives the provider OAuth token.

Choose your agent#

Choose the app or agent you are actually using. The interactive chooser above then shows the correct guide automatically. You do not need to know whether the connection uses OAuth or local MCP. Use this table when reading the page as plain text or from an agent:

Your agent or appGuide shownAuthentication
Codex desktop app, CLI, or IDE extensionCodex local MCPOAuth sign-in; API key only as a fallback
ChatGPT Web, Chat, or WorkChatGPT OAuth screenshot guideOAuth sign-in; no API key
Claude Web, Desktop, Chat, or CoworkClaude OAuth screenshot guideOAuth sign-in; no API key
Claude CodeClaude Code remote MCP guideOAuth sign-in; no API key
Cursor, Windsurf, Hermes, or OpenClawHost-specific remote MCP guideOAuth sign-in; no API key
Another CLI/custom MCP clientManual MCP fallbackOAuth when supported; otherwise a locally stored FavStash API key

Instructions for AI agents reading this page

  • First identify the user's agent or app. Do not ask the user to choose between an install prompt and an OAuth screenshot guide.
  • If this page was opened with an agent query parameter, follow that selected guide instead of routing again.
  • For local Codex, use its built-in MCP support. Check codex mcp --help, add the hosted URL with codex mcp add, and use codex mcp login for OAuth. Do not search for a FavStash plugin or claim Codex lacks MCP because the current sandbox cannot write ~/.codex/config.toml. FavStash supplies its app icon through MCP metadata; a generated monogram in Codex is a display fallback, not a failed connection.
  • For Claude Web/Desktop/Chat/Cowork or ChatGPT Web/Chat/Work, use the matching OAuth section below. Do not ask for an API key, OAuth client ID, or OAuth client secret.
  • For Claude Code, Cursor, Windsurf, Hermes, and OpenClaw, use the selected remote MCP OAuth guide above. An API key is not the default path.
  • The user's one-line install prompt authorizes only the FavStash MCP entry. If the host blocks that config write, request narrowly scoped permission. If a cloud-only session cannot reach the user's machine, provide the exact local command and describe setup as awaiting local completion.
  • Use the public INSTALL_FOR_AGENTS.md router when the host is unknown. It returns the exact ?agent=... guide link.
  • Use an API key only for the local-file bridge or when the installed client cannot complete remote MCP OAuth. Ask the user to store it locally as FAVSTASH_API_KEY; never ask them to paste its value into chat.
  • Never ask for an Instagram, TikTok, YouTube, Google, or other social-provider password. Those accounts are connected inside FavStash.

Codex desktop app, CLI, or IDE extension (OAuth)

Codex's local clients support Streamable HTTP and OAuth, and the desktop app, CLI, and IDE extension share MCP configuration for the same host.

In the desktop app, open Settings → MCP servers → Add server, choose Streamable HTTP, name it FavStash, enter https://mcp.favstash.app/mcp, save, and select Restart. Select Authenticate when FavStash appears as requiring OAuth. In the IDE, use the gear menu's MCP servers screen and restart the extension after saving.

The cross-platform CLI path is:

codex mcp add favstash --url https://mcp.favstash.app/mcp
codex mcp login favstash
codex mcp list

The command resolves the correct user home on macOS, Windows, or Linux and stores the server in Codex's default ~/.codex/config.toml. Prefer it to guessing an operating-system-specific path or replacing that file manually.

If Codex is allowed to run commands but its sandbox blocks the config write, it should request permission to run only the MCP add/login operation. If the current task is cloud-only or cannot request approval, the user must run those commands on the local machine. That is a session permission limit, not a lack of Codex MCP support. Restart or open a new session before verification.

FavStash advertises its app icon through MCP metadata. Codex versions that render that newer field can use it automatically; another version may show a generated monogram. No extra icon step is required, and the display choice does not affect tools or OAuth.

Claude Web, Desktop, Chat, or Cowork (OAuth)

Claude Web, Desktop, Chat, and Cowork use the same hosted custom connector. Claude Code is configured separately with its own MCP CLI, documented below. The hosted connector opens FavStash sign-in and does not require a personal access token, OAuth client ID, or OAuth client secret.

  1. In Claude, open Customize from the left sidebar.

    Claude sidebar with Customize selected

  2. Select Connectors, then choose Add → Add custom connector.

    Claude Connectors settings with Add custom connector selected

  3. Enter the following values. Leave both advanced OAuth fields blank, then select Add.

    Name: FavStash
    URL:  https://mcp.favstash.app/mcp
    OAuth Client ID:     blank
    OAuth Client Secret: blank
    

    Claude Add custom connector form for FavStash

  4. Open the new FavStash connector and select Connect.

    Claude FavStash connector with Connect button

  5. Sign in to FavStash and approve access. When the authorization finishes, Claude can use your owner-scoped FavStash tools.

    FavStash sign-in screen opened from Claude

Claude Code (OAuth)

Add FavStash at user scope so it is available across projects without writing to the repository:

claude mcp add --transport http favstash --scope user https://mcp.favstash.app/mcp
claude mcp get favstash

Run /mcp inside Claude Code, choose FavStash, and finish the browser sign-in. Use claude mcp list to verify the entry. No FavStash API key or OAuth client credential is needed.

Cursor (OAuth)

Use Cursor's MCP settings, or merge this entry into the global ~/.cursor/mcp.json file without replacing existing servers:

{
  "mcpServers": {
    "favstash": {
      "url": "https://mcp.favstash.app/mcp"
    }
  }
}

Connect FavStash in Cursor's MCP settings. Cursor CLI users can run cursor-agent mcp login favstash. Reload Cursor before checking the available tools.

Windsurf / Cascade (OAuth)

Use the MCPs menu, or merge this entry into ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "favstash": {
      "serverUrl": "https://mcp.favstash.app/mcp"
    }
  }
}

Select FavStash in the MCPs menu and complete OAuth. A managed team may require an administrator to enable or allowlist custom MCP servers.

Hermes Agent (OAuth)

Merge this entry into ~/.hermes/config.yaml, then start login from a fresh terminal:

mcp_servers:
  favstash:
    url: "https://mcp.favstash.app/mcp"
    auth: oauth
hermes mcp login favstash

Reload with /reload-mcp or start a new Hermes chat before verification.

OpenClaw (OAuth)

Use OpenClaw's registry commands so only its favstash entry changes:

openclaw mcp set favstash '{"url":"https://mcp.favstash.app/mcp","transport":"streamable-http","auth":"oauth"}'
openclaw mcp login favstash
openclaw mcp doctor favstash --probe

Reload or restart the OpenClaw runtime that owns the MCP client after saving.

ChatGPT Web, Chat, or Work (OAuth)

ChatGPT Web, Chat, and ChatGPT Work can connect through a custom OAuth plugin. This path does not require a FavStash personal access token or an OAuth secret. The labels may appear as Plugins or Apps depending on your ChatGPT version.

This walkthrough uses FavStash's /chatgpt/mcp profile, including the ChatGPT-specific tool and widget projection. OAuth registration is discovered automatically; do not enter or guess operator credentials.

  1. Open your ChatGPT account menu and select Settings.

    ChatGPT account menu with Settings selected

  2. Open Security and login, turn on Developer mode, and accept the warning if ChatGPT displays one. Developer mode is required for custom, unverified connectors.

    ChatGPT Security and login with Developer mode enabled

  3. Return to Plugins, select the + button, and choose the option to create a new plugin.

    ChatGPT Plugins page with the add button

  4. Enter the following values. Choose Server URL and OAuth, leave the discovered advanced OAuth settings unchanged, acknowledge the custom-server risk, and select Create.

    Name:           FavStash
    Server URL:     https://mcp.favstash.app/chatgpt/mcp
    Authentication: OAuth
    

    Optional icon: ChatGPT does not consistently import an MCP server icon for a custom connection. If the form shows an Icon or Logo field, download the ready-to-upload FavStash connector icon (256×256 PNG, under 10 KB) and upload it. If no field appears, continue without it; the connection and tools are unaffected.

  5. Select Sign in with FavStash, complete FavStash sign-in, and approve access. ChatGPT can then use your owner-scoped FavStash tools and widgets.

    ChatGPT sign-in prompt for FavStash

After a tool or widget update, refresh the existing ChatGPT connector and start a new conversation. Other MCP hosts may need a reconnect or restart to rediscover tools/list. The public directory listing follows its own review and publication process; updating the hosted server does not update a reviewed listing automatically.

One-line agent install prompt

The dashboard keeps the initial copy-paste instruction to one line:

Install FavStash in this agent by following https://www.favstash.app/INSTALL_FOR_AGENTS.md; you may configure only the FavStash MCP connection, request permission if required, and verify the tools before reporting success.

INSTALL_FOR_AGENTS.md is a router. It detects Codex, Claude, Claude Code, Cursor, Windsurf, Hermes, OpenClaw, ChatGPT, or another MCP client and opens the exact ?agent=... guide above. It also tells the agent how to distinguish a host permission limit from missing MCP support.

API keys for the local bridge or incompatible clients

Use an API key for the local-file bridge, or as a fallback when the installed client cannot complete remote MCP OAuth. Go to Portal → AI Connection and create a key. It looks like favstash_pk_... and is shown once. Store it in the client's local environment or secret manager as FAVSTASH_API_KEY; do not paste it into an agent chat.

No paid subscription is required. AI Connect is included with Free. Upgrade only if you want higher usage limits. See the pricing FAQ for details.

If the client exposes only a manual remote-server form, use this contract:

URL              https://mcp.favstash.app/mcp
Authorization    Bearer <value of FAVSTASH_API_KEY>
Protocol         MCP over HTTP (Streamable HTTP, JSON-RPC 2.0)

Verify the connection

Ask your assistant something only your stash can answer:

Use FavStash to find reels I saved this week about AI product ideas.
Include links and short summaries.

If it comes back with your actual saves, the connection is live. Saving a config entry alone is not enough: finish OAuth, reload or restart the owning client, and confirm a real tool call before reporting success.

Security model#

  • One user, one scope. Every token is scoped to your account. The backend enforces ownership server-side on every tool call — a client can't read or write anyone else's data no matter what arguments it sends.
  • Tokens are revocable. Kill any key instantly from Portal → AI Connection.
  • Your channel logins stay home. The AI never sees your Instagram, YouTube, TikTok, or LinkedIn credentials or OAuth tokens — it calls FavStash tools, and FavStash talks to the platforms.

The full toolbox#

Every tool, grouped and documented with key params, lives in the MCP tools reference.

Social media for AI agents · FavStash Docs