Metadata-Version: 2.4
Name: pronounce-mcp
Version: 0.1.1
Summary: MCP server for pronounce.renlab.ai — look up how engineers actually pronounce project / product / jargon names from any MCP-aware client.
Project-URL: Homepage, https://pronounce.renlab.ai
Project-URL: Repository, https://github.com/anzy-renlab-ai/pronounce
Project-URL: Issues, https://github.com/anzy-renlab-ai/pronounce/issues
Author: Pronounce community
License: MIT
Keywords: claude,developer-tools,mcp,model-context-protocol,pronunciation
Requires-Python: >=3.10
Requires-Dist: mcp<2,>=1.0.0
Description-Content-Type: text/markdown

# pronounce-mcp — MCP server for the Pronounce dictionary

<!-- Ownership proof for the official MCP registry: it verifies that this PyPI
     package belongs to the server name below by looking for this exact line in
     the package's published README. Do not remove or reword it. -->
mcp-name: io.github.anzy-renlab-ai/pronounce

An MCP server that exposes the community pronunciation dictionary at <https://pronounce.renlab.ai> as tools any MCP-aware client (Claude Desktop, Continue, Zed, ...) can call.

When a user asks an LLM "how do you pronounce kubectl?", the client invokes `pronounce("kubectl")` and gets back the canonical reading, IPA, alternate readings (if contested), source citation, and a link to the human-readable page — without the LLM having to hallucinate.

## Tools

| Tool | What it does |
|------|--------------|
| `pronounce(word)` | Look up a single word. Returns IPA, respelling, alts, source URL, confidence, category, notes. |
| `search_pronunciations(query, limit)` | Find entries by partial match on word or category. |
| `list_pronunciations(category)` | List all entries, optionally filtered by category (`product`, `cli-tool`, `acronym`, ...). |

## Install via npm / npx (coming to npm — package ready in `mcp-server/npm/`)

A zero-dependency Node (>= 18) implementation of the same server lives in [`mcp-server/npm/`](npm/). Once published it will be a one-liner in any MCP client:

```json
{
  "mcpServers": {
    "pronounce": {
      "command": "npx",
      "args": ["-y", "pronounce-mcp"]
    }
  }
}
```

Until it lands on npm, run it straight from a checkout: `node mcp-server/npm/index.js`.

## Install (Claude Desktop)

```jsonc
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "pronounce": {
      "command": "uvx",
      "args": ["pronounce-mcp"]
    }
  }
}
```

Or with `pipx`:

```bash
pipx install pronounce-mcp
```

```jsonc
{
  "mcpServers": {
    "pronounce": { "command": "pronounce-mcp" }
  }
}
```

Restart Claude Desktop. Ask any pronunciation question:

> "How do you pronounce kubectl?"

Claude calls `pronounce("kubectl")` → gets `{respelling_us: "koob control", ipa: "/ˈkuːb kənˌtroʊl/", source_label: "Kelsey Hightower (KubeCon)", url: "https://pronounce.renlab.ai/word/kubectl", ...}` → answers with the canonical reading plus the citation.

## Why this is useful

LLMs are bad at pronunciation by default. They've seen the spelling and the IPA, but they confabulate when asked about contested words (GIF? jif or gif?) or project names with non-obvious readings (kubectl is "koob-control", not "kub-cuttle"; Pinia is "pee-nya"; Vite is "veet").

This MCP server gives the LLM a deterministic source: the dictionary is community-maintained, source-citing, and updated continuously. Every contested word has both readings with the rationale. Every "creator-clarified" reading links to where the creator settled it.

## Source data

The dictionary is at <https://github.com/anzy-renlab-ai/pronounce/blob/main/data/pronunciations.tsv> — 1,600+ entries (and growing) across cloud / DevOps, frontend & backend frameworks, AI/ML platforms and research, databases, languages, editors, companies, programmer jargon, and acronyms.

Each entry has 10 columns: `word | ipa | respelling_us | alt_ipa | alt_respelling_us | source_url | source_label | category | confidence | notes`.

`confidence` is one of: `creator-clarified` (source URL documents a creator quote), `community-consensus` (widely used but no single citable source), or `contested` (multiple readings in active use).

## License

MIT.
