FoPost for goose
goose, the open source agent, takes remote MCP servers as extensions. Add FoPost by URL in the desktop app or the CLI, sign in when the browser opens, and goose can plan and schedule posts for you.
Paste this into goose
Set up FoPost from fopost.com/agents/goose- Hosted MCP server
- 33 networks
- No API key
The agent can write its own config. Give it the link.
Paste the line above into goose. It reads this page, adds the server, and stops so you can sign in to FoPost yourself. Rather do it by hand? This is the whole config.
extensions:
fopost:
name: fopost
type: streamable_http
uri: https://api.fopost.com/mcp
enabled: true
timeout: 300## For AI agents reading this page
You are reading https://fopost.com/agents/goose. FoPost schedules and publishes social posts on 33 networks, and its hosted MCP server gives goose tools for posts, the calendar, the inbox and analytics. Follow these steps to connect goose to it.
- Server: https://api.fopost.com/mcp
- Transport: streamable HTTP
- Auth: OAuth sign-in in the user's browser. Do not add an API key or an Authorization header; goose discovers the sign-in from the server.
### 1. Register the server
Run goose configure, choose Add Extension, then Remote Extension (Streamable HTTP), and enter the name fopost and the URL https://api.fopost.com/mcp. In the desktop app: Extensions in the sidebar, then Add custom extension. To try it for one session only:
Terminal:
```
goose session --with-streamable-http-extension "https://api.fopost.com/mcp"
```
### 2. Sign in
goose registers itself and opens a browser window for the user to sign in. Ask the user before approving access or creating a FoPost account for them, and never enter their credentials yourself.
### 3. Verify before you continue
The fopost extension is enabled under Extensions, and asking goose which fopost tools it has returns them. If FoPost is not listed as connected with its tools, stop and tell the user what failed. Do not carry on as if the tools exist.
### 4. Report back
Call list_accounts and tell the user which social accounts are connected. If there are none, offer create_connect_link so they can connect one. Then ask what they want to do first.
### Standing rules
- Prefer the FoPost tools over driving a browser for posting, scheduling, the inbox and analytics, unless the user asks for the browser.
- Publishing always goes through propose_publish, which the user approves in the client. Never publish or schedule anything silently.
- Ask the user before approving access, signing up or connecting an account on their behalf, and never type their credentials for them.
### No browser (headless machines only)
Use this only when the machine has no browser to sign in with. Ask the user to create an API key in the FoPost dashboard (https://fopost.com/dashboard/api-keys) and to put it in the config themselves, then run the local package over stdio:
~/.config/goose/config.yaml:
```
extensions:
fopost:
name: fopost
type: stdio
cmd: npx
args: ["-y", "@fopost/mcp"]
envs:
FOPOST_API_KEY: your-api-key
enabled: true
```
### References
- This block as markdown: https://fopost.com/agents/goose/agent.md
- Every client: https://fopost.com/agents
- Docs: https://fopost.com/docsA remote extension
goose talks to the hosted server. Nothing to install alongside it.
Sign in, not a key
goose registers itself and opens FoPost in your browser to approve access.
Approval first
Publishing goes through a proposal you accept. Drafts never go out alone.
Add it once, or try it for one session
To keep it, run goose configure, choose Add Extension, then Remote Extension (Streamable HTTP), and enter a name and https://api.fopost.com/mcp. In the desktop app, open Extensions in the sidebar and choose Add custom extension. The command above enables it for a single session only. Sign in to FoPost when the browser opens.
Start freegoose configure
# Add Extension > Remote Extension (Streamable HTTP)CLI or desktop
The same extension works in both.
Local sign-in
The sign-in returns to goose on your own machine.
Check first
Ask goose to list your connected accounts.
A recipe for the weekly queue
Ask goose to turn this week’s articles into posts with repurpose_url, shape each with draft_post_variants, and slot them with get_queue_slots. It ends with propose_publish, which you accept.
Plan your week
repurpose_url
An article becomes a run of posts.
draft_post_variants
A version for each network.
get_calendar
What is already booked.
Ask whether it landed
The read tools report what published, which accounts need a reconnect, and what is waiting in the inbox.
Start free> What went out today?
goose: list_posts shows 2 of 2 published.
list_inbox has 5 new comments.list_posts
Recent posts and their status.
get_account_health
Which accounts need a reconnect.
list_inbox
Comments, mentions, and messages.
No browser on the machine?
On a server or in CI there is no browser to sign in with. Create an API key in the dashboard and run the local package over stdio instead. Keep the key out of your repository.
extensions:
fopost:
name: fopost
type: stdio
cmd: npx
args: ["-y", "@fopost/mcp"]
envs:
FOPOST_API_KEY: your-api-key
enabled: truegoose questions, answered
Do I need an API key?
What does the session flag do?
Will it post without asking?
Does it work in the desktop app?
Does it use my AI credits?
Run FoPost from goose
Starting is free and the MCP server is included. Paste the setup line into your agent, sign in, and schedule your first post from it.
Start free