Skip to main content
Glama
ericNotion

Feedback Pipeline MCP Server

by ericNotion
README.md
# 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:
1. **Reproduce bugs** - Uses Playwright browser automation to reproduce reported bugs and capture screenshots
2. **Build fixes** - Uses Claude Code to implement fixes, run tests, and verify with Playwright

## Setup

1. Install dependencies:
   ```bash
   npm install
   ```

2. Create a `.env` file with your Notion API token:
   ```
   NOTION_API_TOKEN=your_token_here
   ```

3. Start the server:
   ```bash
   node server.js
   ```

4. Expose via ngrok (for Notion to connect):
   ```bash
   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 bug
- `reproduction_steps` (optional): Steps to reproduce
- `callback_agent_id` (required): Agent ID for callback
- `callback_thread_id` (required): Thread ID for callback
- `callback_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 fix
- `plan` (optional): Implementation plan
- `verify_with_playwright` (optional): Whether to verify with Playwright (default: true)
- `callback_agent_id` (required): Agent ID for callback
- `callback_thread_id` (required): Thread ID for callback
- `callback_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 connection
- `POST /` - MCP message handler
- `GET /health` - Health check
- `GET /tasks` - List all tasks
- `GET /tasks/:taskId` - Get task details
- `GET /demos` - List demo recordings
- `GET /demos/:taskId/` - Live progress page with screenshots

## Callbacks

When a task completes, the server:
1. Posts results to the agent thread via Notion Agents SDK API
2. 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_TOKEN` environment variable for callbacks