NeuroDock Translation

io.github.tlennon-iePublished by GitHub account tlennon-iev0.3.0Updated Oct 24, 2026

Decode subtext, tone, and ambiguity in messages; rewrite outgoing replies; brief meetings.

Overview

AI-generated overview

Lets an assistant decode tone, ambiguity and subtext in messages, rewrite outgoing replies, and brief meetings using deterministic heuristics plus optional…

What you can do
Provides four tools: translate_incoming, check_tone, rewrite_outgoing and brief_meeting. Each returns a deterministic heuristic analysis (ambiguity patterns, word-list tone scoring, speaker-prefix transcript partitioning) plus a rendered prompt the caller's own model can use to refine the result. brief_meeting enforces that quoted spans match the transcript verbatim and raises VERBATIM_ANCHOR_FAILED otherwise.
When to use it
Useful when an assistant needs help interpreting ambiguous or emotionally loaded messages, drafting replies, or summarizing meeting transcripts. It works without any connected LLM, and stays vendor-neutral when one is available.
Requirements
Runs locally over stdio as the PyPI package neurodock-mcp-translation, started with uvx or uv run. No accounts, API keys, environment variables or headers are declared. Desktop only; no web executable. Transcripts over 200k characters must be chunked by the caller.
Before you install
Developer preview (v0.0.2) with English-only heuristics and no language packs; target_language is only passed through to the prompt. The server sends nothing to third parties itself, but the returned prompt is meant to be fed to whatever LLM the caller has configured, so message content may leave the machine that way.

Installation

In SourceWeft

  1. Open NeuroDock Translation in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

neurodock-mcp-translation

Communication and translation tools as an MCP server. Shares its schemas and prompt library with @neurodock/extension-browser (Phase 2).

Version: 0.0.2 (developer preview, deterministic baseline).

Status

v0.0.x implements the four tools specified in ADR 0005 — translation tool design:

ToolStatus
translate_incomingdeterministic baseline + LLM-refinement prompt
check_tonedeterministic baseline + LLM-refinement prompt
rewrite_outgoingdeterministic baseline + LLM-refinement prompt
brief_meetingdeterministic baseline + verbatim-anchor enforcement

Design framing: deterministic baseline + optional LLM refinement

Per ADR 0005 §1, this server contains no LLM SDK (no anthropic, no openai, no ollama import). The substrate is provider-agnostic by construction. Each tool returns an envelope of the shape:

json
{  "deterministic_analysis": {    /* v0.1.0 output shape, populated heuristically */  },  "prompt_for_llm_refinement": {    "role": "user",    "content": "<rendered prompt template>",    "output_schema_ref": "packages/mcp-translation/schemas/<tool>.schema.json"  },  "eval_corpus_slice": "packages/evals/corpora/translation/<slice>.jsonl"}

The caller's MCP client (Claude Desktop, Claude Code, a custom MCP host) can:

  1. Use the deterministic analysis alone — useful when no LLM is available, when latency matters, or when the user has not yet configured a provider. The deterministic baseline already detects common ambiguity patterns (circle back, let's revisit, next week), scores tone on simple word-list heuristics, and partitions meeting transcripts via speaker-prefix and regex matching.
  2. Refine via its own LLM — feed prompt_for_llm_refinement.content to the caller's configured model (Claude, GPT, local Llama) and ask for a JSON response conforming to the schema at output_schema_ref. Replace the deterministic analysis with the refined object before rendering to the user.

This makes the server useful without a connected LLM and vendor-neutral when one is connected.

Verbatim-anchor enforcement (brief_meeting)

brief_meeting.ambiguous_items[].quoted_span.text MUST equal input.transcript[start_char:end_char]. The server validates this on every response (including its own deterministic output) and raises VERBATIM_ANCHOR_FAILED rather than fabricating ambiguity that is not in the transcript. This is anti-hallucination armour required by plan.md §7.

References

  • Spec: Section 7.
  • Tool design rationale: docs/decisions/0005-translation-tool-design.md.
  • Authoritative schemas: packages/mcp-translation/schemas/.

Running

sh
uv run neurodock-mcp-translation

The server speaks the MCP stdio transport.

Smoke test:

sh
uv run python -c "from neurodock_mcp_translation import server; print(server.app.name)"# neurodock-mcp-translation

Development

sh
uv sync --all-packages --all-extrasuv run pytest packages/mcp-translation/tests/ -vuv run ruff check packages/mcp-translation/uv run ruff format --check packages/mcp-translation/uv run mypy --strict packages/mcp-translation/src/

Known limitations (v0.0.2)

  • No language packs. The deterministic heuristics are English-only. BCP-47 target_language is accepted but only passed through to the prompt.
  • No model_provenance from a real LLM. The deterministic analysis sets mode="unknown" on every response; a connected LLM client is responsible for setting this in the refined response.
  • No eval-corpus integration yet. The eval_corpus_slice paths are recorded on every response but the slices themselves are owned by eval-curator and land in Phase 2.
  • No streaming. Long meeting transcripts (>200k chars) must be chunked by the caller.
  • The four schemas under schemas/ are the v0.1.0 wire contract; the v0.0.2 envelope wraps them and will collapse to the wire contract once the Phase 2 LLM-refinement flow is the default path.

Source: packages/mcp-translation/README.md at commit 2d9cac6

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts