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
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.
About
Reviews
Write a reviewNo 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_doctorlexicon_statslist_packslist_termsserve_statussuggest_canonicalsuggest_terms
Write 7 · Create, change, send or run things.
add_packadd_termapply_suggestionimport_dictionaryimport_vocabularyinstall_clientlearn_correction
Delete 2 · Delete, drop, revoke or wipe things.
remove_termuninstall_client
Not yet classified 5 · We could not tell from the name and description.
export_lexiconharvest_reponormalize_transcriptsetup_lexicontrust_project
Secrets and settings it asks for
Other settings (environment variables or headers).
LEXICON_CWDLEXICON_PATH
Network hosts it talks to 22
api.github.com· found in codeapple.com· found in codeashlr.ai· found in codeashlrai.github.io· found in codebrew.sh· found in codechat.openai.com· found in codechatgpt.com· found in codeclaude.ai· found in codecommons.wikimedia.org· found in codecopilot.microsoft.com· found in codefonts.googleapis.com· found in codegemini.google.com· found in codegithub.com· found in codeglama.ai· found in codegrok.com· found in codehuggingface.co· found in codelexicon.ashlr.ai· found in codeopenapi.vercel.sh· found in codeperplexity.ai· found in codepoe.com· found in coderaw.githubusercontent.com· found in codeschemas.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 packDescription is built at runtime.
add_termAdd a lexicon termDescription is built at runtime.
apply_suggestionApply suggestionsApply 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 lexiconDescription is built at runtime.
harvest_repoHarvest names from a repositoryDescription is built at runtime.
import_dictionaryImport an existing dictionaryImport 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 clientRegister 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 correctionRecord 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 itAnswers "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 statisticsDescription is built at runtime.
list_packsList the starter term packsDescription is built at runtime.
list_termsList lexicon termsList 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 textDescription is built at runtime.
remove_termRemove a lexicon term or one of its aliasesDelete 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 statusCheck 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 wordDescription is built at runtime.
suggest_termsPropose lexicon improvementsPropose 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 lexiconDescription is built at runtime.
uninstall_clientRemove the lexicon MCP server from an agent clientTake 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
- Repository
- github.com/ashlrai/lexicon
- Website
- lexicon.ashlr.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from ashlrai
- 0.574score
Phantom Secrets
ashlrai
Value-blind secret metadata and gated workflows for AI coding agents through Phantom's local proxy.
ConnectorAFreshness: ALocal★ 18Claude Code +5 - 0.540score
webfetch
ashlrai
License-first federated image search with attribution, dimensions, and download tooling.
ConnectorAFreshness: ALocal★ 3Claude Code +5
Cite this page
Lexicon MCP server. Agent Mart. https://agentmart.dev/connectors/ashlrai-lexicon (last updated 2026-10-25)