Intake-Triage

Intake-Triage

Classify raw text into structured triage objects with intent, urgency, category, and sentiment. Zero-config MCP tool for support intake, lead routing, and ticket automation

Category
Visit Server

README

Intake Triage & Classification API

A pay-per-call API that accepts raw unstructured text (emails, support tickets, Slack messages, voicemail transcripts) and returns a guaranteed-schema JSON triage object with intent, urgency, sentiment, entities, and routing.

Quick Start

curl -X POST https://your-domain.com/triage \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sk_live_abc123" \
  -d '{
    "text": "Hi, I placed an order three days ago (order #8821) and still haven't received a shipping confirmation. This is really frustrating. Can someone help? - James, james@example.com",
    "context": "ecommerce_support"
  }'

Response:

{
  "schema_version": "v1",
  "intent": "order_status_inquiry",
  "urgency": "medium",
  "sentiment": "frustrated",
  "entities": {
    "order_id": "8821",
    "issue": "missing shipping confirmation",
    "contact_name": "James",
    "contact_email": "james@example.com",
    "product": null,
    "company": null,
    "phone": null,
    "date_mentioned": null
  },
  "suggested_routing": "order_fulfillment",
  "summary": "Customer James reporting no shipping confirmation received 3 days after placing order #8821.",
  "tags": ["order", "shipping", "delay"],
  "confidence": 0.96,
  "processing_time_ms": 312,
  "model_used": "gpt-4o-mini"
}

Setup

git clone <repo-url> && cd intake-triage-api
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env   # fill in your keys
python main.py

API Endpoints

Method Path Auth Description
POST /triage API Key Classify text and return triage JSON
GET /health None Health check
GET /schema None Full JSON Schema of the output model
GET /usage API Key Current usage stats for your key
POST /keys/provision Admin Key Create a new API key
GET /docs None Swagger UI

Input Schema

Field Type Required Description
text string Yes Raw unstructured text to classify
context string No Business context hint (e.g. ecommerce_support)
schema_version string No "v1" (default)

Output Schema

Field Type Description
schema_version "v1" Response schema version
intent enum support_request, sales_inquiry, billing_question, complaint, feature_request, general_question, spam, appointment_request, refund_request, order_status_inquiry, technical_issue, unclear
urgency enum critical, high, medium, low
sentiment enum positive, neutral, frustrated, angry, confused, urgent
entities object Extracted entities: order_id, issue, contact_name, contact_email, product, company, phone, date_mentioned (all nullable)
suggested_routing enum support_team, sales_team, billing_team, technical_team, management, order_fulfillment, unroutable
summary string One-sentence summary
tags string[] Lowercase keyword tags
confidence float 0.0–1.0 confidence score
processing_time_ms int Processing time in ms
model_used string LLM model used

Authentication

Pass your API key in the X-API-Key header with every request.

To get an API key, email api@yourdomain.com with your use case.

Rate Limits

60 requests per minute per API key. Exceeding this returns 429.

Using as an MCP Server (Claude Desktop)

Add to your Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "intake-triage": {
      "url": "http://localhost:8001/sse"
    }
  }
}

The MCP server exposes one tool: triage_text(text, context?) which returns the full triage JSON object.

Using in n8n

  1. Add an HTTP Request node
  2. Set method to POST
  3. URL: https://your-domain.com/triage
  4. Headers: X-API-Key: your_key, Content-Type: application/json
  5. Body (JSON): { "text": "{{ $json.message }}" }
  6. The response JSON is directly usable in downstream nodes for routing

Using in Make / Zapier

Use the HTTP module with the same POST configuration as above. The guaranteed JSON schema means you can map output fields directly without parsing.

Pricing

Plan Price Calls/month
Free $0 500
Starter $19/mo 10,000
Agency $99/mo 100,000

Marketplace Listings

  • RapidAPI: https://rapidapi.com/your-listing (coming soon)
  • Smithery: https://smithery.ai/your-listing (coming soon)

Deployment

Docker

docker build -t intake-triage-api .
docker run -p 8000:8000 -p 8001:8001 --env-file .env intake-triage-api

Fly.io

fly launch
fly secrets set OPENAI_API_KEY=sk-... ADMIN_KEY=...
fly deploy

Running Tests

pytest tests/ -v

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured