Prepare the server locally
Run this once before adding it to Claude Code.
npm install
node server.jsRegister it in Claude Code
claude mcp add -e "NOTION_API_TOKEN=${NOTION_API_TOKEN}" feedback-pipeline -- node /path/to/server.jsReplace any placeholder paths in the command with the real path on your machine.
NOTION_API_TOKENMake your agent remember this setup
feedback-pipeline's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Automated bug reproduction using Playwright browser automation
- Integration with Claude Code to implement and test software fixes
- Callback system to notify Notion agents via thread messages and page comments
- Live progress tracking with screenshots for ongoing tasks
Tools 4
reproduce_bugReproduce a bug using Playwright browser automation.build_fixBuild a fix or feature using Claude Code.get_task_statusCheck the status of a running or completed task.pingTest connectivity - returns pong.Environment Variables
NOTION_API_TOKENrequiredAPI token for Notion integration and callbacksTry it
Original README from ericNotion/feedback-pipeline-mcp
Feedback Pipeline MCP Server
An MCP (Model Context Protocol) server that bridges Notion custom agents with Claude Code for automated bug reproduction and fix building.
Overview
This server allows a Notion custom agent to:
- Reproduce bugs - Uses Playwright browser automation to reproduce reported bugs and capture screenshots
- Build fixes - Uses Claude Code to implement fixes, run tests, and verify with Playwright
Setup
Install dependencies:
npm installCreate a
.envfile with your Notion API token:NOTION_API_TOKEN=your_token_hereStart the server:
node server.jsExpose via ngrok (for Notion to connect):
ngrok http 3001
Architecture
Notion Custom Agent
│
▼ (via ngrok)
MCP Server (port 3001)
│
▼
Claude Code CLI
│
▼
Playwright MCP
│
▼
Notion Dev Server (port 3030)
MCP Tools
`reproduce_bug`
Reproduce a bug using Playwright browser automation.
Parameters:
bug_description(required): Description of the bugreproduction_steps(optional): Steps to reproducecallback_agent_id(required): Agent ID for callbackcallback_thread_id(required): Thread ID for callbackcallback_page_id(required): Page ID for comment notification
`build_fix`
Build a fix or feature using Claude Code.
Parameters:
description(required): What to build or fixplan(optional): Implementation planverify_with_playwright(optional): Whether to verify with Playwright (default: true)callback_agent_id(required): Agent ID for callbackcallback_thread_id(required): Thread ID for callbackcallback_page_id(required): Page ID for comment notification
`get_task_status`
Check the status of a running or completed task.
Parameters:
task_id(required): The task ID to check
`ping`
Test connectivity - returns "pong".
Endpoints
GET /- SSE endpoint for MCP connectionPOST /- MCP message handlerGET /health- Health checkGET /tasks- List all tasksGET /tasks/:taskId- Get task detailsGET /demos- List demo recordingsGET /demos/:taskId/- Live progress page with screenshots
Callbacks
When a task completes, the server:
- Posts results to the agent thread via Notion Agents SDK API
- Adds a comment to the task page with demo URL and summary
Configuration
The server expects:
- Notion dev server running on port 3030
- Playwright MCP configured in the Claude Code environment
NOTION_API_TOKENenvironment variable for callbacks