Pinthread

Website feedback MCP server for AI coding agents. Pin comments on real site elements; your agent reads and resolves them.

Hosted MCP Server

npx add-mcp 'https://pinthread.dev/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

A website feedback MCP server.

pinthread is a hosted MCP server for visual feedback for AI agents. Your team pins comments on the real elements of your site. Your coding agent reads them over MCP, makes the change, and replies in the thread. It is included on every plan, including Free at $0 a month.

MCP visual feedback: what your agent reads

Each thread names the exact place on the page. Your agent gets:

  • The page URL
  • The element’s selector and visible text
  • The comment position or selected area
  • Every reply, with its author
Page: /pricing
Target: #annual-plan-button
Element text: Choose plan

Maya: Make it clear this is billed annually.
Alex: Keep the monthly equivalent visible too.

01 · Create an agent token

Sign up free and create a project. Open it in the dashboard and choose Agent access. Pick a scope:

  • Read: list and read threads and new activity.
  • Write: also reply, start, resolve, and reopen threads.

Each token belongs to one project. Tokens start with ptk_ and are shown once. They expire after 90 days by default, or up to 365 days. Store the token as PINTHREAD_TOKEN, never in your repository.

02 · Connect your client

The server URL is https://pinthread.dev/mcp. It uses streamable HTTP with a bearer token.

claude mcp add --transport http pinthread https://pinthread.dev/mcp \
  --header "Authorization: Bearer $PINTHREAD_TOKEN"

Run it in your project with PINTHREAD_TOKEN set to your agent token.

Read the localhost branch

A widget on localhost writes to branch local unless configured otherwise. MCP tools default to shared. Use these calls for localhost feedback:

list_threads({ branch: "local", status: "all" })
get_thread({ thread_id: "THREAD_ID", branch: "local" })

status: "all" includes all statuses in one branch, not all branches. An empty list can include availableBranches with open counts. Pass a listed branch to read its threads.

Remote server, no local install

The pinthread MCP server is remote. We host it at https://pinthread.dev/mcp, so there is no process to start and nothing to install. Your client sends JSON-RPC messages with POST and gets JSON replies. The server exposes tools only, no resources or prompts. A GET request returns HTTP 405.

It does not use OAuth sign-in. Every request carries a static bearer token. The token belongs to one project, so the agent sees only that project's threads. Each request is limited by rate and size, and a revoked or expired token is rejected with HTTP 401.

Setup guide for each agent

Each guide has the exact config for that agent, how it reads and replies to threads, and a troubleshooting list.

Tools

Read tools work with any token. Write tools need a write token.

ToolScopeWhat it does
whoamiReadShows the project, token name, and scope of this connection.
list_threadsReadLists threads. Filter by status (unresolved, open, in_progress, needs_review, resolved, all), assignee, priority, label, page, or update time.
get_threadReadReads one thread with every comment, author, and reaction, plus its attachments and any suggested text edit. Set level to compact, standard, or detailed (key attributes, component, file:line, vscode:// and cursor:// links).
get_page_contextReadReturns the open threads on one page with their anchors, attachments, and suggested edits.
list_eventsReadReads new threads and replies after a cursor, oldest first.
list_assigneesReadLists the people and agents a thread can be assigned to.
reply_threadWriteAdds a reply as the agent.
create_threadWriteStarts a thread on a page at a given anchor.
resolve_threadWriteMarks a thread resolved.
reopen_threadWriteReopens a resolved thread.
mark_suggestion_appliedWriteMarks a suggested text edit as applied, adds a note, and resolves the thread.
update_threadWriteSets a thread's status, assignee, priority, labels or due date.

get_thread, list_threads, and get_page_context return an attachments list on every thread. Each item has kind (image, log, metadata, video, or replay), name, mime, size, and createdAt. Log and metadata text is inline in text. Images, video, and replay come as a signed url with an expiresAt time. A link works for 15 minutes, only for the project and token that asked for it, and stops working when that token is revoked. Passwords, tokens, and cookie values are masked in stored logs. A thread with a suggested text edit has a suggestion field with plain old, new, and selector values. A comment made on an open menu, dialog, popover, tooltip or expanded section has a ui_state text with numbered steps that show that UI again.

React to new feedback

Call list_events with since: "latest" to start from now. Pass back the cursor it returns, and each call returns only new threads and replies. The agent workflow guide shows the whole loop from comment to fix.

Other feedback tools with MCP

ToolAgent accessFree plan
pinthreadMCP server and agent tokens on every plan, including Free$0 a month, with no trial that runs out. Up to 10 projects, 25 members per project, 10,000 comments per project, 100 MB of storage per project.
Marker.ioMCP server for all customers at no extra costNo free plan. A 15-day free trial.
BugHerdMCP server in beta, free for all BugHerd subscribersNo free plan. A 7-day free trial.
UserbackMCP connectors on paid plans2 feedback projects. Feedback stays available for 7 days.
HuddlekitMCP on paid plans1 project, 3 team members, and 100 MB of storage
RuttlNo MCP listed on the pricing page1 project, 5 pages, and up to 5 users

Checked on 7 October 2026. Sources: Marker.io pricing, Marker.io MCP, BugHerd pricing, BugHerd MCP, Userback pricing, Huddlekit pricing, Ruttl pricing.

Read all alternatives, or see what the free plan includes.

Questions

Which agents can use the pinthread MCP server?

Any MCP client that supports streamable HTTP, including Claude Code, Cursor, and Codex. Clients without MCP can take the copied comments as a prompt.

Is the MCP server included in the Free plan?

Yes. Agent tokens and MCP access are included on every plan, including Free at $0 a month.

Can the agent see my other projects?

No. Each token belongs to one project, so the agent sees only that project's threads. A read token cannot reply to, start, resolve, or reopen threads.

Is the pinthread MCP server remote or local?

Remote. pinthread hosts it at https://pinthread.dev/mcp. Your client connects over HTTP with a bearer token. You do not run a local process. The server exposes tools only, no resources or prompts, and the endpoint accepts POST requests only.

How does the MCP server authenticate?

With an agent token that starts with ptk_, sent as an Authorization: Bearer header. There is no OAuth sign-in. Each token belongs to one project and has a read or write scope. Tokens expire after 90 days by default and you can revoke them at any time.