Skip to main content
Glama
dsoziev1

Ticket Support MCP Server

by dsoziev1

День 33 — AI-ассистент поддержки пользователей

Мини-сервис поддержки: отвечает на вопросы о продукте (sso-auth0), используя RAG (FAQ + документация) и контекст тикета/пользователя, который берёт через MCP (локальный JSON тикетов или ServiceNow). Веб-чат на FastAPI, генерация — DeepSeek, retrieval — локальный fastembed (офлайн).

вопрос + выбранный тикет
   ├─ MCP ticket_get / user_get      (контекст тикета и пользователя)
   ├─ RAG retrieve (FAQ + docs)      (база знаний, локально)
   └─ DeepSeek                       → ответ с цитатами [Sn], адаптированный под тикет

Пример из задания: тикет T-1001 («Callback URL mismatch», SPA) + вопрос «Почему не работает авторизация?» → ассистент отвечает про пустой Allowed Callback URLs для этого приложения, со ссылками на FAQ.

Эскалация: если ответа в базе знаний нет, ассистент честно говорит об этом и автоматически создаёт тикет для инженера (через MCP-тул ticket_create, в JSON или ServiceNow). Также есть ручная кнопка «Создать тикет».

Быстрый старт

cp .env.example .env          # впиши DEEPSEEK_API_KEY
pip install -r requirements.txt
python3 ingest.py             # собрать базу знаний (FAQ + docs sso-auth0)
bash run.sh                   # http://localhost:8050  (или: python3 support.py "вопрос" --ticket T-1001)

Related MCP server: TicketAI

Компоненты

Файл

Роль

data/faq.md

support-FAQ по подключению к Auth0 (источник RAG)

data/tickets.json, users.json

сид-тикеты и пользователи (JSON-бэкенд)

ticketstore.py

интерфейс TicketStore + JsonStore + ServiceNowStore

crm_servicenow.py

адаптер ServiceNow Table API (Incident → тикет)

ticket_server.py

MCP-сервер: ticket_list/ticket_get/ticket_search/user_get

ingest.py, rag.py

индекс базы знаний + retrieve

support.py

ядро: контекст тикета (MCP) + RAG + DeepSeek → ответ

web.py, run.sh

веб-чат support-desk

Бэкенд тикетов (через MCP)

Доступ к тикетам идёт только через MCP (ticket_server.py поднимается stdio-подпроцессом). Бэкенд выбирается TICKET_BACKEND:

  • json (по умолчанию) — data/tickets.json + users.json, работает офлайн;

  • servicenow — живые Incident из ServiceNow (см. docs/USAGE.md по регистрации бесплатного Personal Developer Instance и .env).

Безопасность

DEEPSEEK_API_KEY (и при использовании — SERVICENOW_*) в .env (gitignored), публикуется только .env.example. index/+cache/ gitignored (пересобираются ingest.py). Ассистент только читает тикеты (write в CRM не делает).

Документация

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers