We are currently building something exciting and will be launching soon. Registration is temporarily closed. Launching soon — registration temporarily closed.

MCP Server Documentation

Complete guide to the Sentiqra MCP (Model Context Protocol) server - setup, configuration, tool schemas, and real working examples.

Overview

The Sentiqra MCP server exposes nine tools that any MCP-compatible AI client can call:

  • detect_trust_safety - harmful language detection (16 languages)
  • detect_cybersecurity - threat detection (15 languages)
  • detect_crisis_intelligence - crisis signal detection (21 languages)
  • detect_finance - market event detection (8 languages)
  • detect_disinformation - manipulation technique detection (16 languages)
  • detect_discrimination - discriminatory-language detection (16 languages)
  • detect_emotions - emotion and sentiment detection (16 languages)
  • detect_customer_service - support-intent detection (18 languages)
  • detect_all - run all eight MCP-exposed analyzers in a single call (up to eight billable analyzer runs)

MCP tools expose the same response contract as POST /v1/analyze - no mode returns the complete taxonomy. Grouped tools return top-3 indicator groups and top-3 indicators per group; detect_emotions returns the top-3 emotion labels. Signal-match scores range from 0.0 to 1.0. Signal rows in the structured payload use the identical field shape as REST - analyzer, code, label, score, level (category/label), and parent on label-level rows - so one parser covers both surfaces. Results below the configured minimum signal score are filtered out automatically.

Execution & Cost Contract

The billing unit is the analyzer run - the same unit POST /v1/analyze and GET /v1/account/usage meter. One tool invocation is not one billable run: every tool declares the analyzers it may execute and its maximum billable runs, published in tools/list under _meta (contract sentiqra/mcp-tool/v1). Tool discovery is authoritative - this table is the deployed inventory it reports:

Tool Analyzer set Max billable runs / call
detect_trust_safetytrust-safety1
detect_cybersecuritycybersecurity1
detect_crisis_intelligencecrisis-intelligence1
detect_financefinance1
detect_disinformationdisinformation1
detect_discriminationdiscrimination1
detect_emotionsemotions1
detect_customer_servicecustomer-service1
detect_allthe eight analyzers above - exactly, no others8

detect_all is fixed orchestration, not "everything"

detect_all runs exactly the eight MCP-exposed analyzers listed above. The four REST-only analyzers - insurance, dating-safety, fraud-scam, wellness - are not exposed over MCP; call them via POST /v1/analyze, which takes one or two explicit slugs per request. The relationship between the surfaces is intentional: MCP tools are the agent interface, REST is the request/response interface, and both draw on the same account usage ledger. The full capability comparison is on the interface matrix.

Preauthorized budget

Before a tools/call executes, its declared maximum is reserved from your account quota. A detect_all call can never consume more than eight runs; if your remaining quota cannot cover a tool's declared maximum, the whole call is denied with monthly_quota_exceeded before anything executes - there is no partial start. Quota is account-level: multiple API keys on one account share the same allowance on MCP exactly as on REST.

A broader tool never widens access

Plan analyzer entitlements, per-key analyzer scopes, and language entitlements apply to every analyzer in a tool's set - identical semantics to the REST middleware. If any analyzer in the set is outside your plan or key scope, the call fails with analyzer_not_entitled before execution; a language outside your plan fails with language_not_entitled. Selecting detect_all grants nothing a narrower tool wouldn't.

Language requirements

The declared language applies to every analyzer in the set and must be supported by all of them - a language any analyzer lacks fails the call with unsupported_language before execution, so pick single-analyzer tools when mixing language coverage. Runtime fallback follows the same semantics as REST: analyzable-but-undedicated languages run under English coverage (language_fallback), and text with no analyzable content is not_applicable and unbilled.

Configuration selection

MCP tool inputs are text and language only - there is no detection_config parameter. Every call runs the analyzer's current deployed configuration; the result reports the configuration and classification fingerprint it executed under. Configuration pinning is a POST /v1/analyze feature.

Partial failures & settlement

Every result carries a per-analyzer report in structuredContent: analyzers[] entries with analyzer, status (completed, failed, timeout, overloaded, denied), and billed; plus analyzer_runs, billed_runs, and max_billable_runs. Settlement commits only runs the engine marked billed - a failed, overloaded, or denied analyzer inside detect_all is reported explicitly, never billed, and never masquerades as an empty result. A whole-call error (JSON-RPC error or an error-flagged result) releases the reservation entirely: nothing is billed.

