mcp
UnexploredDetect grooming, bullying, fraud, and 16+ online threats across text, voice, image, and video.
Install
Terminal
$npx -y @tuteliq/mcpmcp_config.json
{
"mcpServers": {
"ai-tuteliq-mcp": {
"env": {
"TUTELIQ_API_KEY": "${TUTELIQ_API_KEY}"
},
"args": [
"-y",
"@tuteliq/mcp"
],
"command": "npx"
}
}
}Documentation
Tuteliq MCP Server
MCP server for Tuteliq - AI-powered child safety tools for Claude
API Docs • Dashboard • Trust • Changelog • Discord
What is this?
Tuteliq MCP Server brings AI-powered child safety tools directly into Claude, Cursor, and other MCP-compatible AI assistants. Ask Claude to check messages for bullying, detect grooming patterns, or generate safety action plans.
Reads context, not just keywords. Every detector understands coded slang, emoji, leetspeak, algospeak, and deliberate filter evasion, and weighs the conversation around a message — so it tells gaming trash-talk apart from targeted harassment instead of drowning your team in false positives. This coded-language resilience is platform-wide (it applies to grooming, fraud, radicalisation, and the rest, not just bullying) and is built from our own research into how bad actors evade moderation. In an internal benchmark of coded-language and filter-evasion cases, Tuteliq detected roughly 1.7x more of them than leading general-purpose moderation APIs (319-case evasion set; vendors unnamed).
Fast mode. Pass verdict_only: true on detect_grooming or detect_bullying to get just the verdict (risk level, flags, recommended action) without the per-message breakdown — lower latency for real-time screening. The verdict itself is unchanged.
Interactive results. In hosts that support MCP Apps, results render as interactive cards rather than walls of JSON — see Interactive widgets below.
Interactive widgets
Twelve widgets return a rendered card instead of raw text in hosts that support MCP
Apps (Claude desktop and web, and other MCP-compatible clients). Everywhere else
the same data arrives as structuredContent, so nothing depends on the UI.
Every card carries the same frame: a chrome bar naming the tool that produced the result, the result itself, and a footer with the data-handling note and a Trust Center link. In a transcript holding a dozen results, the chrome bar is what tells you which is which.
| Widget | Tools |
|---|---|
| Detection result | detect_bullying, detect_grooming, detect_unsafe, analyze, and the other detect_* tools |
| Multi-endpoint | analyse_multi |
| Emotions | analyze_emotions |
| Media | analyze_voice, analyze_image, analyze_video, analyze_document |
| Synthetic media | detect_synthetic_text, detect_synthetic_image, detect_synthetic_audio, detect_synthetic_video |
| Action plan | get_action_plan |
| Incident report | generate_report |
| Incidents overview | get_incidents_overview |
| Incidents list | list_incidents |
| Incident detail | get_incident |
| Incident trends | get_incident_trends |
| Moderation queue | moderation_queue |
Severity is rankable by colour. The ramp runs monotonically from safe to critical, so two chips can be compared without reading their labels:
| Level | Colour | |
|---|---|---|
critical | #9C3A29 | |
high | #C2543A | |
medium | #D98A3D | |
low | #B7C2D4 | |
safe | #19B79A |
Design notes. The widgets are deliberately calm. They report on grooming, self-harm, and abuse, and a card that animates or pulses at the reader turns material that is already distressing into an alarm they cannot dismiss. Severity is carried by a rule and a glyph, not by motion. The crisis-support card leads with reassurance rather than the severity colour, and its helpline numbers are the largest targets on the card because transcribing digits under stress is where people fail.
Widgets are read-only renderers by design. Selecting incidents in the list widget
assembles the ID list for a batch_review_incidents call you fire yourself — the
mutating call still goes through your host's approval step, so the
human-in-the-loop stays in the loop.
Working on the widgets
npm run preview:ui # builds every widget against fixture data
open dist-preview/__preview.html
Widget source lives in ui/src. Design tokens are centralised in
ui/src/theme.ts; prefer them over colour literals so the palette stays in one
place.
Available Tools (81 MCP)
Safety Detection
| Tool | Description |
|---|---|
detect_bullying | Analyze text for bullying, harassment, and gaming toxicity — including coded slang, emoji, and deliberate filter evasion, with context that tells trash-talk apart from genuine harm |
detect_grooming | Detect grooming patterns and predatory behavior in conversations |
detect_unsafe | Identify unsafe content (self-harm, violence, explicit material) |
analyze | Quick comprehensive safety check (bullying + unsafe) |
analyse_multi | Run multiple detection endpoints on a single piece of text in one call |
batch_analyze | Analyze up to 50 items in a single request — all twelve detection types (bullying, grooming, unsafe, emotions, social_engineering, app_fraud, romance_scam, mule_recruitment, gambling_harm, coercive_control, vulnerability_exploitation, radicalisation) — ideal for bulk triage |
analyze_emotions | Analyze emotional content and mental state indicators — accepts single text or full conversations |
get_action_plan | Generate age-appropriate guidance for safety situations |
generate_report | Create incident reports from conversations |
Fraud & Harm Detection
| Tool | Description |
|---|---|
detect_social_engineering | Detect social engineering tactics (pretexting, urgency fabrication, authority impersonation) |
detect_app_fraud | Detect app-based fraud (fake investment platforms, phishing apps, subscription traps) |
detect_romance_scam | Detect romance scam patterns (love-bombing, financial requests, identity deception) |
detect_mule_recruitment | Detect money mule recruitment tactics (easy-money offers, bank account sharing) |
detect_gambling_harm | Detect gambling-related harm indicators (chasing losses, concealment, distress) |
detect_coercive_control | Detect coercive control patterns (isolation, financial control, monitoring, threats) |
detect_vulnerability_exploitation | Detect exploitation of vulnerable individuals (elderly, disabled, financially distressed) |
detect_radicalisation | Detect radicalisation indicators (extremist rhetoric, us-vs-them framing, ideological grooming) |
Voice, Image, Video & Document Analysis
| Tool | Description |
|---|---|
analyze_voice | Transcribe audio and run safety analysis on the transcript |
analyze_image | Analyze images for visual safety + OCR text extraction |
analyze_video | Analyze video files for safety concerns via key frame extraction (supports mp4, mov, avi, webm, mkv) |
analyze_document | Analyze PDF documents for safety concerns — per-page multi-endpoint detection with chain-of-custody hashing (max 50MB, 100 pages) |
Synthetic Content Detection
| Tool | Description |
|---|---|
detect_synthetic_text | Detect AI-generated text across 10 child-safety categories (synthetic CSAM, deepfake scripts, AI grooming) |
detect_synthetic_image | 6-signal forensic pipeline: vision AI, EXIF metadata, pixel stats, C2PA Content Credentials, watermarks, pHash |
detect_synthetic_audio | Dual-signal forensics: transcript + mel spectrogram vision + quantitative audio statistics |
detect_synthetic_video | 5-track analysis: per-frame vision, temporal face consistency, lip-sync correlation, spectral audio, transcript |
Identity & Age Verification
| Tool | Description |
|---|---|
create_verification_session | Create a session for age or identity verification — returns a URL for the user to complete the flow |
get_verification_session | Poll session status — returns full document intelligence (MRZ, barcode, authenticity, face match, liveness) |
cancel_verification_session | Cancel an active session (no credits consumed) |
Incidents & Moderation
Read the incident store, triage a queue, and record moderator decisions. The review tools emit signed receipts for EU AI Act Art 14 human-oversight evidence.
| Tool | Description |
|---|---|
get_incidents_overview | Counts by category, severity, source, status and platform over a window |
list_incidents | Paginated, filterable incident list |
get_incident | Full detail for one incident, including the risk trajectory across messages |
get_incident_trends | Incident volume bucketed by hour, day or week, split by severity |
moderation_queue | Moderator triage console: the unreviewed queue, the next item, and — optionally — your own analysis trace and recommended decision, rendered for human sign-off. Read-only |
review_incident | Record a moderator decision (confirm / downgrade / escalate / reclassify / dismiss) with a signed receipt |
batch_review_incidents | Apply one decision across many incidents in a single call |
get_audit_receipt | Fetch the signed receipt for a past inference |
get_audit_logs | Query the audit log |
The decision is the moderator's, and the card makes them take it. The
action buttons call review_incident through the host, because a moderator
clicking "Escalate" is the human decision. They do not fire on one click:
review_incident persists an override and emits a signed Art 12 audit receipt
and requires a reason_code, so the button opens a reason picker and a second
click commits. Nothing is ever defaulted into that receipt on the moderator's
behalf.
The reasoning, confidence and analysis trace on the card are supplied by the calling assistant and are labelled as such — an argument for a human to weigh, not a Tuteliq measurement.
Pass operator_name to brand the header with the customer or team name. Omit it
and the card is unbranded — it is never defaulted to a placeholder.
Webhook Management
| Tool | Description |
|---|---|
list_webhooks | List all configured webhooks |
create_webhook | Create a new webhook endpoint |
update_webhook | Update webhook configuration |
delete_webhook | Delete a webhook |
test_webhook | Send a test payload to verify webhook |
regenerate_webhook_secret | Regenerate webhook signing secret |
Pricing
| Tool | Description |
|---|---|
get_pricing | Get available pricing plans |
get_pricing_details | Get detailed pricing with features and limits |
Usage & Billing
| Tool | Description |
|---|---|
get_usage_history | Get daily usage history |
get_usage_by_tool | Get usage by tool/endpoint |
get_usage_monthly | Get monthly usage with billing info |
get_usage_summary | Get current billing-period summary (used, limits, purchased credits) |
get_usage_quota | Get real-time rate-limit status — pre-flight check before batch runs |
Policy Configuration
| Tool | Description |
|---|---|
get_policy | Get the account's detection policy (per-category flag/block thresholds, auto-moderation) |
set_policy | Update the account's detection policy configuration |
Policy Automation Rules
| Tool | Description |
|---|---|
list_policy_rules | List all automation rules (block/flag/escalate/notify/log_only on matching detections) |
create_policy_rule | Create a rule that acts automatically when detections match its conditions |
get_policy_rule | Get full detail of a single rule |
update_policy_rule | Update any subset of a rule's fields (e.g., pause with enabled: false) |
delete_policy_rule | Permanently delete a rule |
evaluate_policy_rules | Dry-run rules against a hypothetical detection result |
Detection Settings
| Tool | Description |
|---|---|
get_detection_settings | See which detection endpoints are enabled/disabled + default context |
update_detection_settings | Enable/disable endpoints, set default context |
reset_detection_settings | Reset to defaults (all endpoints enabled) |
Threat Intelligence (Business+ tier)
| Tool | Description |
|---|---|
get_intelligence_trends | Anonymised network-wide threat trends by endpoint/category/age/platform/geo |
get_emerging_threats | Emerging threat patterns over a recent window |
get_weekly_digest | Weekly digest: summary, top categories, notable changes |
get_risk_trends | Anonymised global risk trends |
GDPR Account
| Tool | Description |
|---|---|
delete_account_data | Delete all account data (Right to Erasure) |
export_account_data | Export all account data as JSON (Data Portability) |
record_consent | Record user consent for data processing |
get_consent_status | Get current consent status |
withdraw_consent | Withdraw a previously granted consent |
rectify_data | Correct user data (Right to Rectification) |
get_audit_logs | Get audit trail of all data operations |
Breach Management
| Tool | Description |
|---|---|
log_breach | Log a new data breach (starts 72-hour notification clock) |
list_breaches | List all data breaches, optionally filtered by status |
get_breach | Get details of a specific data breach |
update_breach_status | Update breach status and notification progress |
Common Parameters
Context Fields
All detection tools accept an optional context object. These fields influence severity scoring and classification:
| Field | Type | Description |
|---|---|---|
language | string | ISO 639-1 code (e.g., "en", "sv"). Auto-detected if omitted. |
ageGroup | string | Age group (e.g., "10-12", "13-15", "under 18"). Triggers age-calibrated scoring. |
platform | string | Platform name (e.g., "Discord", "Roblox"). Adjusts detection for platform norms. |
relationship | string | Relationship context (e.g., "classmates", "stranger"). |
sender_trust | string | Sender verification status: "verified", "trusted", or "unknown". |
sender_name | string | Name of the sender (used with sender_trust). |
sender_trust Behavior
When sender_trust is set to "verified" or "trusted":
- AUTH_IMPERSONATION is fully suppressed — a verified sender cannot be impersonating an authority
- URGENCY_FABRICATION is suppressed for routine time-sensitive information (schedules, deadlines, appointments)
- Content is only flagged if it contains genuinely malicious elements (credential theft, phishing links, financial demands)
- This prevents false positives on legitimate institutional messages (school notifications, hospital reminders, government advisories)
support_threshold
Controls when crisis support resources (helplines, text lines, web resources) are included in the response:
| Value | Behavior |
|---|---|
low | Include support for Low severity and above |
medium | Include support for Medium severity and above |
high | (Default) Include support for High severity and above |
critical | Include support only for Critical severity |
Note: Critical severity always includes support resources regardless of the threshold setting.
analyse_multi Endpoint Values
The analyse_multi tool accepts up to 10 endpoints per call. Valid endpoint values:
| Endpoint ID | Description |
|---|---|
bullying | Bullying and harassment detection |
grooming | Grooming pattern detection |
unsafe | Unsafe content detection (self-harm, violence, explicit material) |
social-engineering | Social engineering and pretexting |
app-fraud | App-based fraud patterns |
romance-scam | Romance scam patterns |
mule-recruitment | Money mule recruitment |
gambling-harm | Gambling-related harm |
coercive-control | Coercive control patterns |
vulnerability-exploitation | Exploitation of vulnerable individuals |
radicalisation | Radicalisation indicators |
Installation
Tuteliq is a hosted MCP server at https://api.tuteliq.ai/mcp. Most clients
should connect with OAuth and install nothing.
Connect with OAuth (recommended)
Point the client at the URL with no credentials and sign in through the browser. Tuteliq implements OAuth 2.1 with dynamic client registration and PKCE, so the client registers itself. Nothing is pasted into a config file, and access is revoked from the dashboard rather than by editing your machine.
Claude Desktop: Settings > Connectors, Add custom connector, name it
Tuteliq, URL https://api.tuteliq.ai/mcp, then Connect and approve in
the browser.
Claude Code, Cursor, Windsurf and other clients supporting remote servers:
{
"mcpServers": {
"tuteliq": {
"type": "http",
"url": "https://api.tuteliq.ai/mcp"
}
}
}
In Claude Code, run /mcp to start the sign-in if it does not open on its own.
Static token (headless and automation)
OAuth needs a browser, so a CI pipeline, cron job or container cannot complete
it. Send a token in the Authorization header instead, generated in the
dashboard under Settings > Plugins. This is a long-lived credential: keep it
out of version control, and prefer OAuth wherever a browser exists.
{
"mcpServers": {
"tuteliq": {
"type": "http",
"url": "https://api.tuteliq.ai/mcp",
"headers": {
"Authorization": "Bearer your-secure-token"
}
}
}
}
stdio (clients without remote server support)
For clients that only speak stdio. This runs a local process that calls the same hosted API, so the tools are identical; only the transport and authentication differ.
{
"mcpServers": {
"tuteliq": {
"command": "npx",
"args": ["-y", "@tuteliq/mcp"],
"env": {
"TUTELIQ_API_KEY": "your-api-key"
}
}
}
}
Usage Examples
Once configured, you can ask Claude:
Bullying Detection
"Check if this message is bullying: 'Nobody likes you, just go away'"
Response:
## ⚠️ Bullying Detected
**Severity:** 🟠 Medium
**Confidence:** 92%
**Risk Score:** 75%
**Types:** exclusion, verbal_abuse
### Rationale
The message contains direct exclusionary language...
### Recommended Action
`flag_for_moderator`
Grooming Detection
"Analyze this conversation for grooming patterns..."
Quick Safety Check
"Is this message safe? 'I don't want to be here anymore'"
Emotion Analysis
"Analyze the emotions in: 'I'm so stressed about school and nobody understands'"
Action Plan
"Give me an action plan for a 12-year-old being cyberbullied"
Incident Report
"Generate an incident report from these messages..."
Voice Analysis
"Analyze this audio file for safety: /path/to/recording.mp3"
Image Analysis
"Check this screenshot for harmful content: /path/to/screenshot.png"
Webhook Management
"List my webhooks" "Create a webhook for critical incidents at htt
Sourced from the repository README.
More in AI & Agents
- PonytailMakes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.109,599
- AgentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity39,079
- Frontend SlidesCreate beautiful slides on the web using a coding agent's frontend skills28,060
- Agent Skills Search ServerSearch and discover Agent Skills from the skills.sh registry. Powered by HAPI MCP server.24,658
- Agency Agents Zh🎭 267 个即插即用的 AI 专家角色 — 支持 Hermes Agent/Claude Code/Cursor/Copilot 等 18 种工具,覆盖工程/设计/营销/金融等 20 个部门。含 52 个中国市场原创智能体(小红书/抖音/微信/飞书/钉钉等)。搭配编排器 agency-orchestrator,一句话即可让多位专家按 DAG 自动协作。19,868
- Watermarks RemoverStrip multi-vendor AI provenance marks: Unicode text hygiene, statistical rewrite hooks, and C2PA/metadata from PNG/JPEG/SVG/PDF/DOCX/HTML/MD17,822