Skip to content
Agentmart
Submit a tool

Lexicon

Fixes the names and jargon speech-to-text gets wrong before your agent acts on a dictated prompt.

Connector by ashlrai · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 2
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/ashlrai-lexicon

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Fixes the names and jargon speech-to-text gets wrong before your agent acts on a dictated prompt.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.

Tools
7 read · 7 write · 2 delete · 5 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 21

Read from the source code; the running server may list different tools.

Read 7 · Look things up without changing anything.

  • lexicon_doctor
  • lexicon_stats
  • list_packs
  • list_terms
  • serve_status
  • suggest_canonical
  • suggest_terms

Write 7 · Create, change, send or run things.

  • add_pack
  • add_term
  • apply_suggestion
  • import_dictionary
  • import_vocabulary
  • install_client
  • learn_correction

Delete 2 · Delete, drop, revoke or wipe things.

  • remove_term
  • uninstall_client

Not yet classified 5 · We could not tell from the name and description.

  • export_lexicon
  • harvest_repo
  • normalize_transcript
  • setup_lexicon
  • trust_project

Secrets and settings it asks for

Other settings (environment variables or headers).

  • LEXICON_CWD
  • LEXICON_PATH

Network hosts it talks to 22

  • api.github.com · found in code
  • apple.com · found in code
  • ashlr.ai · found in code
  • ashlrai.github.io · found in code
  • brew.sh · found in code
  • chat.openai.com · found in code
  • chatgpt.com · found in code
  • claude.ai · found in code
  • commons.wikimedia.org · found in code
  • copilot.microsoft.com · found in code
  • fonts.googleapis.com · found in code
  • gemini.google.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • grok.com · found in code
  • huggingface.co · found in code
  • lexicon.ashlr.ai · found in code
  • openapi.vercel.sh · found in code
  • perplexity.ai · found in code
  • poe.com · found in code
  • raw.githubusercontent.com · found in code
  • schemas.microsoft.com · found in code

Files it touches

  • /dev/null
  • /opt/homebrew/bin
  • /opt/homebrew/bin/ffmpeg
  • /opt/homebrew/bin/whisper-cli
  • Your home directory (~)
  • ~/.config/lexicon/lexicon.yaml

