Back to product demoMCP agent workflow

MCP-Powered Product Feedback Agent

This demo shows an agent calling the Product Feedback Synthesizer through MCP tools instead of the web UI. The server route asks an OpenAI model to choose each MCP action after discovering the tool manifest.

How the request flows
This page does not call the product backend directly. It uses a Next.js server route running an MCP client, which calls the deployed Railway MCP server. The MCP server then invokes product tools that call the existing FastAPI backend.
Browser page
Next.js server route
MCP TypeScript client
Railway MCP server
MCP tool wrapper
FastAPI backend
Supabase and/or OpenAI
Structured MCP response
Page render
Orchestration steps are MCP tool calls. The LLM-backed parts are explicit in two places: the server-side agent chooses MCP tools, and the backend may also use OpenAI inside synthesis or chat tools when configured.
Fixed demo input
The page uses one product profile and one raw feedback block so the workflow is repeatable.

Product

Acme Analytics

A B2B analytics dashboard for revenue teams.

Analysis goal

Identify the top customer pain points and recommend what to prioritize next.

Follow-up question

What should we prioritize next and why?

Calls the deployed MCP service over Streamable HTTP.
Agent workflow
Each card shows why the LLM agent chose an MCP tool, the structured arguments, the MCP response, and how the output feeds the next decision.

0. Agent discovers MCP tools and receives raw feedback

The server route connects to the Railway MCP service, lists available tools and schemas, then gives that manifest plus the product feedback to the model.

1. Agent creates a feedback set

Prepare the product target and workflow metadata.

Agent decision

Waiting for the LLM agent to choose the next MCP action.

MCP tool selected

create_feedback_set

Used next for

The returned feedback_set_id is passed into add_pasted_feedback.

2. Agent ingests pasted feedback

Send the raw feedback block through the deployed MCP tool.

Agent decision

Waiting for the LLM agent to choose the next MCP action.

MCP tool selected

add_pasted_feedback

Used next for

The same feedback_set_id is passed into run_synthesis.

3. Agent runs synthesis

LLM selected

Trigger analysis on the MCP service.

Agent decision

Waiting for the LLM agent to choose the next MCP action.

MCP tool selected

run_synthesis

Used next for

The returned analysis_run_id becomes the handle for retrieving the analysis bundle and asking follow-up questions.

This is the main synthesis step. The backend may call OpenAI here when configured, with deterministic fallback otherwise.

4. Agent retrieves the analysis bundle

Retrieve the dashboard bundle returned by synthesis.

Agent decision

Waiting for the LLM agent to choose the next MCP action.

MCP tool selected

get_analysis_bundle

Used next for

The agent uses the structured bundle as context for product reasoning and final display.

5. Agent asks a grounded follow-up question

LLM selected

Ask a grounded product question against the completed run.

Agent decision

Waiting for the LLM agent to choose the next MCP action.

MCP tool selected

ask_analysis_question

Used next for

The final recommendation is rendered from the answer and supporting evidence.

This is the grounded follow-up step. The backend may call OpenAI here when configured, with deterministic fallback otherwise.