Unprofane
com.unprofane/unprofaneVersion 0.1.5Should I allow this text? Profanity and toxicity checks that are hard to fool, with the evidence.
Status
Responds699 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:20 UTC
- Latency
- 699 ms
- Remotes responding
- 1 of 1
- Sign-in
- API key
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://api.unprofane.com/mcpResponds699 msNo sign-in
Claude Code
claude mcp add --transport http unprofane https://api.unprofane.com/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'Replace <YOUR_TOKEN> before running.
Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: unprofane
Remote MCP server URL: https://api.unprofane.com/mcp
This server expects the header Authorization.Cursor
{
"mcpServers": {
"unprofane": {
"url": "https://api.unprofane.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}Replace <YOUR_TOKEN> before running.
VS Code
code --add-mcp '{"name":"unprofane","type":"http","url":"https://api.unprofane.com/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'Replace <YOUR_TOKEN> before running.
Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
5 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
check_batchCheck up to 100 texts in one call, 30,000 characters in all, with the same settings. Each item has your id and a text; results come back in order, each with its id and either a result (as check_text returns) or an error. Read-only; counts one check per item. | No | Yes | Yes | No |
check_textDecide whether one text should be allowed: profanity, slurs, insults, threats and sexual language, disguised spellings included (sh1t, f.u.c.k, leetspeak, homoglyphs). Returns the action (allow, review, block), the matches with their categories and the tricks used, a one-sentence reason and a censored version. Read-only; counts one check against the plan. If the action is wrong, report it with report_result and the result's id. | No | Yes | Yes | No |
get_integration_snippetA complete, runnable recipe for adding Unprofane to a platform in a language: code to paste. Use it when asked to add a profanity or username filter to an app. Read-only and free: it checks no text. | No | Yes | Yes | No |
get_usageThe checks this key's account has used in the current billing period, how many its plan includes and any overage, with the share answered by the rules alone, the model or the cache. Counts up to the last full hour. Read-only and free. | No | Yes | Yes | No |
report_resultTell Unprofane a check got it wrong (or right): the result's id, the verdict and, if you know it, the action it should have taken. A person reads every report and corrections ship in a later engine. Writes a report; it changes no result and counts no check. | No | No | No | No |
Details
- Registry status
- Active
- Published
- Oct 24, 2026
- Updated
- Oct 24, 2026
- Repository
- Not given
- Categories
- Uncategorized
- GDPR
- Not declared