# Proxylang website translation

> Translate a website into other languages from one script tag. Free trial, no signup.

- name: dev.proxylang/translate
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 100/100
- quality: 88/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.proxylang%2Ftranslate
- tools: https://api.protogrid.dev/v1/servers/dev.proxylang%2Ftranslate/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "translate": {
      "type": "http",
      "url": "https://proxylang.dev/mcp"
    }
  }
}
```


## Trust

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

## Quality 88/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### 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: 93 (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`: 6 of 6 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 3 of 6 tools declare all four hints; missing: proxylang_status (destructiveHint, idempotentHint); proxylang_check (destructiveHint, idempotentHint); proxylang_next (destructiveHint, idempotentHint)
- pass `tools.token_cost`: about 988 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 2 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 6, about 988 tokens to load them all
- tool set hash: ffb85f39fb6003e38f7e43bdb5365869
- tools last changed: 2026-10-07T15:55:36.062Z
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.proxylang/translate.svg)](https://protogrid.dev/servers/dev.proxylang/translate)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-07 `proxylang_style` added
  - Restyle the language menu so it looks like part of the site. Read the site's brand color, background, text color, button roundness and dark mode first, then send only the fields to change in `style`. Colors: #hex, rgb(), hsl() or a CSS color name; each has a Light and a Dark version. Full field list: https://proxylang.dev/agents.md step 7.
- 2026-10-07 `proxylang_change_site` added
  - Use when the trial was started for the wrong website (action "move": the old site stops), or the tag must also work on a test or staging site (action "add": both work). Same agent_token, script tag, claim_url and free words; all sites share one limit. Not needed for localhost: use localhost_script_tag.

Full history: https://api.protogrid.dev/v1/servers/dev.proxylang%2Ftranslate/changes

## Remotes

- https://proxylang.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (6)

- `proxylang_change_site`: Use when the trial was started for the wrong website (action "move": the old site stops), or the tag must also work on a test or staging site (action "add": both work). Same agent_token, script tag, claim_url and free words; all sites share one limit. Not needed for localhost: use localhost_script_tag.
- `proxylang_check`: Is the Proxylang tag on the live site, and have words been translated? If words_translated is 0, a real browser visit to preview_url is needed first.
- `proxylang_next`: Returns message_for_user: the message to end setup with (the site works, the link to keep it, and only the Proxylang features that fit this site). Show it as it is, in the user's language, with <claim_url> replaced by the saved claim_url.
- `proxylang_start`: Set up Proxylang on a website with no signup: returns the script tag, install steps for the site's platform, an agent_token for the other tools, and claim_url (sent once; save it). If the user named a language, use it; otherwise pick the one their customers most likely speak and say why. The free trial shows the first language; list other recommended languages after it.
- `proxylang_status`: Free words left, trial expiry, and whether the user claimed or paid.
- `proxylang_style`: Restyle the language menu so it looks like part of the site. Read the site's brand color, background, text color, button roundness and dark mode first, then send only the fields to change in `style`. Colors: #hex, rgb(), hsl() or a CSS color name; each has a Light and a Dark version. Full field list: https://proxylang.dev/agents.md step 7.
