Skip to main content
Glama
25andresbernal

product-feedback-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_AUTH_TOKENNoThe bearer token clients must send. Required when using --transport http; server refuses to start over HTTP without it.
FEEDBACK_DATASET_PATHNoWhich .jsonl file the server reads. Point it at a real export in the same shape to use real data.data/feedback.jsonl

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_feedbackA

Keyword search over feedback text, ranked with BM25.

Args: query: free-text search query, e.g. "shift swap approval". source: optional exact filter: support_ticket, app_review, sales_call_note, or nps_comment. segment: optional exact filter: small_business, mid_market, or enterprise. limit: maximum number of results to return (default 20).

Returns feedback items ordered by relevance (highest BM25 score first), each as a dict with id, source, created_at, customer_segment, text, rating (if present), and score.

list_themesA

List feedback themes with at least min_items items, largest first.

Themes are computed deterministically from keyword and phrase overlap across feedback text (TF-IDF plus keyword-cluster grouping), with no LLM involved, so the same dataset always produces the same themes. Each theme's label is a trimmed first clause of its most representative real item (its "medoid"), not a synthetic phrase; representative_item_id names that item so you can look it up via feedback://item/{id}. Use get_theme(theme_id) for the full detail on one theme, including representative quotes.

get_themeA

Get one theme's member items, representative quotes, and source breakdown.

Args: theme_id: a theme id as returned by list_themes, e.g. "theme-01". Works for any theme the clustering produced, even one smaller than list_themes' default min_items.

Raises ValueError (surfaced to the client as a tool error) if the theme_id does not exist for the current dataset.

tag_severityA

Tag one feedback item's severity (critical, high, medium, or low).

Args: feedback_id: an id from the dataset, e.g. "fb-0001".

Severity is rule-based, from keywords in the text, the item's rating if it has one, and its source. Returns the severity label, a numeric score, the keywords that matched, and a plain-language rationale. Raises ValueError if the id does not exist.

severity_summaryA

Summarize severity across the whole dataset.

Returns item counts by severity level, a breakdown by source and by customer segment, and the feedback ids of the ten highest- scoring critical/high items to look at first.

draft_problem_statementA

Draft a structured, PRD-style problem statement for one theme.

Args: theme_id: a theme id as returned by list_themes, e.g. "theme-01".

Returns who is affected (customer segments and counts), what the problem is (a generated one-line description), evidence (representative quotes with feedback ids), frequency (count, percent of dataset, source breakdown, date range, average rating), and a suggested success metric derived from the theme's own volume. Every field traces back to real items in the dataset; nothing is invented. Raises ValueError if the theme_id does not exist.

Prompts

Interactive templates invoked by user choice

NameDescription
triage_this_weeks_feedbackA prompt template that walks through a weekly feedback triage pass.

Resources

Contextual data attached and managed by the client

NameDescription
feedback_summaryDataset-level summary: item counts by source and segment, rating stats, date range.

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search, theme listing, theme detail, severity tagging, severity summary, and problem statement drafting. No two tools overlap in functionality, and descriptions make selection unambiguous.

Naming Consistency5/5

All tools follow the same verb_noun snake_case pattern (search_feedback, list_themes, get_theme, tag_severity, severity_summary, draft_problem_statement). The naming is consistent and predictable.

Tool Count5/5

Six tools is well within the ideal range for a focused product-feedback analysis server. Each tool covers a distinct stage of the analysis workflow, and none feel redundant or missing.

Completeness4/5

The tool surface covers the core analysis lifecycle: search, theme discovery, theme inspection, severity tagging, aggregate severity, and problem statement generation. A direct get_feedback_item is missing but search_feedback already returns full item details, so this is a minor gap.

Maintenance

ActivityMaintained
ResponsivenessNo issues