# Localazy MCP by usefulapi (remote · localazy.usefulapi.io)

Read Localazy projects, files, keys and glossary; submit translations, import keys, AI suggestions.

- Trust score: 64/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- remote · `localazy.usefulapi.io`: 64/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-localazy/localazy.md), [page](https://verifymcp.io/servers/io-usefulapi-localazy/localazy)

## Channel facts

- Endpoint: `https://localazy.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2730 tokens (~160/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Localazy MCP by usefulapi server?

Localazy MCP by usefulapi is a hosted endpoint at https://localazy.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-localazy 'https://localazy.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-localazy": {
      "url": "https://localazy.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-localazy": {
      "type": "http",
      "url": "https://localazy.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-localazy]
url = "https://localazy.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-localazy": {
      "type": "remote",
      "url": "https://localazy.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-localazy --url 'https://localazy.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-localazy:
    url: "https://localazy.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-localazy": {
      "Transport": "http",
      "Url": "https://localazy.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-localazy -t streamable-http -u 'https://localazy.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-localazy": {
      "type": "http",
      "url": "https://localazy.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-16 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-14 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-13 (score 62, +2)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional improvement] Stability: unverified → 0.03
- [functional] The server now declares the “prompts” capability
- [functional] First check of Schema quality: 100
- [functional] New prompt “getting_started”
- [functional] Server version: 1.0.0 → 1.1.0

### 2026-10-12 (score 60)

First indexed and scored.

## MCP tools (17)

### `localazy_list_projects` (~110 tokens)

List projects

List the Localazy projects the token can reach (a project token reaches one project): id, slug, name, source language, your role and visibility. Optionally add owning-organization limits (keys used/available, feature flags) and per-language progress counts (active, review, current, translated, sourceChanged, needImprovement). GET /projects.

Input parameters:

- `languages` (boolean): Add per-language translation progress.
- `organization` (boolean): Add the owning organization's key usage and feature flags.

### `localazy_list_import_formats` (~56 tokens)

List import file types

List the file types Localazy can store strings as (type id, name, support for plurals/arrays/structured keys). The `json` type is what localazy_import_keys uses. GET /import/formats.

### `localazy_list_files` (~69 tokens)

List files

List the files in a project (id, name, type, optional path). Use a file id with localazy_get_file_keys to read its strings. GET /projects/{projectId}/files.

Input parameters:

- `project` (string, required): Localazy project id or slug (from localazy_list_projects).

### `localazy_get_file_keys` (~294 tokens)

Get file keys and translations

Read the strings of one file in one language: key id, key path, current translation (a string, an array or a plural object keyed @one/@other). Pages of up to 1000 keys; pass `next` for the following page. Set extra_info for hidden/limit/deprecated/comment, no_content to list keys without text. Counts against the project's daily fetch cap. GET /projects/{projectId}/files/{fileId}/keys/{lang}.

Input parameters:

- `deprecated` (boolean): Include deprecated keys.
- `extra_info` (boolean): Add hidden, limit, deprecated and comment to each key.
- `file_id` (string, required): File id (from localazy_list_files).
- `lang` (string, required): Language code, e.g. en, cs, pt_BR, zh#Hans (as listed with localazy_list_projects languages=true).
- `limit` (integer): Items per page, 1-1000 (default 100 for keys; Localazy's own default for links is 1000).
- `next` (string): Paging key: pass the previous reply's `next`. Absent `next` = last page.
- `no_content` (boolean): Omit the translation text (keys only).
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `unapproved` (boolean): Include translations that are not yet approved.

### `localazy_list_key_links` (~125 tokens)

List key links (duplicities)

List links between duplicate source keys (key id, linked project id, linked key id), paged. Needs the Reviewer role. GET /projects/{projectId}/links.

Input parameters:

- `limit` (integer): Items per page, 1-1000 (default 100 for keys; Localazy's own default for links is 1000).
- `next` (string): Paging key: pass the previous reply's `next`. Absent `next` = last page.
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).

### `localazy_list_cdn_metadata` (~70 tokens)

List CDN metadata files

List the Localazy CDN release tags of a project and the URL of each tag's metadata file (languages, plural rules). Needs the Manager role. GET /projects/{projectId}/cdn.

Input parameters:

- `project` (string, required): Localazy project id or slug (from localazy_list_projects).

### `localazy_get_import_progress` (~110 tokens)

Get import progress

Progress of an import batch started with localazy_import_keys (pass its `import_batch`). The endpoint is used by Localazy's own API client but is not in the public docs yet, so the reply is returned as Localazy sends it. GET /projects/{projectId}/import/{importBatch}.

Input parameters:

- `import_batch` (string, required): The `import_batch` returned by localazy_import_keys.
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).

### `localazy_get_tm_suggestions` (~133 tokens)

Get translation memory suggestions

Translation Memory suggestions for one source key into a target language: earlier translations of the same text, with the project they came from. Free; no Localazy credits. GET /projects/{projectId}/keys/{keyId}/suggestions/tm.

Input parameters:

- `from` (string): Source language code (default: the project's source language).
- `key_id` (string, required): Source key id (the `id` of a key from localazy_get_file_keys).
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `to` (string, required): Target language code.

### `localazy_get_mt_suggestions` (~153 tokens)

Get machine translation suggestions

Machine Translation suggestions (one per engine) for one source key into a target language. Free: it does not consume Localazy credits (Localazy AI does; see localazy_translate_with_ai). The first request for a key can be slower. Nothing is saved. GET /projects/{projectId}/keys/{keyId}/suggestions/mt.

Input parameters:

- `from` (string): Source language code (default: the project's source language).
- `key_id` (string, required): Source key id (the `id` of a key from localazy_get_file_keys).
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `to` (string, required): Target language code.

### `localazy_list_glossary` (~68 tokens)

List glossary terms

All glossary terms of a project: id, description, translate/case-sensitive/exact-match flags and the term in each language. GET /projects/{projectId}/glossary.

Input parameters:

- `project` (string, required): Localazy project id or slug (from localazy_list_projects).

### `localazy_get_glossary_term` (~71 tokens)

Get glossary term

One glossary term by id. GET /projects/{projectId}/glossary/{id}.

Input parameters:

- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `term_id` (string, required): Glossary term id (from localazy_list_glossary).

### `localazy_create_glossary_term` (~166 tokens)

Create glossary term

WRITE: add one term to a project's glossary (max 1,000 terms per project). Needs the Reviewer role. The term guides translators and Localazy AI from now on. POST /projects/{projectId}/glossary.

Input parameters:

- `case_sensitive` (boolean): Match case exactly.
- `description` (string): Explanation for translators.
- `exact_match` (boolean): Match the exact form only (no inflected forms).
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `term` (array, required): The term in each language: [{lang, term}]. Include the project's source language.
- `translate_term` (boolean): true = the term is translated; false = keep it as is in every language.

### `localazy_update_glossary_term` (~193 tokens)

Update glossary term

WRITE: replace the content of one glossary term (the term list and any flags you pass overwrite the old values). Needs the Reviewer role. Read the term first with localazy_get_glossary_term. PUT /projects/{projectId}/glossary/{id}.

Input parameters:

- `case_sensitive` (boolean): Match case exactly.
- `description` (string): Explanation for translators.
- `exact_match` (boolean): Match the exact form only (no inflected forms).
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `term` (array, required): The term in each language: [{lang, term}]. Include the project's source language.
- `term_id` (string, required): Glossary term id (from localazy_list_glossary).
- `translate_term` (boolean): true = the term is translated; false = keep it as is in every language.

### `localazy_submit_translation` (~253 tokens)

Submit a translation

WRITE: set the translation of ONE source key in ONE target language. Reviewers, managers, owners and trusted translators set it as the current version (it overwrites the existing translation and goes live in the next download/CDN release); a translator's value is stored as a candidate for review. Values are stored as-is, with no placeholder, plural or length check, and the source language cannot be written. Check the reply's `stored`. POST /projects/{projectId}/keys/{keyId}/translations/{lang}.

Input parameters:

- `key_id` (string, required): Source key id (the `id` of a key from localazy_get_file_keys).
- `lang` (string, required): Target language code (not the source language).
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `value` (required): The translation: a string for a singular key, an array of strings for an array key, or an object keyed by plural form (zero, one, two, few, many, other; the @one/@other form that localazy_get_file_ke…

### `localazy_import_keys` (~311 tokens)

Import a few keys

WRITE: add or update up to 50 string keys in ONE file, in ONE language (flat key -> text; use a key like "home.title" for the key name). Needs the Owner role. Nothing is deleted or deprecated, and Localazy does not overwrite existing current translations by default (translations identical to the source are skipped). By default the language is the project's source language, so this adds new source keys or changes the source text of existing ones (which marks their translations as changed); pass a different language to import translations, optionally through review with import_as_new. Imports count against the project's daily import cap (Free plan: 100/day). Returns an import_batch id for localazy_get_import_progress. POST /projects/{projectId}/import.

Input parameters:

- `file_name` (string): Target file name in the project (default content.json). A new name creates a new file.
- `file_path` (string): Optional path of the file in the project, without the file name.
- `import_as_new` (boolean): Send the imported translations through the review process (recommended for translations you are unsure about).
- `keys` (object, required): Key name -> text, 1-50 entries (e.g. {"home.title": "Welcome"}).
- `language` (string, required): Language of the strings in `keys`, e.g. en. Use the project's source language to add source keys.
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).

### `localazy_update_key_properties` (~152 tokens)

Update key comment/limit/visibility

WRITE: change a source key's translator comment, maximum translation length, or hidden flag (fields you omit stay as they are). Needs the Manager role. It does not change texts and cannot deprecate or delete the key. PUT /projects/{projectId}/keys/{keyId}.

Input parameters:

- `comment` (string): Context note for translators.
- `hidden` (boolean): Hide the key from translators.
- `key_id` (string, required): Source key id (the `id` of a key from localazy_get_file_keys).
- `limit` (integer): Maximum translation length; -1 removes the limit.
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).

### `localazy_translate_with_ai` (~181 tokens)

Translate texts with Localazy AI (spends credits)

COSTS CREDITS: translate up to 10 texts with Localazy AI. Every call consumes Localazy credits from the account balance, by the number of translated words (see localazy.com/pricing); nothing is stored in the project, the translations are only returned. Limits: 10 requests/minute, 32 items and 16,384 characters per request. Beta. Needs the Owner role. POST /projects/{projectId}/ai.

Input parameters:

- `fallback` (string): Engine to use when Localazy AI is unavailable.
- `from` (string, required): Source language code, e.g. en.
- `items` (array, required): 1-10 texts to translate.
- `project` (string, required): Localazy project id or slug (from localazy_list_projects).
- `to` (string, required): Target language code, e.g. cs.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-localazy/localazy#diagnostics

## Score history

- 2026-10-17: 64
- 2026-10-16: 64
- 2026-10-15: 63
- 2026-10-14: 63
- 2026-10-13: 62
- 2026-10-12: 60

## Common questions

### What is the Localazy MCP by usefulapi server?

Localazy MCP by usefulapi is listed in the public MCP registry as io.usefulapi/localazy. Read Localazy projects, files, keys and glossary; submit translations, import keys, AI suggestions. This page covers its hosted endpoint (https://localazy.usefulapi.io/mcp).

### Is the Localazy MCP by usefulapi server safe to use?

Localazy MCP by usefulapi scores 64 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Localazy MCP by usefulapi server expose?

Localazy MCP by usefulapi exposes 17 tools: localazy_list_projects, localazy_list_import_formats, localazy_list_files, localazy_get_file_keys, localazy_list_key_links, and 12 more. Their descriptions and schemas cost roughly 2,515 tokens of context every time the server is loaded.

### Does the Localazy MCP by usefulapi server require authentication?

Yes. Localazy MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Localazy MCP by usefulapi server still maintained?

Localazy MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://localazy.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/localazy/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-localazy/localazy.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-localazy/localazy.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-localazy/localazy
