# Witcher 3 String Editor (nuget · Witcher3StringEditor.MCP)

MCP server for reading and editing The Witcher 3 .w3strings localization files.

- Trust score: 62/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- nuget · `Witcher3StringEditor.MCP`: 62/100 (this document), [markdown](https://verifymcp.io/servers/0x7a2c9e5d-witcher3stringeditor-mcp/witcher3stringeditor-mcp.md), [page](https://verifymcp.io/servers/0x7a2c9e5d-witcher3stringeditor-mcp/witcher3stringeditor-mcp)

## Channel facts

- Registry: `nuget`
- Package: `Witcher3StringEditor.MCP`
- Version: `0.1.0-beta.4`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 6/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Build provenance not yet verified.
  - License check failed: no license is declared.
  - Actively maintained (last published 8 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1225 tokens (~81/item across 15 items; 15 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **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**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_item" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Witcher 3 String Editor MCP server?

Witcher 3 String Editor runs locally as a NuGet package, launched with dnx Witcher3StringEditor.MCP@0.1.0-beta.4 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add 0x7a2c9e5d-witcher3stringeditor-mcp -- dnx Witcher3StringEditor.MCP@0.1.0-beta.4 --yes
```

### Cursor

```json
{
  "mcpServers": {
    "0x7a2c9e5d-witcher3stringeditor-mcp": {
      "command": "dnx",
      "args": [
        "Witcher3StringEditor.MCP@0.1.0-beta.4",
        "--yes"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "0x7a2c9e5d-witcher3stringeditor-mcp": {
      "command": "dnx",
      "args": [
        "Witcher3StringEditor.MCP@0.1.0-beta.4",
        "--yes"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add 0x7a2c9e5d-witcher3stringeditor-mcp -- dnx Witcher3StringEditor.MCP@0.1.0-beta.4 --yes
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "0x7a2c9e5d-witcher3stringeditor-mcp": {
      "type": "local",
      "command": [
        "dnx",
        "Witcher3StringEditor.MCP@0.1.0-beta.4",
        "--yes"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  0x7a2c9e5d-witcher3stringeditor-mcp:
    command: "dnx"
    args: ["Witcher3StringEditor.MCP@0.1.0-beta.4", "--yes"]
```

### Netclaw

```json
{
  "McpServers": {
    "0x7a2c9e5d-witcher3stringeditor-mcp": {
      "Transport": "stdio",
      "Command": "dnx",
      "Arguments": [
        "Witcher3StringEditor.MCP@0.1.0-beta.4",
        "--yes"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "0x7a2c9e5d-witcher3stringeditor-mcp": {
      "command": "dnx",
      "args": [
        "Witcher3StringEditor.MCP@0.1.0-beta.4",
        "--yes"
      ]
    }
  }
}
```

## 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-27 (score 62)

First indexed and scored.

## MCP tools (15)

### `open_document` (~45 tokens)

Opens an existing .w3strings file and returns a document handle used by the document tools.

Input parameters:

- `filePath` (string, required): Path to the .w3strings file to open.

### `create_document` (~39 tokens)

Creates a new empty document held in memory and returns a document handle. The version and language are chosen by save_document when the document is written to disk.

### `count` (~33 tokens)

Returns the number of string items in the document.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.

### `is_dirty` (~48 tokens)

Returns whether the document has unsaved changes: true after any item change or a new document, false after save_document.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.

### `navigate` (~130 tokens)

Moves relative to an item and returns the item reached: offset 0 returns the reference item, positive offsets move forward, negative offsets move backward. Omit strId to start from the first item. Returns nothing when the target is outside the document.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `offset` (integer, required): Number of items to move. 0 returns the reference item, positive moves forward, negative moves backward.
- `strId` (string|null): 32-bit unsigned decimal string id of the reference item. Omit it to start from the first item.

### `get_item` (~58 tokens)

Returns the string item with the given 32-bit unsigned string id.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `strId` (string, required): 32-bit unsigned string id of the item, in decimal.

### `search_items` (~91 tokens)

Searches the string items of the document by substring in their string id, text or key name and returns all matches.

Input parameters:

- `caseSensitive` (boolean): Match case sensitively. Defaults to false.
- `handle` (string, required): Document handle returned by open_document or create_document.
- `query` (string, required): Substring to search for. It is matched against the string id, text and key name of every item.

### `add_item` (~70 tokens)

Adds a string item to the document without writing to disk.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `item` (object, required): Item to add. strId is a 32-bit unsigned decimal id; text is the string; keyName and keyHex are optional.

### `update_item` (~163 tokens)

Updates the text or key of an existing string item without writing to disk. Omit an argument to keep its value, pass an empty string to clear it.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `keyHex` (string|null): New 32-bit hexadecimal key hash. Omit to keep the current hash, pass an empty string to clear it.
- `keyName` (string|null): New readable key name. Omit to keep the current name, pass an empty string to clear it.
- `strId` (string, required): 32-bit unsigned decimal string id of the item to update.
- `text` (string|null): New text. Omit to keep the current text, pass an empty string to clear it.

### `update_item_id` (~86 tokens)

Changes the 32-bit unsigned string id of an item without writing to disk.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `newStrId` (string, required): New 32-bit unsigned decimal string id. It must not be used by another item.
- `strId` (string, required): Current 32-bit unsigned decimal string id of the item.

### `update_item_key_name` (~89 tokens)

Changes the readable key name of an item and clears its key hash, which is recalculated when the document is saved.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `keyName` (string, required): New readable key name. Pass an empty string to clear the name.
- `strId` (string, required): 32-bit unsigned decimal string id of the item.

### `delete_item` (~56 tokens)

Removes a string item from the document without writing to disk.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `strId` (string, required): 32-bit unsigned decimal string id of the item to delete.

### `save_document` (~209 tokens)

Writes the document to disk, overwriting the target file, and returns true when it was written. The version is always required; the path is required for a document that was never saved; language and version are the values written to the file.

Input parameters:

- `filePath` (string|null): Path to write to. Defaults to the path the document was opened from or last saved to; required when the document has no path yet.
- `handle` (string, required): Document handle returned by open_document or create_document.
- `language` (string): Language code or culture code to write the document for, for example en, cn or zh-Hans. Defaults to en.
- `version` (string, required): W3Strings container version, which decides the encoding: 162 or 163 use UTF-16LE (classic and next-gen editions), 164 uses UTF-8 (remastered edition). Versions are tied to the game edition and must n…

### `close_document` (~77 tokens)

Closes the document and releases the handle. Unsaved changes are discarded unless saveBeforeClose is true; saving before close uses the language and version already stored in the file.

Input parameters:

- `handle` (string, required): Document handle returned by open_document or create_document.
- `saveBeforeClose` (boolean): Save pending changes before closing. Defaults to false.

### `list_languages` (~31 tokens)

Lists the language codes a .w3strings container can be written for. Pass one to save_document as language.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/0x7a2c9e5d-witcher3stringeditor-mcp/witcher3stringeditor-mcp#diagnostics

## Score history

- 2026-11-05: 62
- 2026-11-04: 62
- 2026-11-03: 62
- 2026-11-02: 62
- 2026-11-01: 62
- 2026-10-31: 62
- 2026-10-30: 62
- 2026-10-29: 62
- 2026-10-28: 62
- 2026-10-27: 62

## Common questions

### What is the Witcher 3 String Editor MCP server?

Witcher 3 String Editor is an MCP server listed in the public MCP registry as io.github.0x7A2C9E5D/Witcher3StringEditor.MCP. MCP server for reading and editing The Witcher 3 .w3strings localization files. This page covers its NuGet package (Witcher3StringEditor.MCP).

### Is the Witcher 3 String Editor MCP server safe to use?

Witcher 3 String Editor scores 62 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. 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 Witcher 3 String Editor MCP server expose?

Witcher 3 String Editor exposes 15 tools: open_document, create_document, count, is_dirty, navigate, and 10 more. Their descriptions and schemas cost roughly 1,225 tokens of context every time the server is loaded.

### Is the Witcher 3 String Editor MCP server still maintained?

Witcher 3 String Editor is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- NuGet package: https://www.nuget.org/packages/Witcher3StringEditor.MCP
- Socket report: https://socket.dev/nuget/package/Witcher3StringEditor.MCP
- Changelog RSS feed: https://verifymcp.io/servers/0x7a2c9e5d-witcher3stringeditor-mcp/witcher3stringeditor-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/0x7a2c9e5d-witcher3stringeditor-mcp/witcher3stringeditor-mcp.json
- HTML version of this page: https://verifymcp.io/servers/0x7a2c9e5d-witcher3stringeditor-mcp/witcher3stringeditor-mcp
