@tuteliq/mcp 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +274 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1036 -0
- package/package.json +50 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Tuteliq
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="./assets/logo.png" alt="Tuteliq" width="200" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Tuteliq MCP Server</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>MCP server for Tuteliq - AI-powered child safety tools for Claude</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/@tuteliq/mcp"><img src="https://img.shields.io/npm/v/@tuteliq/mcp.svg" alt="npm version"></a>
|
|
13
|
+
<a href="https://github.com/Tuteliq/mcp/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Tuteliq/mcp.svg" alt="license"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="https://api.tuteliq.ai/docs">API Docs</a> •
|
|
18
|
+
<a href="https://tuteliq.app">Dashboard</a> •
|
|
19
|
+
<a href="https://discord.gg/7kbTeRYRXD">Discord</a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## What is this?
|
|
25
|
+
|
|
26
|
+
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.
|
|
27
|
+
|
|
28
|
+
## Available Tools (33)
|
|
29
|
+
|
|
30
|
+
### Safety Detection
|
|
31
|
+
|
|
32
|
+
| Tool | Description |
|
|
33
|
+
|------|-------------|
|
|
34
|
+
| `detect_bullying` | Analyze text for bullying, harassment, or harmful language |
|
|
35
|
+
| `detect_grooming` | Detect grooming patterns and predatory behavior in conversations |
|
|
36
|
+
| `detect_unsafe` | Identify unsafe content (self-harm, violence, explicit material) |
|
|
37
|
+
| `analyze` | Quick comprehensive safety check (bullying + unsafe) |
|
|
38
|
+
| `analyze_emotions` | Analyze emotional content and mental state indicators |
|
|
39
|
+
| `get_action_plan` | Generate age-appropriate guidance for safety situations |
|
|
40
|
+
| `generate_report` | Create incident reports from conversations |
|
|
41
|
+
|
|
42
|
+
### Voice & Image Analysis
|
|
43
|
+
|
|
44
|
+
| Tool | Description |
|
|
45
|
+
|------|-------------|
|
|
46
|
+
| `analyze_voice` | Transcribe audio and run safety analysis on the transcript |
|
|
47
|
+
| `analyze_image` | Analyze images for visual safety + OCR text extraction |
|
|
48
|
+
|
|
49
|
+
### Webhook Management
|
|
50
|
+
|
|
51
|
+
| Tool | Description |
|
|
52
|
+
|------|-------------|
|
|
53
|
+
| `list_webhooks` | List all configured webhooks |
|
|
54
|
+
| `create_webhook` | Create a new webhook endpoint |
|
|
55
|
+
| `update_webhook` | Update webhook configuration |
|
|
56
|
+
| `delete_webhook` | Delete a webhook |
|
|
57
|
+
| `test_webhook` | Send a test payload to verify webhook |
|
|
58
|
+
| `regenerate_webhook_secret` | Regenerate webhook signing secret |
|
|
59
|
+
|
|
60
|
+
### Pricing
|
|
61
|
+
|
|
62
|
+
| Tool | Description |
|
|
63
|
+
|------|-------------|
|
|
64
|
+
| `get_pricing` | Get available pricing plans |
|
|
65
|
+
| `get_pricing_details` | Get detailed pricing with features and limits |
|
|
66
|
+
|
|
67
|
+
### Usage & Billing
|
|
68
|
+
|
|
69
|
+
| Tool | Description |
|
|
70
|
+
|------|-------------|
|
|
71
|
+
| `get_usage_history` | Get daily usage history |
|
|
72
|
+
| `get_usage_by_tool` | Get usage by tool/endpoint |
|
|
73
|
+
| `get_usage_monthly` | Get monthly usage with billing info |
|
|
74
|
+
|
|
75
|
+
### GDPR Account
|
|
76
|
+
|
|
77
|
+
| Tool | Description |
|
|
78
|
+
|------|-------------|
|
|
79
|
+
| `delete_account_data` | Delete all account data (Right to Erasure) |
|
|
80
|
+
| `export_account_data` | Export all account data as JSON (Data Portability) |
|
|
81
|
+
| `record_consent` | Record user consent for data processing |
|
|
82
|
+
| `get_consent_status` | Get current consent status |
|
|
83
|
+
| `withdraw_consent` | Withdraw a previously granted consent |
|
|
84
|
+
| `rectify_data` | Correct user data (Right to Rectification) |
|
|
85
|
+
| `get_audit_logs` | Get audit trail of all data operations |
|
|
86
|
+
|
|
87
|
+
### Breach Management
|
|
88
|
+
|
|
89
|
+
| Tool | Description |
|
|
90
|
+
|------|-------------|
|
|
91
|
+
| `log_breach` | Log a new data breach (starts 72-hour notification clock) |
|
|
92
|
+
| `list_breaches` | List all data breaches, optionally filtered by status |
|
|
93
|
+
| `get_breach` | Get details of a specific data breach |
|
|
94
|
+
| `update_breach_status` | Update breach status and notification progress |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Installation
|
|
99
|
+
|
|
100
|
+
### Claude Desktop
|
|
101
|
+
|
|
102
|
+
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on Mac):
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"mcpServers": {
|
|
107
|
+
"tuteliq": {
|
|
108
|
+
"command": "npx",
|
|
109
|
+
"args": ["-y", "@tuteliq/mcp"],
|
|
110
|
+
"env": {
|
|
111
|
+
"TUTELIQ_API_KEY": "your-api-key"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Cursor
|
|
119
|
+
|
|
120
|
+
Add to your Cursor MCP settings:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"tuteliq": {
|
|
126
|
+
"command": "npx",
|
|
127
|
+
"args": ["-y", "@tuteliq/mcp"],
|
|
128
|
+
"env": {
|
|
129
|
+
"TUTELIQ_API_KEY": "your-api-key"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Global Install
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npm install -g @tuteliq/mcp
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Then run:
|
|
143
|
+
```bash
|
|
144
|
+
TUTELIQ_API_KEY=your-api-key tuteliq-mcp
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Usage Examples
|
|
150
|
+
|
|
151
|
+
Once configured, you can ask Claude:
|
|
152
|
+
|
|
153
|
+
### Bullying Detection
|
|
154
|
+
> "Check if this message is bullying: 'Nobody likes you, just go away'"
|
|
155
|
+
|
|
156
|
+
**Response:**
|
|
157
|
+
```
|
|
158
|
+
## ⚠️ Bullying Detected
|
|
159
|
+
|
|
160
|
+
**Severity:** 🟠 Medium
|
|
161
|
+
**Confidence:** 92%
|
|
162
|
+
**Risk Score:** 75%
|
|
163
|
+
|
|
164
|
+
**Types:** exclusion, verbal_abuse
|
|
165
|
+
|
|
166
|
+
### Rationale
|
|
167
|
+
The message contains direct exclusionary language...
|
|
168
|
+
|
|
169
|
+
### Recommended Action
|
|
170
|
+
`flag_for_moderator`
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Grooming Detection
|
|
174
|
+
> "Analyze this conversation for grooming patterns..."
|
|
175
|
+
|
|
176
|
+
### Quick Safety Check
|
|
177
|
+
> "Is this message safe? 'I don't want to be here anymore'"
|
|
178
|
+
|
|
179
|
+
### Emotion Analysis
|
|
180
|
+
> "Analyze the emotions in: 'I'm so stressed about school and nobody understands'"
|
|
181
|
+
|
|
182
|
+
### Action Plan
|
|
183
|
+
> "Give me an action plan for a 12-year-old being cyberbullied"
|
|
184
|
+
|
|
185
|
+
### Incident Report
|
|
186
|
+
> "Generate an incident report from these messages..."
|
|
187
|
+
|
|
188
|
+
### Voice Analysis
|
|
189
|
+
> "Analyze this audio file for safety: /path/to/recording.mp3"
|
|
190
|
+
|
|
191
|
+
### Image Analysis
|
|
192
|
+
> "Check this screenshot for harmful content: /path/to/screenshot.png"
|
|
193
|
+
|
|
194
|
+
### Webhook Management
|
|
195
|
+
> "List my webhooks"
|
|
196
|
+
> "Create a webhook for critical incidents at https://example.com/webhook"
|
|
197
|
+
|
|
198
|
+
### Usage
|
|
199
|
+
> "Show my monthly usage"
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Get an API Key
|
|
204
|
+
|
|
205
|
+
1. Go to [tuteliq.app](https://tuteliq.app)
|
|
206
|
+
2. Create an account
|
|
207
|
+
3. Generate an API key
|
|
208
|
+
4. Add it to your MCP config
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Requirements
|
|
213
|
+
|
|
214
|
+
- Node.js 18+
|
|
215
|
+
- Tuteliq API key
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Best Practices
|
|
220
|
+
|
|
221
|
+
### Message Batching
|
|
222
|
+
|
|
223
|
+
The **bullying** and **unsafe content** tools analyze a single `text` field per request. If you're analyzing a conversation, concatenate a **sliding window of recent messages** into one string rather than sending each message individually. Single words or short fragments lack context for accurate detection and can be exploited to bypass safety filters.
|
|
224
|
+
|
|
225
|
+
The **grooming** tool already accepts a `messages[]` array and analyzes the full conversation in context.
|
|
226
|
+
|
|
227
|
+
### PII Redaction
|
|
228
|
+
|
|
229
|
+
Enable `PII_REDACTION_ENABLED=true` on your Tuteliq API to automatically strip emails, phone numbers, URLs, social handles, IPs, and other PII from detection summaries and webhook payloads. The original text is still analyzed in full — only stored outputs are scrubbed.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Support
|
|
234
|
+
|
|
235
|
+
- **API Docs**: [api.tuteliq.ai/docs](https://api.tuteliq.ai/docs)
|
|
236
|
+
- **Discord**: [discord.gg/7kbTeRYRXD](https://discord.gg/7kbTeRYRXD)
|
|
237
|
+
- **Email**: support@tuteliq.ai
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## License
|
|
242
|
+
|
|
243
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## The Mission: Why This Matters
|
|
248
|
+
|
|
249
|
+
Before you decide to contribute or sponsor, read these numbers. They are not projections. They are not estimates from a pitch deck. They are verified statistics from the University of Edinburgh, UNICEF, NCMEC, and Interpol.
|
|
250
|
+
|
|
251
|
+
- **302 million** children are victims of online sexual exploitation and abuse every year. That is **10 children every second**. *(Childlight / University of Edinburgh, 2024)*
|
|
252
|
+
- **1 in 8** children globally have been victims of non-consensual sexual imagery in the past year. *(Childlight, 2024)*
|
|
253
|
+
- **370 million** girls and women alive today experienced rape or sexual assault in childhood. An estimated **240–310 million** boys and men experienced the same. *(UNICEF, 2024)*
|
|
254
|
+
- **29.2 million** incidents of suspected child sexual exploitation were reported to NCMEC's CyberTipline in 2024 alone — containing **62.9 million files** (images, videos). *(NCMEC, 2025)*
|
|
255
|
+
- **546,000** reports of online enticement (adults grooming children) in 2024 — a **192% increase** from the year before. *(NCMEC, 2025)*
|
|
256
|
+
- **1,325% increase** in AI-generated child sexual abuse material reports between 2023 and 2024. The technology that should protect children is being weaponized against them. *(NCMEC, 2025)*
|
|
257
|
+
- **100 sextortion reports per day** to NCMEC. Since 2021, at least **36 teenage boys** have taken their own lives because they were victimized by sextortion. *(NCMEC, 2025)*
|
|
258
|
+
- **84%** of reports resolve outside the United States. This is not an American problem. This is a **global emergency**. *(NCMEC, 2025)*
|
|
259
|
+
|
|
260
|
+
End-to-end encryption is making platforms blind. In 2024, platforms reported **7 million fewer incidents** than the year before — not because abuse stopped, but because they can no longer see it. The tools that catch known images are failing. The systems that rely on human moderators are overwhelmed. The technology to detect behavior — grooming patterns, escalation, manipulation — in real-time text conversations **exists right now**. It is running at [api.tuteliq.ai](https://api.tuteliq.ai).
|
|
261
|
+
|
|
262
|
+
The question is not whether this technology is possible. The question is whether we build the company to put it everywhere it needs to be.
|
|
263
|
+
|
|
264
|
+
**Every second we wait, another child is harmed.**
|
|
265
|
+
|
|
266
|
+
We have the technology. We need the support.
|
|
267
|
+
|
|
268
|
+
If this mission matters to you, consider [sponsoring our open-source work](https://github.com/sponsors/Tuteliq) so we can keep building the tools that protect children — and keep them free and accessible for everyone.
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
<p align="center">
|
|
273
|
+
<sub>Built with care for child safety by the <a href="https://tuteliq.ai">Tuteliq</a> team</sub>
|
|
274
|
+
</p>
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|