Kwern's MCP server
Your products, their foundation doc, everything their connectors synced and everything waiting for your approval, exposed to any MCP client, along with your connectors themselves, called through Kwern. It reads and writes data; it never runs an agent and never spends a token on Kwern's side.
claude mcp add --transport http kwern https://api.kwern.app/mcpAny client that speaks streamable HTTP and OAuth works the same way. The first call opens the consent screen, where you pick the account and whether the client may write.
What it exposes
kwern://products
Every product this account owns, with the id every tool takes.
kwern://skills
The marketing skills Kwern hosts. Read-only: no skill runs over the MCP.
The resources of a product
One set per product, each at kwern://products/{id}/{name}.
foundation
The stable description of the product every skill reads first: positioning, audience, voice, competitors.
growth-plan
The goals, bets and channels the product is currently executing.
memory
The dated lessons the product has learned: what to do, what to avoid, what was observed.
launch
The launch the product is preparing or has just made: its launch day, the days to it, whether it is still open, and the press release and FAQ.
snapshots
The newest connectors of the product, each with the last data it synced from its service.
outputs
The newest outputs the runs produced, by agent.
feed
The newest proposals of the product and the state each one is in.
recommendations
The problems the weekly crawl found on the site, open ones first, each with the pull request its fix run opened.
journal
Run, agent, proposal and connector events, newest first.
The tools
list_products
Lists the products this account owns. Every other tool takes one of these ids.
state
Where one product stands in a single call: its surfaces, its connectors and their health, its agents and what paused them, what waits in the approval feed, how current its docs are and which repository backs it.
list_proposals
The approval feed of one product, newest first, filtered by category, channel or state.
get_proposal
One proposal and the state it is in. An article carries its Markdown body and its front matter.
read_connector_api
Calls any endpoint that reads on the API of one of your connectors. Kwern signs the call with your connection, so no credential reaches your agent, and hands back the service's answer as the service wrote it, its refusals included.
The write tools
On a write token only. A read token never sees them.
approve_proposal
Approves a pending proposal and publishes it, on the channels Kwern can write to.
mark_proposal_done
Ends a proposal you posted yourself. Kwern sends nothing. This is what ends an article.
record_reply
Records how a creator answered a message an agent sent them, yes or no, with the email they gave. A yes opens their affiliate account on the next run.
reject_proposal
Rejects a pending proposal. Nothing is published or spent. A reason you pass is kept in the journal.
write_connector_api
Calls any endpoint that changes something on one of your connectors, signed by Kwern with your connection and sent at once, with no approval in Kwern. A refusal comes back as the service wrote it. A post made here goes out at once and stays off your calendar; create_post schedules one.
write_foundation_doc
Replaces the product's foundation doc, keeping the version before it.
edit_loop
Changes what you set on one of the product's agents: its instructions, the influencers agent's offers, the writer's articles a week or an ads agent's monthly budget. The journal keeps what changed.
upload_media
Reserves a picture or a video from your disk and answers the address the client sends its bytes to, straight to Kwern's storage.
create_post
Puts your own post or thread on the calendar, already approved: scheduled for its hour, or published at once with none.
edit_post
Rewrites a post that has not gone out, an agent's included. A scheduled post keeps its hour.
move_post
Moves a post that has not gone out to another hour. On a post an agent left pending, it approves it for that hour.
Publishing the Writer agent's articles
Kwern never publishes to a blog itself, so an article ends where you put it. The last call is the one that ends it. Kwern's own blog is published this way, by a scheduled client with a token like yours.
- 01
list_proposals with category ["article"] and state "pending"
The articles the Writer agent left for you, newest first.
- 02
get_proposal
The Markdown body, and the front matter: title, slug, target keyword, meta description, article type and the prompt for an open-graph image.
- 03
Publish on your side
Kwern never publishes to a blog itself, so the article lands wherever you keep yours. Kwern's own blog is published by these calls.
- 04
mark_proposal_done
What ends an article. approve_proposal never does: Kwern cannot publish it.
Questions
Someone is asking for what you built today.
On Reddit, on X, in ChatGPT's answers. Kwern finds them every morning and drafts the reply in your voice; you decide what goes out.