Cursor & Windsurf
Both Cursor and Windsurf run MCP servers locally over stdio, so the remote PostFuze server is bridged with mcp-remote via npx — exactly as for Claude Desktop. Once registered, the agent in either IDE can call all 32 PostFuze tools from your editor using the same sk_live_… key as the REST API. The config is identical across both; only the file path differs.
| Client | Config file | Scope |
|---|---|---|
| Cursor (project) | .cursor/mcp.json | This project only |
| Cursor (global) | ~/.cursor/mcp.json | All projects |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | All projects |
Cursor
Create .cursor/mcp.json at your project root (or ~/.cursor/mcp.json to enable it everywhere) and add a postfuze entry. Replace sk_live_… with your key:
{
"mcpServers": {
"postfuze": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.postfuze.com/api/mcp",
"--header",
"Authorization: Bearer sk_live_…"
]
}
}
}Open Settings → MCP & Integrations (or Cursor Settings → Tools) and confirm postfuzeshows a green dot with its 32 tools. Then ask Cursor’s Agent to publish — it will request your approval before running a tool unless you enable auto-run.
Windsurf
Windsurf’s Cascade uses the same shape under a mcpServers key. Edit ~/.codeium/windsurf/mcp_config.json directly, or open Windsurf Settings → Cascade → MCP Servers → Manage → View raw config:
{
"mcpServers": {
"postfuze": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.postfuze.com/api/mcp",
"--header",
"Authorization: Bearer sk_live_…"
]
}
}
}Save, then hit Refreshin the MCP Servers panel. PostFuze’s tools become available to Cascade; a hammer icon in the chat shows the active tool count.
Prerequisites
mcp-remote requires Node.js 18+ so npx is on your PATH. If your shell strips the space in the header, both clients accept the colon-delimited form "Authorization:Bearer sk_live_…". After editing config, refresh the MCP panel (Cursor) or restart Windsurf so the server is picked up.Example prompts
From the Agent/Cascade chat, drive PostFuze in natural language while you code:
"Schedule a release-notes post to my X and LinkedIn accounts for Friday 4pm,
using the highlights from this CHANGELOG.md."
"List my connected accounts and show which ones haven't posted this week."
"Upload the image at ./assets/launch.png and attach it to a draft post for
Instagram so I can review it before publishing."That last prompt chains upload_media → confirm_media_upload → create_post with is_draft: true, so nothing goes live until you say so. For video the agent waits for the asset to reach ready between confirm and create; some platforms also need an extra config field (e.g. a Pinterest board). See publishing a video with an agent and per-platform configuration.
Next steps
- Tool reference — every tool and its parameters.
- Claude Desktop — the same bridge for the desktop app.
- n8n & Make — no-code automation over the REST API.