Because the guardrail id selects which categories are enabled, the same tool call gives different answers under different policies — which is the right design for moderation, and also means the server tells you nothing about what is being checked. Set the policy in the chakoshi playground first, then read results knowing what was on. It is aimed at Japanese-language safety assessment and is explicitly beta.
An MCP server that connects a client to the chakoshi API, a guardrail service for LLMs from NTT Docomo Business. One tool submits text and returns chakoshi's assessment as JSON — an unsafe flag and score, plus per-category detection results and keyword-filter matches.
- `moderate_text` — takes a `text` string of up to 2000 characters and returns the assessment from the chakoshi Guardrails Apply API
- A structured result rather than a verdict: an unsafe flag and score alongside per-category outcomes such as violence and harassment, each showing whether it was enabled and whether it fired
- Keyword-filter output including whether anything matched, the matches themselves, and a masked version of the input
- Policy control on chakoshi's side, since the guardrail id you configure decides which categories apply
A chakoshi account plus two things from it: an API key (`CHAKOSHI_API_KEY`) and a guardrail id (`CHAKOSHI_GUARDRAIL_ID`) — the guardrail must be created and its policy configured before the Apply API will work. Also `CHAKOSHI_API_URL` for the endpoint and `CHAKOSHI_TIMEOUT_SEC`, shown as 10. Python 3.10 or higher; clone then `uv sync` or `pip install -e .`, and launch with `uv run main.py`. The project is `mcp-chakoshi` (0.1.0 in pyproject). The chakoshi API is in beta and the README says not to use it in production. Documentation is in Japanese. MIT licensed.
One command plus a key — uv sync, then supply credentials