Authentication

Authorization is your Sentiqra Bearer API key - validated at the portal boundary and independently re-validated by the engine. The endpoint does not accept OAuth access tokens or tokens issued for other services, and it never treats an upstream token as authorization: keep sq_live_ keys on this endpoint and other providers' tokens away from it. Management methods (initialize, tools/list, ping, notifications) are authenticated but never billed - same rule as REST management endpoints.

Transports

The MCP endpoint is reached over HTTPS - as a named server in AI clients, or directly from any HTTP client:

Hosted endpoint

For local AI clients (Claude Desktop, Cursor). The client connects to the hosted Sentiqra MCP endpoint over HTTPS - no local engine, no data directory, nothing to install beyond your client configuration.

https://sentiqra.tech/v1/mcp

HTTP

For remote and web integrations. The MCP endpoint is available at POST /v1/mcp on the running API server.

curl -X POST https://sentiqra.tech/v1/mcp \\\n -H "Authorization: Bearer $SENTIQRA_API_KEY" \\\n -H "Content-Type: application/json" \\\n -d '{...}'

Claude Desktop Setup

Add Sentiqra to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "sentiqra": {
      "url": "https://sentiqra.tech/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${SENTIQRA_API_KEY}"
      }
    }
  }
}

Point the client at the hosted endpoint with your Bearer key - no local engine or data directory is required. After saving, restart Claude Desktop - you'll see the Sentiqra tools available in the tool palette. Dedicated (private) deployment is arranged through the controlled access path - contact Solutions Engineering.

Cursor Setup

Add Sentiqra to Cursor's MCP configuration:

~/.cursor/mcp.json

{
  "mcpServers": {
    "sentiqra": {
      "url": "https://sentiqra.tech/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${SENTIQRA_API_KEY}"
      }
    }
  }
}

Point the client at the hosted endpoint with your Bearer key - no local engine or data directory is required. Dedicated (private) deployment is arranged through the controlled access path - contact Solutions Engineering.

HTTP Transport

The canonical MCP endpoint is POST /v1/mcp, aligned with the versioned REST prefix — POST /mcp remains as a compatibility alias; both are the same handler. Protocol versioning itself lives in the JSON-RPC protocolVersion field, not the URL path. The transport is stateless: every request is independent and initialize returns no Mcp-Session-Id — clients should not wait for or depend on a session header:

# Initialize
curl -X POST https://sentiqra.tech/v1/mcp \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","clientInfo":{"name":"my-app","version":"1.0"}}}'

# List tools
curl -X POST https://sentiqra.tech/v1/mcp \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# Call a tool
curl -X POST https://sentiqra.tech/v1/mcp \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"detect_trust_safety","arguments":{"text":"you are a worthless idiot","language":"en"}}}'

Tool Reference

detect_trust_safety

Ground your AI moderation agent in 200 harmful-content indicators across 16 languages. Instead of asking the LLM "is this harmful?" - ask Sentiqra what specifically, then let the LLM reason about the response.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_cybersecurity

Give your AI security agent access to 200 threat indicators across 15 languages. Phishing, credential theft, C2 chatter, lateral movement - all mapped to MITRE ATT&CK, all returned with confidence.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_crisis_intelligence

Deterministic crisis signal detection across 21 languages and 650 indicators - including 51 documented persuasion techniques. Your OSINT agent surfaces briefing-ready evidence, not LLM speculation.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_finance

200 market-event indicators across 8 languages, ready for AI trading assistants and compliance agents. Every event surfaces with structured signals your MAR/MiFID II surveillance workflow accepts.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_disinformation

200 manipulation-technique indicators across 16 languages, with the "What We Don't Detect" policy shipped alongside. Your election-integrity or content-moderation agent gets mechanism detection - not political refereeing.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_discrimination

Give your review agent structured discriminatory-language evidence across 16 languages, with indicators for exclusionary framing, protected-class hostility, and biased treatment claims.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_emotions

Analyze text against the 20-label emotion taxonomy across 16 languages. Useful when an agent needs a fixed emotion signal before routing, prioritizing, or composing a response.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_customer_service

Analyze customer messages against 200 support-intent indicators across 18 languages, including billing issues, product problems, urgency, escalation, and feedback signals.

Parameters:
text (string, required) - The customer message to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

