NiiVue MCP Server
# @edziocodes/niivue-mcp
[](https://www.npmjs.com/package/@edziocodes/niivue-mcp)
MCP server that provides Niivue documentation and API reference to LLMs with fast lexical search and optional semantic hybrid search.
## What you get
- Full text search over Niivue docs and guides (BM25 + embeddings).
- API lookup from JSDoc comments in the Niivue TypeScript source.
- Structured tools for overview, search, listing, and page retrieval.
- Local cache to keep startup and query latency low.
## Installation
```bash
npm install @edziocodes/niivue-mcp
```
## MCP Client Configuration
Add the following to your MCP client configuration (e.g., Claude Desktop, Cursor, etc.):
```json
{
"mcpServers": {
"niivue": {
"command": "npx",
"args": ["-y", "@edziocodes/niivue-mcp"]
}
}
}
```
## Development
Clone and build from source:
```bash
git clone https://github.com/gaiborjosue/niivue-mcp.git
cd niivue-mcp
npm install
npm run build
```
Run locally:
```bash
npm run dev
```
## Embeddings (hybrid search)
Hybrid search with semantic embeddings is enabled by default. The embedding model is downloaded on first use.
To disable embeddings and use BM25 search only:
```bash
npx @edziocodes/niivue-mcp --no-embeddings
```
## Tools
- `get_niivue_overview`
- `search_niivue_docs`
- `get_niivue_doc`
- `list_niivue_docs`
- `search_niivue_api`
- `get_niivue_api`
## Cache
Stored in `~/.niivue-mcp`:
- `docs/` raw markdown
- `index.json` BM25 index
- `vectors.json` vector index (when embeddings enabled)
- `api-index.json` parsed API entries
- `meta.json` cache metadata
## Attribution
Docs and source are fetched from the Niivue repository: https://github.com/niivue/niivue/
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose with no ambiguity: get_niivue_api fetches API method details, get_niivue_doc fetches doc page content, get_niivue_overview returns the overview, list_niivue_docs lists docs, search_niivue_api searches API methods, and search_niivue_docs searches documentation. The tools are well-differentiated by their target resource (API vs. docs) and action (get vs. list vs. search).
All tool names follow a consistent verb_noun pattern with 'niivue' as a prefix, using snake_case throughout. The verbs (get, list, search) are applied predictably to the nouns (api, doc, overview, docs), making the naming highly consistent and readable.
With 6 tools, the server is well-scoped for its purpose of accessing Niivue documentation and API information. Each tool earns its place by covering distinct aspects like fetching, listing, and searching, without being too sparse or bloated, which is ideal for a documentation-focused server.
The tool set provides comprehensive coverage for accessing and searching Niivue documentation and API details, with no obvious gaps for the stated purpose. Minor gaps might include lack of update or delete operations, but these are not expected in a read-only documentation context, so the surface is nearly complete.