Check user prompts for injection/jailbreaks; your own guard learns from your labels. Works keyless.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional Bearer API key for your own trainable guard (free: get_free_key tool or https://habits.darmousseh.com/#key)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Is this user-typed text a prompt injection or jailbreak (an attempt to override, hijack or extract an AI system's instructions)? Returns flagged true/false and a 0-1 score. Without a key it uses the public guard (30 checks per day per network). With a key it uses your own guard, which learns from teach_guard; the result carries a request_id. Built for user prompts; it is weak on injections hidden in tool output or documents.
the user prompt to check, up to 8,000 characters
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http habits-guard https://habits.darmousseh.com/mcp
Headers
Authorization (optional, not in the config above): Optional Bearer API key for your own trainable guard (free: get_free_key tool or https://habits.darmousseh.com/#key)Is this user-typed text a prompt injection or jailbreak (an attempt to override, hijack or extract an AI system's instructions)? Returns flagged true/false and a 0-1 score. Without a key it uses the public guard (30 checks per day per network). With a key it uses your own guard, which learns from teach_guard; the result carries a request_id. Built for user prompts; it is weak on injections hidden in tool output or documents.
| Argument | Type | Description |
|---|---|---|
| text* | string | the user prompt to check, up to 8,000 characters |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "the user prompt to check, up to 8,000 characters"
}
},
"additionalProperties": false
}Create a free Habits account and API key (no email). The key is shown once; set it as the Authorization: Bearer header for this MCP server. The free plan has a fixed $0.10/day spend cap and its own trainable injection guard.
| Argument | Type | Description |
|---|---|---|
| username | string | optional: 2-32 of a-z 0-9 - |
{
"type": "object",
"required": [],
"properties": {
"username": {
"type": "string",
"description": "optional: 2-32 of a-z 0-9 -"
}
},
"additionalProperties": false
}Label one prompt for your own guard so it stops repeating a mistake (a false alarm on a normal request, or a missed injection). Needs an API key (get_free_key). About 50 of your own labels cut false alarms from 15% to 4% in our benchmark.
| Argument | Type | Description |
|---|---|---|
| text* | string | the prompt |
| injection* | boolean | true if it IS an injection/jailbreak, false if it is a normal request |
{
"type": "object",
"required": [
"text",
"injection"
],
"properties": {
"text": {
"type": "string",
"description": "the prompt"
},
"injection": {
"type": "boolean",
"description": "true if it IS an injection/jailbreak, false if it is a normal request"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.