Perspective API Alternative (Toxicity Detection)
Toxicity scores (0-1) for text before an agent posts it. Perspective API compatible. No LLM.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http perspective-api-alternative-toxicity-det 'https://koyourmoon--perspective-api-alternative.apify.actor/mcp' --header 'Authorization: <Bearer <your Apify API token>>'
{
"mcpServers": {
"perspective-api-alternative-toxicity-det": {
"type": "http",
"url": "https://koyourmoon--perspective-api-alternative.apify.actor/mcp",
"headers": {
"Authorization": "<Bearer <your Apify API token>>"
}
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
Perspective API Alternative: Toxicity Detection MCP Server
This repository contains an MCP server for the stdio transport. The server gives AI agents one tool, analyze_toxicity. Use the tool to examine text before an agent publishes it.
The tool returns six scores from 0 to 1 and a flagged value for each text:
TOXICITY,SEVERE_TOXICITY,INSULT,PROFANITY,THREAT,IDENTITY_ATTACK
The scores come from the open-source Detoxify model. The model is not an LLM. Thus, the same text always gets the same score. English only.
The request and response format is the same as the format of the Google Perspective API. Google stops the Perspective API on December 31, 2026.
How the server operates
The server implementation is server.py in this repository. It uses only the Python standard library (Python 3.9 or later).
- The server reads JSON-RPC messages from stdin and writes the responses to stdout.
- The server answers
initialize,pingandtools/listitself. These messages do not need a token. - For
tools/call, the server sends the texts to the toxicity API on Apify, and returns the scores. - The toxicity API runs the Detoxify model. You pay for each call through your Apify account.
Requirements
- Python 3.9 or later, or Docker
- An Apify API token in the
APIFY_TOKENenvironment variable
To get a token, open the Apify Console. Then go to Settings > API & Integrations.
Installation
Python
- Clone the repository:
git clone https://github.com/koyourmoon/perspective-api-alternative-mcp.git - Add the server to the configuration of your MCP client:
{ "mcpServers": { "perspective-api-alternative": { "command": "python", "args": ["/path/to/perspective-api-alternative-mcp/server.py"], "env": { "APIFY_TOKEN": "<APIFY_TOKEN>" } } } }
Docker
- Build the image:
docker build -t perspective-api-alternative-mcp . - Add the server to the configuration of your MCP client:
{ "mcpServers": { "perspective-api-alternative": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "APIFY_TOKEN", "perspective-api-alternative-mcp"], "env": { "APIFY_TOKEN": "<APIFY_TOKEN>" } } } }
Tool: analyze_toxicity
| Parameter | Type | Description |
|---|---|---|
texts | array of strings, required | 1 to 100 English texts to score |
attributes | array of strings | Attributes to return. The default is all six. |
threshold | number | TOXICITY score at which a text is flagged. The default is 0.5. |
Example result for one text:
{
"results": [
{
"text": "You are an idiot.",
"scores": { "TOXICITY": 0.98, "INSULT": 0.95, "PROFANITY": 0.62 },
"flagged": true,
"billed_units": 1
}
]
}
If a text looks non-English, the result has a warning field. The scores for that text are not reliable.
Environment variables
| Name | Required | Description |
|---|---|---|
APIFY_TOKEN | Yes, for tools/call | Your Apify API token |
PERSPECTIVE_ALT_URL | No | A different URL for the toxicity API |
Prices
- $0.50 for 1,000 text units. A text unit is each started 1,000 characters of a text. Most comments are 1 unit.
- Lower prices for Apify Bronze, Silver and Gold plans.
- The first call after an idle period of 60 seconds can take 10 to 30 seconds (cold start).
Remote connection (optional)
You can also connect your MCP client directly to the toxicity API. This connection does not use server.py.
| Item | Value |
|---|---|
| Transport | Streamable HTTP |
| URL | https://koyourmoon--perspective-api-alternative.apify.actor/mcp |
| Authentication | Authorization: Bearer <APIFY_TOKEN> |
Files
| File | Content |
|---|---|
server.py | The MCP server |
Dockerfile | The container image for the server |
glama.json | The maintainer data for Glama |
server.json | The entry for the official MCP Registry |
Links
- Apify Store page: https://apify.com/koyourmoon/perspective-api-alternative
- Batch Actor for large jobs: https://apify.com/koyourmoon/toxicity-detector
License
MIT. This project is not affiliated with Google or Jigsaw. "Perspective API" is a trademark of Google LLC.
Frequently asked questions
What is Perspective API Alternative (Toxicity Detection)?
Toxicity scores (0-1) for text before an agent posts it. Perspective API compatible. No LLM.
How do I install Perspective API Alternative (Toxicity Detection)?
It runs as a remote server. In Claude Code: claude mcp add --transport http perspective-api-alternative-toxicity-det 'https://koyourmoon--perspective-api-alternative.apify.actor/mcp' --header 'Authorization: <Bearer <your Apify API token>>'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Perspective API Alternative (Toxicity Detection) need an API key?
Yes. It expects Authorization, which you set in its configuration.
Is Perspective API Alternative (Toxicity Detection) open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Perspective API Alternative (Toxicity Detection)?
It is published by koyourmoon. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.