Tools (21)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_packInstall a starter term pack

    Description is built at runtime.

  • add_termAdd a lexicon term

    Description is built at runtime.

  • apply_suggestionApply suggestions

    Apply a suggestion returned by suggest_terms after the user accepted it: 'alias' merges the alias into the term, 'term' adds the term (aliases auto-suggested when none given), 'never' records the word as never-rewrite on the term, 'stale' removes the term from one lexicon file (the suggestion's `scope`, else project first); when the term also has a copy in the other file the result lists it in `stillIn` and that copy keeps correcting until removed with its own scope. Pass the suggestion object back as received; one whose `path` is another repo's project lexicon (suggest_terms with `cwd`) is re…

  • export_lexiconExport the lexicon

    Description is built at runtime.

  • harvest_repoHarvest names from a repository

    Description is built at runtime.

  • import_dictionaryImport an existing dictionary

    Import a dictionary the user already has (Wispr Flow CSV, Superwhisper JSON, macOS Text Replacement plist, espanso YAML, markdown (the CLAUDE.md '## Voice lexicon' table or '- **Canonical**: aliases' bullets), plain text 'Canonical: alias1, alias2', generic CSV, or a lexicon JSON/YAML) into the lexicon. Pass either path (a file on disk, resolved from the server working directory) or content (the text itself, up to 8 MB of UTF-8). With both, content is imported and path is not read: only its file name is used, so its extension steers format 'auto' (content passed with a .csv path is parsed as C…

  • import_vocabularyImport proper nouns from the user's own sources (preview, then apply)

    Description is built at runtime.

  • install_clientRegister the lexicon MCP server in an agent client

    Register the lexicon MCP server (and, for Claude Code, its hooks) in an agent client's config: claude, codex, cursor, windsurf, gemini, vscode or claude-desktop. Call with apply omitted (or false) first: that is a preview that returns the exact file and entry that would change and writes nothing. Show the preview to the user and call again with apply: true only after they confirm. Idempotent: an entry that is already present is left alone. Returns { client, scope, applied, ok, written, output, reload?, stderr?, next?, nextStep? }: `reload` is what the user must do so the client loads the serve…

  • learn_correctionLearn from a spelling correction

    Record that the user corrected a spelling: they meant `meant`, but the transcript or you wrote `heard`. WHEN TO CALL: the moment the user corrects a name -- "it's Ashlr.AI not Ashler", "I said Hetzner", or they simply retype a name you got wrong. Call it while you reply. Do not ask permission for this one: it is the user's own correction being written down, and asking every time is the irritating version of this product. WHAT IT CHANGES: adds `heard` as an alias of `meant`, creating the term if it is new (a new term also gets generated STT misspellings; the result's `term.aliases` lists them, …

  • lexicon_doctorIs the lexicon set up, and if not what fixes it

    Answers "is lexicon set up for this user, and what is the one command that fixes it" in a single call. WHEN TO CALL: when corrections are not happening, when the user asks whether it is set up, or before you offer to set it up, so you know whether there is anything to offer. Safe and free to call unprompted: it only reads. WHAT IT CHANGES: nothing. It writes no files and installs nothing. READ THESE THREE FIELDS FIRST: `ready` (boolean: true means terms are configured and an integration declaration was found; this does not verify a live client connection or an actual correction), `summary` (on…

  • lexicon_statsLexicon usage statistics

    Description is built at runtime.

  • list_packsList the starter term packs

    Description is built at runtime.

  • list_termsList lexicon terms

    List the user's lexicon terms, global and project merged. Optional case-insensitive substring filter over canonical spellings and aliases, plus a category filter. WHEN TO CALL: to show the user what is already known, to check whether a name is covered before adding it, or to find the exact canonical another tool needs. Read-only and safe to call unprompted; filter rather than listing everything. WHAT IT CHANGES: nothing. WHAT IT WILL NOT DO: it does not include an untrusted project .lexicon.yaml -- if one was skipped the result says so in `note`, and trust_project is how the user reviews it. R…

  • normalize_transcriptNormalize dictated text

    Description is built at runtime.

  • remove_termRemove a lexicon term or one of its aliases

    Delete a term from the user's lexicon by canonical spelling (case-insensitive), or, with `alias`, drop just that one alias from the term and keep the rest of it. WHEN TO CALL: only when the user asks for a name to be forgotten or for one wrong correction to stop (pass `alias` for that), or after they accepted a 'stale' suggestion from suggest_terms. Never tidy the lexicon on your own initiative. WHAT IT CHANGES: removes that one term (or alias), and the corrections it was making stop happening. Without `alias` it edits one lexicon file; when the term also has a copy in the other file, the resu…

Show 6 more tools
  • serve_statusLocal API status

    Check whether the local lexicon API (the CLI serve command, used by the browser extension, Claude Desktop, Shortcuts and the menu bar app) is running on 127.0.0.1 (the port in serve.json, default 41733). Returns { up: true, version, terms, ... }; { up: false, running: true, status, error } when it is running but failing (fix `error`); { up: false, error } when nothing answers, or when something other than lexicon serve answers on the port. Every result carries `url`, the /health address probed, and every up: false result carries `hint`, the next step. When serve.json is missing or unusable (no…

  • setup_lexiconOne-shot onboarding (preview, then apply)

    One-shot onboarding: seed the lexicon with the user's company and name, register the MCP server and hooks in their agent clients, optionally harvest the repo and install the local API as a login service. Ask the user for their company/product spelling, their own name, and which agent clients they use (claude, claude-desktop, codex, cursor, windsurf, gemini, vscode), then call this. Preview by default. Call once without apply to get the plan, show it to the user, then call again with apply: true, clients: [...] and serve: true only if the user agreed to each. The plan is { plan: true, lexiconPa…

  • suggest_canonicalSuggest the canonical form of a garbled word

    Description is built at runtime.

  • suggest_termsPropose lexicon improvements

    Propose new aliases, terms and never-words from the user's voice history, usage and repo. Call weekly or when the user asks how to improve corrections; present them and apply accepted ones with apply_suggestion (or add_term). Each suggestion has kind 'alias' (a misspelling to add to an existing term), 'term' (a new name), 'never' (a word wrongly rewritten), or 'stale' (a term that never fires), plus reason, confidence and evidence, and `scope` and `path`: the lexicon file applying it would write (where the term lives, or the global file for a new term). Name that file when you present a sugges…

  • trust_projectInspect or approve a project lexicon

    Description is built at runtime.

  • uninstall_clientRemove the lexicon MCP server from an agent client

    Take back out what install_client (or the CLI install command) wrote for a client: claude, codex, cursor, windsurf, gemini, vscode or claude-desktop. Only entries an install writes are removed: a lexicon server launched the way an install launches it and, for claude, the lexicon hook commands. A server of the user's own named lexicon is reported as kept and left alone, and every other entry in the file is untouched. SAFETY DEFAULT: apply omitted (or false) is a dry run that writes nothing and returns what would be removed; this tool never removes anything unless apply is true. Show the dry run…

Signals

Stars
2
Forks
2
Open issues
10
Weekly downloads
35
Last commit
Oct 24, 2026 (6 days ago)
Last release
Sep 28, 2026 (1 month ago)
Last package publish
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.ashlrai/lexicon
Version
0.5.4
Auth
No auth
Packages
npm @ashlr/lexicon
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from ashlrai

Cite this page

Lexicon MCP server. Agent Mart. https://agentmart.dev/connectors/ashlrai-lexicon (last updated 2026-10-25)