In your stack

Your client points at the element. Cursor reads it without you retyping anything.

Writhink gives your client one link. They pin a comment on the exact element of the running page, with no account and no signup. Cursor then reads those comments in the editor through the Writhink MCP server. This page is the Cursor half of the setup: where the configuration goes, what a tool call looks like in the composer, and what to do instead if you would rather not add a server at all.

No credit card. Your client doesn’t need an account.

implementation-plan.md · 3 changeswrithink
[P1]Hero headline — scale it up, tighten the leading, more contrast.
[P2]The CTA fails AA contrast: darken the color.
[P3]Remove the duplicate pricing card · 2 comments merged.
→ paste into Claude · Cursor · ChatGPTCopy prompt

01

Connect Writhink to Cursor

Cursor speaks remote MCP over HTTP, and Writhink runs a remote MCP server. This is a two-minute setup you do once per machine.

  1. Step 1

    Open Cursor's MCP settings

    Settings, then MCP, then add a new server. If you would rather edit the file, Cursor reads ~/.cursor/mcp.json for every project and .cursor/mcp.json inside a repo for that project only.

  2. Step 2

    Add the server URL

    The entry is { "mcpServers": { "writhink": { "url": "https://mcp.writhink.com/mcp" } } } and the transport is HTTP. There is no API key field to fill in, because there is no API key.

  3. Step 3

    Approve the browser prompt once

    The first time Cursor calls a tool, a tab opens and asks you to authorize with the Writhink account you already have. Nothing secret ends up in the config file, and you can revoke the authorization from your Writhink profile at any time. What that token can actually reach is written out on /visual-feedback-for-ai-agents.

  4. Step 4

    Check that it worked

    Ask Cursor, in Agent mode, to list your Writhink projects. Project names and open counts coming back means you are connected. A server that shows up with no tools under it usually just needs a window reload — Cursor reads the config when it starts.

02

What it looks like in the editor

Cursor's MCP interface moves between releases, so treat the labels as approximate and the shape as reliable.

  1. Step 1

    The server sits in Settings, under MCP

    With a status dot and its tools listed underneath. Individual tools can be switched off there, which is the simplest way to give the agent the read-only ones and keep the rest for yourself.

  2. Step 2

    You ask in the composer, in Agent mode

    "Read the open Writhink feedback on the Acme site and start with the pricing page." Ask mode will happily discuss feedback it cannot fetch; it is Agent mode that calls the tool and then edits files.

  3. Step 3

    The pending call appears inline, and waits

    A small card with the tool name and its arguments, sitting there until you run it — unless you have turned auto-run on. This is the moment you notice the agent is about to read one project rather than the one you meant.

  4. Step 4

    The result lands collapsed

    Expand it and you get the raw items: page URL, pinned element, viewport, device class, screenshot URL, status and thread. Worth doing on the first pass, because it is also how you check the agent is quoting the client rather than paraphrasing them at you.

  5. Step 5

    From there it is a normal Cursor session

    The element anchor and the URL narrow the search to a component, the viewport tells you whether it is a breakpoint problem, and the diff shows up in the editor where you review it like any other.

03

Cursor details that save you a support message

  • .cursor/mcp.json in a repo scopes the server to that project; ~/.cursor/mcp.json makes it global. Per-project is the safer default when you work for more than one client, because a session on one client's site has no business reading another's review.
  • The config file holds a URL and nothing else, so it is safe to commit and share with the team. Each teammate authorizes with their own account and sees exactly what their own account can see.
  • Keep approval on for the two tools that talk to your client. A reply and a status change are visible to them the second they run, and there is no undo that unsends a message.
  • Reload the window after editing the config by hand. A server added while Cursor is running often will not show its tools until you do.
  • None of this reads your repository. The server exchanges feedback data; Cursor reads your code locally the way it always has, and the two only meet inside your session where you can watch it happen.

04

Connect the server, or paste the prompt

Use the MCP connection when

  • You want Cursor to pull the current feedback while you work, without leaving the editor.
  • You want to reply to the client and change statuses in the same session as the fix.
  • Feedback keeps arriving. The agent re-reads the live state instead of you re-pasting a list.
  • You are working through a long review and want to go item by item, marking each one as you close it.

Use the generated prompt when

  • You are handing the work to someone who has not set the server up.
  • You want a fixed, readable brief to review before any code changes — that is the generated prompt, described on /feedback-to-prompt.
  • You are pasting into a tool with no MCP client at all, like a Lovable or v0 chat box.
  • You are on a machine where you would rather not authorize an agent against your account.

05

Getting the feedback in when the app only runs on localhost

Writhink loads the page through a proxy so pins can attach to real elements. That covers anything with a public URL: production, a preview deployment, a staging domain. You paste the URL, you get a review link, you send it.

It does not cover http://localhost:3000, and it does not cover anything behind your app's login. That is what the Chrome extension is for. It runs in the browser on the page you are already looking at, so a signed-in dashboard or a dev server can be reviewed the same way. It is Chrome only — there is no Firefox, Safari or Edge build. Feedback left through the extension lands in the same project and comes back through the same tools, so nothing about your Cursor workflow changes.

There is a third way in: an embeddable script you drop on a staging build. Your client leaves feedback in place whenever they notice something, and you stop sending a fresh review link for every round.

06

When this is the wrong tool

If the people reporting problems are the developers on your own team, this is overhead. Write an issue. Writhink earns its place when the person who sees the problem cannot describe it in code and would otherwise send you a screenshot with a red circle drawn on it.

There is also no plugin. Writhink installs nothing into Cursor, never reads your repository, and does not open pull requests. It hands your agent the client's feedback with its context intact, and what happens next is the agent you already trust doing what you already watch it do.

The full tool list, the authorization model and the one real limitation of the server are deliberately not repeated here. They live on /visual-feedback-for-ai-agents, which is where they stay current.

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

Cursor shows the server but no tools under it. What now?
Reload the window first; that fixes it most of the time, because the config is read at startup. Then check the URL is https://mcp.writhink.com/mcp with HTTP transport. If the browser tab never opened, trigger any tool call to start the authorization. If you suspect the server rather than your setup, mcp.writhink.com/status answers that in one request.
Can the agent reply to my client without me seeing it?
reply_to_feedback posts a message the client reads in their thread, so treat it as an action worth approving. Cursor asks before running a tool unless you have told it not to. Keep that approval on for replies and for status changes, and let the read-only tools run freely.
Does the MCP server see my codebase?
No. It is a remote server that exchanges feedback data only. Cursor reads your repository locally the way it always has. The two never meet except inside your session, where you can see what is happening.
How is authorization handled? Do I paste a token?
There is no token to paste. The connection uses OAuth 2.1 in a browser tab and the agent authenticates as you, so it sees exactly what your account can see. Revoke it from your Writhink profile and access ends immediately. The full model is on /visual-feedback-for-ai-agents.
Can Cursor open the screenshot that comes with a comment?
The screenshot URL comes back with every item. Whether your model opens it depends on the client and the model you have selected. The text context — the element anchor, the page URL and the viewport — is usually what a code edit actually needs.
What does my client have to install?
Nothing. They open the review link, give a display name, and start pinning. They can attach files, reply in a public thread, and edit or delete their own comments, all without an account.

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.