# Paxmod

> Content moderation for chat and comments: free test keys, message checks, plain-English policies.

- name: com.paxmod/paxmod
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 100/100
- quality: 88/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.paxmod%2Fpaxmod
- tools: https://api.protogrid.dev/v1/servers/com.paxmod%2Fpaxmod/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "paxmod": {
      "type": "http",
      "url": "https://www.paxmod.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 100
- drivers: +repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-100% +updated-4d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 88/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 88 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_integration_guide (destructiveHint, idempotentHint, openWorldHint); moderate_text (idempotentHint, openWorldHint); create_test_api_key (idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,944 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 1,944 tokens to load them all
- tool set hash: 0e787db6cb7ca1fd93c989d83edd77f6
- tools last changed: 2026-11-09T02:22:09.052Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.paxmod/paxmod.svg)](https://protogrid.dev/servers/com.paxmod/paxmod)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-09 `get_player_history` added
  - Returns one player's flagged messages in a project, newest first (up to 50), with a count by reason. Use the player id the game or app sends as user_id. Not available for organizations that keep player data in a separate region unless Paxmod has enabled it.
- 2026-11-09 `list_flagged_messages` added
  - Lists a project's most recent flagged messages, newest first, with the reason, confidence, player id, context id and any reviewer verdict (TP or FP). Filter by date, category or player. Up to 50 per call. Not available for organizations that keep player data in a separate region unless Paxmod has enabled it.
- 2026-11-09 `test_policy_on_project` added
  - Runs example messages against one of the user's Advanced mode projects, with a draft policy or the saved one, and says which would be flagged, with a score and reason for each. Mark each example with expect "flag" or "pass" and the summary counts how many came back as expected. The project's word rules run first, as they do live. Nothing is stored and no credits are used. Up to 50 examples per call.
- 2026-11-09 `get_usage` added
  - Returns how many messages a project has sent per day over the last 30 days (up to 90), plus the total for the current calendar month. Counts are updated through the day.
- 2026-11-09 `get_project_settings` added
  - Returns a project's moderation settings: type, mode, categories and thresholds, the Advanced mode policy, and word rules. The API key is not included.
- 2026-11-09 `list_projects` added
  - Lists the signed-in user's Paxmod projects: their own and those in organizations they belong to, with each project's id, name, type (text or image), mode (standard or advanced), organization and the user's role. API keys are not included.
- 2026-11-09 `test_word_rules` changed (annotations)
- 2026-11-09 `test_policy` changed (annotations)
- 2026-11-09 `moderate_text` changed (annotations)
- 2026-11-09 `create_test_api_key` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/com.paxmod%2Fpaxmod/changes

## Remotes

- https://www.paxmod.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (11)

- `create_test_api_key`: Creates a working text-moderation API key with no account: 100 messages over 72 hours, standard mode, every category on. Returns api_key and claim_url; opening claim_url keeps the key in a Paxmod account. Limited to 3 keys per address per day.
- `get_integration_guide`: The full Paxmod API guide for coding agents: endpoints, request and response shapes, error codes, rate limits and code samples (Node, Python, Unity, Roblox and more).
- `get_player_history`: Returns one player's flagged messages in a project, newest first (up to 50), with a count by reason. Use the player id the game or app sends as user_id. Not available for organizations that keep player data in a separate region unless Paxmod has enabled it.
- `get_project_settings`: Returns a project's moderation settings: type, mode, categories and thresholds, the Advanced mode policy, and word rules. The API key is not included.
- `get_usage`: Returns how many messages a project has sent per day over the last 30 days (up to 90), plus the total for the current calendar month. Counts are updated through the day.
- `list_flagged_messages`: Lists a project's most recent flagged messages, newest first, with the reason, confidence, player id, context id and any reviewer verdict (TP or FP). Filter by date, category or player. Up to 50 per call. Not available for organizations that keep player data in a separate region unless Paxmod has enabled it.
- `list_projects`: Lists the signed-in user's Paxmod projects: their own and those in organizations they belong to, with each project's id, name, type (text or image), mode (standard or advanced), organization and the user's role. API keys are not included.
- `moderate_text`: Checks one chat message with Paxmod, using the project's categories and thresholds. Returns flagged or not_flagged with a score per category. Counts as one of the project's messages, like a live request. Needs a Paxmod API key (create_test_api_key gives one).
- `test_policy`: Runs example messages against an Advanced mode policy and says which would be flagged, with a score and reason for each. Send a draft policy to try changes before saving them; leave it out to test the saved policy. Mark each example with expect "flag" or "pass" and the summary counts how many came back as expected. The project's word rules run first, as they do live. Nothing is stored. No credits are used, except on a free test key from create_test_api_key, where each message checked counts toward its 100 free messages. Up to 50 examples per call.
- `test_policy_on_project`: Runs example messages against one of the user's Advanced mode projects, with a draft policy or the saved one, and says which would be flagged, with a score and reason for each. Mark each example with expect "flag" or "pass" and the summary counts how many came back as expected. The project's word rules run first, as they do live. Nothing is stored and no credits are used. Up to 50 examples per call.
- `test_word_rules`: Shows what a project's word rules do to each message: block (flag without checking), bypass (pass without checking), or scan with the text rewritten by remove and replace rules. Send draft rules to try changes before saving them. No model call, nothing stored, no credits used.