detect_all

Run all eight MCP-exposed analyzers (Trust & Safety, Cybersecurity, Crisis Intelligence, Market Intelligence, Disinformation, Discrimination, Emotions, Customer Service) in a single call. Returns combined results so the agent can correlate signals across analyzers.

Parameters:
text (string, required) - The text to analyze
language (string, default "en") - language code supported by the tool's analyzers (ISO 639-1, or 639-3 where no 639-1 code exists)

Real Examples

These are live results from the deployed MCP endpoint, run under the analyzer's current deployed configuration - MCP tools do not take a configuration pin. Refresh the page and every response is identical - that's what deterministic means.

Trust & Safety - Harassment Detection

detect_trust_safety
Input:

you are a worthless idiot and nobody likes you

Output:
## Detection Results

**Language:** en

**Top Signals:**
1. Insults & Derogation (very high · 0.9)
   - Insult (very high · 0.9)
   - Belittling (very high · 0.9)

Cybersecurity - Phishing Detection

detect_cybersecurity
Input:

Click here to verify your account: http://bit.ly/secure-login

Output:
## Detection Results

**Language:** en

**Top Signals:**
1. Phishing Delivery (very high · 0.9)
   - Credential Lure (very high · 0.9)
   - Urgency Lure (very high · 0.9)

Crisis Intelligence - Displacement Report

detect_crisis_intelligence
Input:

More than 80,000 civilians have been forced to flee their homes due to intense artillery bombardment in the northern province.

Output:
## Detection Results

**Language:** en

**Top Signals:**
1. Humanitarian Migration (very high · 0.9)
   - Humanitarian Access (very high · 0.9)
   - Displacement (very high · 0.9)

Finance - Executive Fraud

detect_finance
Input:

The former CFO of Nexus Energy was indicted for executive fraud and insider trading following a massive accounting scandal. Authorities revealed that top management orchestrated an elaborate embezzlement scheme to hide massive corporate losses.

Output:
## Detection Results

**Language:** en

**Top Signals:**
1. Corporate Events (very high · 0.9)
   - Merger & Acquisition (very high · 0.9)

Multi-Domain - Cross-Correlation

detect_all
Input:

you are a worthless idiot and nobody likes you

Output:
## Cross-Domain Detection Results

**Language:** en
**Analyzers:** trust-safety, cybersecurity, crisis-intelligence, finance, disinformation, discrimination, emotions, customer-service

**Trust & Safety:**
  1. Insults & Derogation (very high · 0.9)
     - Insult (very high · 0.9)
     - Belittling (very high · 0.9)

**Cybersecurity:**
  1. Phishing Delivery (very high · 0.9)
     - Credential Lure (very high · 0.9)
     - Urgency Lure (very high · 0.9)

**Crisis Intelligence:**
  1. Humanitarian Migration (very high · 0.9)
     - Humanitarian Access (very high · 0.9)
     - Displacement (very high · 0.9)

**Market Intelligence:**
  1. Corporate Events (very high · 0.9)
     - Merger & Acquisition (very high · 0.9)

**Disinformation:**
  1. Manipulation & Coordination (very high · 0.9)
     - Urgency Amplification (very high · 0.9)

**Discrimination:**
  1. Protected Class Bias (very high · 0.9)
     - Ethnic Exclusion (very high · 0.9)

**Emotion Analysis:**
  1. Negative Emotion (very high · 0.9)
     - Frustration (very high · 0.9)
     - Disappointment (very high · 0.9)

**Customer Service:**
  1. Support Intent (very high · 0.9)
     - Billing Issue (very high · 0.9)
     - Access Issue (very high · 0.9)

Protocol Details

JSON-RPC 2.0

The server speaks JSON-RPC 2.0. Each message is a JSON object with jsonrpc, id, method, and optional params.

MCP Version

Protocol version: 2025-06-18

Methods

  • initialize - handshake, returns server capabilities
  • notifications/initialized - client acknowledgment (notification)
  • tools/list - returns available tools
  • tools/call - calls a tool with arguments
  • ping - health check

Tool Result Format

Tool results follow the MCP content format: an array of content blocks, each with type: "text" and a text field containing the human + AI readable result, including raw JSON for programmatic consumption. Results also carry structuredContent - the per-analyzer execution report (analyzers[], analyzer_runs, billed_runs, max_billable_runs) described in the execution & cost contract above.