AI and feedback
Your agent reads the feedback your client pinned
Writhink runs a remote MCP server. Connect Claude Code, Cursor or any MCP-compatible client to it and your agent reads the comments your clients left, with the page, the element, the device and the screenshot attached. It can reply to the client in the thread and mark the item resolved, without you pasting anything into a chat window. This page is the reference for that server: the connection, the seven tools, the fields that come back, the authorization model and the limits. The editor-specific walkthroughs live on /for/claude-code and /for/cursor.
No credit card. Your client doesn’t need an account.
01
A screenshot in a chat window loses most of the feedback
The usual handoff to an agent is a picture and a sentence: "client says the header is broken on mobile". The agent does not know which URL the client was on, which element they pointed at, how wide their window was, or whether three other people said the same thing. So it asks you, or worse, it guesses.
Writhink captures all of that when the pin is placed. Every comment carries the page URL, the element anchor, the pin position, the viewport size, the device class and an automatic screenshot of the pinned spot. The MCP server hands those over as structured fields, not as prose the agent has to parse out of a paragraph.
That difference grows with how much you let the agent do on its own. A person reading "the header is broken on mobile" fills the gap from six weeks of memory of the project. A model fills it from the most common pattern it has seen, which is an average of a million other sites and not yours.
02
Connect the server
It is a remote HTTP MCP server at https://mcp.writhink.com/mcp. Nothing to install, nothing running on your machine.
- Step 1
Add it to your client
In Claude Code, one command: claude mcp add --transport http writhink https://mcp.writhink.com/mcp — in Cursor or Claude Desktop, add an MCP server with the same URL and transport HTTP. Per-client setup notes are on /mcp, and the two clients we write about in full are on /for/claude-code and /for/cursor.
- Step 2
Sign in with OAuth
The first call opens a browser window and asks you to authorize. Writhink uses OAuth 2.1, so you approve access to your own account. There is no API key to paste, no service key, and no shared secret sitting in a config file.
- Step 3
Ask it what it can see
Say "list my Writhink projects". The agent calls list_projects and comes back with your projects and how many items are still open on each. If that works, everything else works.
- Step 4
Name a project and stay in it
The feedback tools operate on one project, so the first useful sentence of a session names one: "read the open feedback on the Acme site". The agent carries that project through the rest of the session instead of asking again on every call.
03
The seven tools, and nothing else
The server registers exactly seven tools. That is the entire surface: if something is not on this list, the agent cannot do it.
| Tool | What it does | Where it lands in the loop |
|---|---|---|
| list_projects | Lists the projects your account can see, with the count of open feedback items | Start of a session, to find the project |
| get_feedback | Reads the comments: text, page URL, pinned element, device, viewport, screenshot URL, status, thread | The read your agent works from |
| get_share_link | Returns the review link for a project, ready to send | When someone needs the link |
| set_feedback_status | Moves an item between open, in progress, in review and resolved | After the change is made |
| reply_to_feedback | Posts a reply the client sees in the public thread | Telling the client what you did, or asking what they meant |
| create_project | Creates a project from a URL, so a review link exists | Setting up a new client site |
| setup_widget | Sets up the embeddable feedback widget for a site | Putting the always-on widget on a site you run |
This is the whole surface. Per-client setup commands are on /mcp; the editor walkthroughs are on /for/claude-code and /for/cursor.
04
What comes back with one feedback item
get_feedback returns fields, not a paragraph the agent has to interpret. This is the list, so you know what your agent is working from and what it is not.
- The comment text exactly as the client typed it, with the display name they gave themselves. They needed no account to leave it.
- The page URL the pin was placed on, which is what lets an agent group twenty items by route without guessing.
- The element the pin is attached to, and the pin's position inside it. This is the field that turns "this button" into something you can search the repo for.
- The viewport size, and the device class: desktop, tablet or mobile. Writhink does not record the operating system, the browser or the handset model, so nothing will ever come back saying iOS or Safari — you get a width and a class, which is what a breakpoint bug is actually about.
- A screenshot of the pinned spot, as a URL your agent can fetch or hand to you.
- The current status: open, in progress, in review or resolved.
- The public thread on the item, including your replies and the client's, so "we already discussed this" is checkable rather than remembered.
05
The loop, end to end
This is what a working session looks like when the agent drives it.
- Step 1
Read the open items
get_feedback on the project returns every item with its page, element and screenshot. The agent can group by screen itself, because the page URL is a field and not a sentence.
- Step 2
Change the code
Your agent works in your repo as usual. The pin metadata narrows the search: the URL points at the route, the element anchor points at the component.
- Step 3
Reply to the client
reply_to_feedback posts into the same thread the client commented in. They read it on the review link, with no account and no login.
- Step 4
Close the item
set_feedback_status moves it to resolved, or to in review if you want the client to confirm before it is closed.
- Step 5
Run it again
Because status is a field the agent both reads and writes, the second pass only picks up what is still open. Nobody re-reads a Slack thread to work out what got done.
07
What the server will not do
- One organization at a time. The agent sees only your currently active organization, so switch it in the Writhink dashboard before you start. Otherwise it reports an empty list without knowing there is another organization sitting behind it, and no tool lets it switch for you. This is the one real gotcha in the whole setup.
- The server exposes tools, not events. Nothing pushes a new comment to your agent; it reads when you ask. Email digests are still what tells a human that something arrived.
- It reads feedback, not your codebase. Writhink has no access to your repository, your deploys or your hosting, and takes no part in the edit your agent makes.
- Seven tools is seven tools. There is nothing for deleting projects, managing teammates or billing.
- No native connector to Jira, Linear, GitHub, Slack or anything else — none of them exist, in either direction. An agent that can already file an issue can write one from what it read here, and that is the whole of it.
08
When it does not answer the way you expect
An empty project list almost always means one of two things: the active organization is not the one you meant, or you approved the browser prompt while signed in as a different account. Both are fixed in the dashboard, then re-run the same question.
A call that suddenly needs authorizing again is normal — tokens do not live forever. Every client has its own way back in: Claude Code has /mcp, Cursor reopens the browser tab on the next call. Nothing is stored on our side that you need to clean up first.
If you want to know whether the problem is you or us before you start digging, mcp.writhink.com/status checks the server's own dependencies and answers in one request. It is the same check our monitoring runs.
09
Connect over MCP, or paste the prompt
Connect over MCP
- You work in Claude Code, Cursor or Claude Desktop.
- You want the agent to read the feedback itself, with the pin metadata intact.
- You want replies and statuses updated from the same session, without opening the dashboard.
- You are doing several rounds on one project and want the next pass to skip what is done.
Paste the generated prompt
- You build in Lovable, Bolt, v0, Replit or another chat-box builder with no MCP client.
- You want one clean brief for a batch of changes rather than a live connection.
- Writhink writes it: grouped by page and element, screenshots linked, priorities set, ambiguous items flagged. See /feedback-to-prompt.
- You paste it, the builder works, you come back and move the statuses by hand.
Before you count on it
Writhink is in open beta: everything described here is available and free, no credit card. Paid plans are announced but not purchasable yet. The one limit that applies today is five AI prompt generations a month per organization.
FAQ
Questions people actually ask
- Which AI clients can connect to the Writhink MCP server?
- Any MCP-compatible client that supports remote HTTP servers. Claude Code, Claude Desktop and Cursor are the ones we use daily. There is no plugin on either side: the client points at https://mcp.writhink.com/mcp and authenticates over OAuth.
- Does the agent need its own Writhink account?
- No. It authenticates as you and sees exactly what you would see in the dashboard. There is no bot user to create and no service key to provision, which also means there is no credential to rotate when someone leaves.
- Can the agent read another client's projects by mistake?
- No. Row-level security in the database decides what every query returns, per account, whatever tool asked. The MCP layer is not what stops a cross-organization read; the database is, before any result exists.
- Can I connect it from a server or a CI job?
- Authorization runs through a browser once, so a headless machine is awkward. That is a consequence of the design rather than an oversight: there is no service key to drop into an environment variable, which is also why there is no credential sitting in your CI config waiting to be read.
- Does the server see my repository?
- No. It is remote and exchanges feedback data only. Your coding agent reads your code on your machine as it always has, and nothing from the repo reaches Writhink through this connection.
- Do I still need the review link or the Chrome extension?
- Yes. MCP is how feedback gets out, not how it gets in. Clients comment through a shared review link, through the Chrome extension when the page is behind a login or on a dev server, or through the embeddable widget. The extension is Chrome only; there is no Firefox, Safari or Edge build. The MCP server is the read side of all three.
Start
Send one link. Get feedback you can build from.
Your clients comment right on the page — no account, no screenshots, no voice notes. Writhink sorts the comments and writes the prompt for your AI.