{
  "$comment": "Install manifest for the Lexicon MCP server. Merge the `mcpServers` key into your MCP client config verbatim. Install the CLI first (see `install`) so `lexicon-mcp` is on PATH. Docs: https://lexicon.ashlr.ai/llms-full.txt",
  "name": "lexicon",
  "displayName": "Lexicon",
  "version": "0.5.3",
  "description": "Speech-to-text is excellent at English and wrong about your vocabulary. Lexicon is one YAML file of the names, products and acronyms you say out loud, applied to every transcript before an agent reads it.",
  "license": "MIT",
  "homepage": "https://lexicon.ashlr.ai",
  "repository": "https://github.com/ashlrai/lexicon",
  "packageName": "@ashlr/lexicon",
  "packageRegistry": "https://www.npmjs.com/package/@ashlr/lexicon",
  "demo": "https://ashlrai.github.io/lexicon/",
  "author": {
    "name": "Ashlr.AI",
    "url": "https://ashlr.ai"
  },
  "mcpServers": {
    "lexicon": {
      "command": "lexicon-mcp",
      "args": []
    }
  },
  "transport": "stdio",
  "runtime": {
    "node": ">=20"
  },
  "requiresApiKey": false,
  "requiresAccount": false,
  "network": "none beyond 127.0.0.1; the only outbound request in the codebase is `lexicon voice` fetching a whisper.cpp model on first use",
  "install": {
    "recommended": "curl -fsSL https://ashlrai.github.io/lexicon/install.sh | sh",
    "noGlobalInstall": "npx @ashlr/lexicon@latest setup",
    "homebrew": "brew install ashlrai/tap/lexicon",
    "npm": "npm i -g @ashlr/lexicon",
    "claudeCodePlugin": [
      "claude plugin marketplace add ashlrai/lexicon",
      "claude plugin install lexicon@ashlrai"
    ],
    "afterInstall": "lexicon setup",
    "nonInteractive": "lexicon setup --yes --packs developer,ai"
  },
  "clients": {
    "claude": "lexicon install claude --apply",
    "claude-desktop": "lexicon install claude-desktop --apply",
    "codex": "lexicon install codex --apply",
    "cursor": "lexicon install cursor --apply",
    "windsurf": "lexicon install windsurf --apply",
    "gemini": "lexicon install gemini --apply",
    "vscode": "lexicon install vscode --apply"
  },
  "anyOtherClient": "lexicon install generic",
  "verify": {
    "cli": "lexicon normalize \"tell Ashler to ship it\"",
    "expect": "tell Ashlr.AI to ship it",
    "doctor": "lexicon doctor",
    "overMcp": "call lexicon_doctor and read `ok`; call normalize_transcript on a sentence containing a known alias and read `changed`"
  },
  "tools": [
    {
      "name": "normalize_transcript",
      "summary": "Correct a dictated transcript and report what changed."
    },
    {
      "name": "add_term",
      "summary": "Add a canonical spelling, with aliases suggested when omitted."
    },
    {
      "name": "remove_term",
      "summary": "Remove a term."
    },
    {
      "name": "list_terms",
      "summary": "List or search the merged lexicon."
    },
    {
      "name": "export_lexicon",
      "summary": "Export to any of the fifteen formats."
    },
    {
      "name": "learn_correction",
      "summary": "Record \"heard X, meant Y\" as a new alias."
    },
    {
      "name": "suggest_canonical",
      "summary": "Closest existing terms to a garbled word, for \"did you mean\"."
    },
    {
      "name": "lexicon_stats",
      "summary": "Hits per term, totals, never-hit terms."
    },
    {
      "name": "harvest_repo",
      "summary": "Find proper nouns in a repository worth adding."
    },
    {
      "name": "suggest_terms",
      "summary": "Propose aliases, terms and stale entries from usage."
    },
    {
      "name": "apply_suggestion",
      "summary": "Apply one accepted suggestion."
    },
    {
      "name": "trust_project",
      "summary": "Show, trust or untrust a project .lexicon.yaml."
    },
    {
      "name": "lexicon_doctor",
      "summary": "The doctor checks as structured data."
    },
    {
      "name": "install_client",
      "summary": "Preview or write the MCP config for a named client."
    },
    {
      "name": "setup_lexicon",
      "summary": "Plan or run first-time setup non-interactively."
    },
    {
      "name": "serve_status",
      "summary": "Whether the loopback API on 127.0.0.1:41733 is up."
    },
    {
      "name": "list_packs",
      "summary": "The four starter packs and which are installed."
    },
    {
      "name": "add_pack",
      "summary": "Install a starter pack."
    },
    {
      "name": "import_dictionary",
      "summary": "Import a Wispr, Superwhisper, macOS, espanso, CSV or JSON dictionary."
    }
  ],
  "resources": [
    {
      "uri": "lexicon://me",
      "summary": "The merged lexicon as markdown. What an agent should read at session start."
    },
    {
      "uri": "lexicon://json",
      "summary": "The merged lexicon as JSON."
    }
  ],
  "prompts": [
    {
      "name": "voice-context",
      "summary": "The lexicon plus an instruction to apply it for the rest of the session."
    },
    {
      "name": "onboard",
      "summary": "Walks the agent through first-run setup, then calls setup_lexicon."
    }
  ],
  "docs": {
    "forAgents": "https://github.com/ashlrai/lexicon/blob/main/docs/AGENTS.md",
    "agentNative": "https://github.com/ashlrai/lexicon/blob/main/docs/AGENT-NATIVE.md",
    "mcpReference": "https://github.com/ashlrai/lexicon/blob/main/docs/MCP.md",
    "clients": "https://github.com/ashlrai/lexicon/blob/main/docs/CLIENTS.md",
    "quickstart": "https://github.com/ashlrai/lexicon/blob/main/docs/QUICKSTART.md",
    "faq": "https://github.com/ashlrai/lexicon/blob/main/docs/FAQ.md",
    "security": "https://github.com/ashlrai/lexicon/blob/main/SECURITY.md",
    "llmsTxt": "https://lexicon.ashlr.ai/llms.txt",
    "llmsFullTxt": "https://lexicon.ashlr.ai/llms-full.txt"
  }
}
