Unprofane

com.unprofanePublished by unprofane.comOfficial publisherv0.1.5Updated Oct 24, 2026

Should I allow this text? Profanity and toxicity checks that are hard to fool, with the evidence.

VerifiedStreamable HTTPWeb executableDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Unprofane is a remote MCP server that lets an assistant check text for profanity, slurs, insults, threats and sexual language and get an allow, review or block,

What you can do
Check a single text for profanity, slurs, insults, threats and sexual language, including disguised spellings, and get an action, matches, tricks used, a reason and a censored version. Check up to 100 texts in one batch call with the same settings, with results returned in order by id. Report a result that looks wrong, with its id and the verdict it should have had. Read usage for the current billing period, including plan allowance and overage. Get a runnable integration recipe for adding Unprofane to an app in a given platform and language.
When to use it
Use it when an assistant needs to decide whether user-typed text, such as a username, comment or message, should be shown, or when you want to add a profanity or username filter to an app and need a ready-made recipe.
Requirements
A remote endpoint at api.unprofane.com over streamable HTTP. A required bearer token in the Authorization header, using an Unprofane API key created in the Unprofane app. Network access to the service.
Before you install
The Authorization header carries a live API key; keep it secret. Every text checked counts as one check against the key's plan, and batches count one check per item, so usage can incur overage. report_result writes a report to Unprofane, though it changes no result and counts no check. Text you check is sent to a third-party service.

Installation

In SourceWeft

  1. Open Unprofane in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.unprofane%2Funprofane/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "unprofane": {
      "type": "http",
      "url": "https://api.unprofane.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Tools

5

check_text

Check a text

Decide 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.

Parametersmaskmodetextrequiredpolicycontextcountrylanguage

check_batch

Check many texts

Check 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.

Parametersmaskmodeitemsrequiredpolicycontextcountrylanguage

report_result

Report a wrong result

Tell 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.

Parametersnotetextverdictrequiredcheck_idrequiredexpected_action

get_usage

Get usage this period

The 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.

Takes no parameters.

get_integration_snippet

Get an integration recipe

A 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.

Parameterslanguagerequiredplatformrequired

Version history

4
  1. v0.1.5LatestOct 24, 2026
  2. v0.1.3Oct 20, 2026
  3. v0.1.1Oct 17, 2026
  4. v0.1.0Oct 12, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.