Skip to main content
Glama
ZivSapir

Customer Support Analyst MCP

by ZivSapir

Customer Support Analyst MCP

Local Model Context Protocol server for natural-language Q&A over a customer-support ticket dataset. Built for analysts and ops — not a customer-facing chatbot.

The host (Cursor, Claude Code, or Codex) handles natural language. This process exposes tools only. It does not call an LLM and needs no API keys.

How it works

Tool

Use for

get_schema

Columns, allowed filter values, SQL vs search routing

query_tickets

Counts, group-bys, structured filters (read-only SQL)

search_tickets

Customer wording and themes (BM25 full-text search)

Counts come from SQL execution, not from model memory. Search hits are ranked examples, not volume.

Dataset: Tobi-Bueck/customer-support-tickets (downloaded once at ingest).

Architecture and rejected alternatives: DECISIONS.md. Delivery milestones: LAYERS.md.

Related MCP server: support-ticket-mcp

Requirements

  • Node.js 20+

  • npm

  • An MCP host (Cursor, Claude Code, or Codex)

No ANTHROPIC_API_KEY / OPENAI_API_KEY. The model is whatever the host already uses.

Quick start

git clone https://github.com/ZivSapir/customer-support-analyst-mcp.git
cd customer-support-analyst-mcp
npm install
npm run ingest   # downloads CSV (first run), builds local DuckDB + FTS index
npm run build
npm run verify   # optional: schema, count, search, SQL guard
npm start        # stdio MCP server — normally the host spawns this

data/ is gitignored. Each machine runs ingest locally.

MCP configuration

Use the absolute path to this repo. After changing tools, restart the MCP server (or reload the window) so the host picks up the new tool list.

Cursor

User or project config (.cursor/mcp.json / ~/.cursor/mcp.json):

{
  "mcpServers": {
    "customer-support-analyst": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/customer-support-analyst-mcp/dist/index.js"]
    }
  }
}

You should see get_schema, query_tickets, and search_tickets.

Claude Code

Same JSON in Claude Code MCP settings (or ~/.claude/claude_desktop_config.json, depending on install).

Codex

Same mcpServers block in the Codex MCP config for your install.

Example file: mcp.config.example.json.

Example questions

Question

Expected tool

How many tickets are in the dataset?

query_tickets

High-priority tickets by queue

query_tickets

Breakdown by language and priority

query_tickets

What are customers saying about refunds?

search_tickets

Password-reset complaints in German

search_tickets with language: "de"

Optional MCP prompt: ticket-analyst (reminds the host: schema first, SQL for counts, search for wording).

Full list: eval/questions.json.

Scripts

Script

Purpose

npm run ingest

CSV → data/tickets.duckdb + FTS index

npm run peek

Print columns + sample rows from local DuckDB

npm run build

Compile src/dist/

npm start

Run the stdio server

npm run verify

Smoke-test tools without a host

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Enables natural language querying of any SQL database by converting plain English questions into SQL queries, with auto-schema detection and safety features.
    3
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Enables natural language queries, CRUD operations, and analytics on a PostgreSQL database (Neon) via Claude, supporting customers, tickets, products, and analytics.
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables natural language querying of SQL databases using AI, supporting multiple database types and automatic schema discovery.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.

  • Talk to your live-events CRM (campaigns, analytics, paid ads, segments) in Claude and ChatGPT.

  • Ask your app anything — revenue, errors, read-cost, growth — and get rendered charts back.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZivSapir/customer-support-analyst-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server