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
ChatGPT Web / Chat / Work · Use the hosted connector and OAuth sign-in.
Agentic setup
ChatGPT Web / Chat / Work · Use the hosted connector and OAuth sign-in.
ChatGPT Web / Chat / Work: connect with OAuth
Sign in through FavStash when the host opens the connector. No FavStash API key, OAuth client ID, or client secret is entered here.
Open ChatGPT Settings
Open your ChatGPT account menu and choose Settings.

Enable Developer mode
Open Security and login, turn on Developer mode, and accept the warning if ChatGPT shows one.

Create a custom plugin or app
Return to Plugins or Apps, select +, and choose the option to create a new custom connection.

Use Server URL and OAuth
Keep the discovered advanced OAuth settings, acknowledge the custom-server warning, and create the connection.
Name: FavStash
Server URL: https://mcp.favstash.app/chatgpt/mcp
Authentication: OAuthUse the ChatGPT-specific endpoint shown here. No client ID or secret is entered.
Optional: add the FavStash icon
ChatGPT may not import an MCP server icon for a custom connection. If the form shows an Icon or Logo field, download this ready-to-upload 256×256 PNG and select it. If the field is absent, continue without it; the connection still works.
Download FavStash iconSign in with FavStash
Select Sign in with FavStash, complete sign-in, and approve access.

Need the text-only version? Jump to the ChatGPT OAuth steps below.
API key fallback
For clients that cannot complete remote MCP OAuth. Keep the key in local secret storage.
API key fallback
For clients that cannot complete remote MCP OAuth. Keep the key in local secret storage.
MCP endpoint
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
{
"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.
Raw HTTP examples
Useful for debugging or custom clients.
# 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
# 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.
# 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.
# 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 app | Guide shown | Authentication |
|---|---|---|
| Codex desktop app, CLI, or IDE extension | Codex local MCP | OAuth sign-in; API key only as a fallback |
| ChatGPT Web, Chat, or Work | ChatGPT OAuth screenshot guide | OAuth sign-in; no API key |
| Claude Web, Desktop, Chat, or Cowork | Claude OAuth screenshot guide | OAuth sign-in; no API key |
| Claude Code | Claude Code remote MCP guide | OAuth sign-in; no API key |
| Cursor, Windsurf, Hermes, or OpenClaw | Host-specific remote MCP guide | OAuth sign-in; no API key |
| Another CLI/custom MCP client | Manual MCP fallback | OAuth 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
agentquery 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 withcodex mcp add, and usecodex mcp loginfor 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.mdrouter 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.
-
In Claude, open Customize from the left sidebar.

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

-
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
-
Open the new FavStash connector and select Connect.

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

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.
-
Open your ChatGPT account menu and select Settings.

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

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

-
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: OAuthOptional 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.
-
Select Sign in with FavStash, complete FavStash sign-in, and approve access. ChatGPT can then use your owner-scoped FavStash tools and widgets.

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.