Skip to the content

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/mcp

Any 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.

  1. 01

    list_proposals with category ["article"] and state "pending"

    The articles the Writer agent left for you, newest first.

  2. 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.

  3. 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.

  4. 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.