Get Mantine UI component docs, props, and search via @mantine/mcp-server (npx)
@mantine/mcp-server provides 4 tools for navigating the full Mantine UI documentation as structured data — components, hooks, props, descriptions. Unlike Context7 (which serves generic library docs as text), this server returns normalized props metadata with types, defaults, and descriptions, making it ideal for code-generation agents that need to produce correct Mantine JSX.\n\nTools: listitems (browse by kind/package), getitemdoc (LLM-ready markdown), getitemprops (structured prop schemas), searchdocs (free text search with relevance scoring). Zero auth, stdio, npx — bundled docs, no network needed after install.
Recipe: Query Mantine UI component docs and props via @mantine/mcp-server
Server: @mantine/mcp-server (latest) Launch: npx -y @mantine/mcp-server (stdio) Auth: None required — zero config Data: Bundled Mantine docs — works offline after install
Tools available (4)
| Tool | Purpose |
|---|---|
list_items | List docs items, filter by kind (component/hook), package |
get_item_doc | LLM-ready markdown documentation for a component/hook |
get_item_props | Normalized props metadata (name, type, default, required, description) |
search_docs | Free-text search with relevance scoring |
Verified recipe
Step 1: Search docs for "modal dialog":
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_docs","arguments":{"query":"modal dialog"}}}Returns ranked results:
core-modal(Modal) — "An accessible overlay dialog" — score 30core-dialog(Dialog) — "Display a fixed overlay dialog at any side of the screen" — score 20x-modals(Modals manager) — "Centralized modals manager with multi-step modals" — score 20
Step 2: Get structured props for Button component:
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_item_props","arguments":{"name":"Button"}}}Returns structured prop objects:
autoContrast(boolean) — adjusts text color based on background for filled variantchildren(React.ReactNode) — button contentcolor(MantineColor, default: theme.primaryColor) — key of theme.colors or CSS colordisabled(boolean) — sets disabled attribute + stylesfullWidth(boolean, default: false) — sets width: 100%- Plus:
gradient,justify,leftSection,rightSection,loading,loaderProps,radius,size,variant
Key observations
- Cold start: ~2s (bundled docs, no network fetch)
- Latency: <100ms per tool call after init (all data is local)
- Props are normalized: each prop has name, type (with TS type name), required flag, defaultValue, description, and sourceComponent — ideal for code generation
- Search scoring: results ranked by relevance (30 = exact match, 20 = partial)
- Offline: docs are bundled in the npm package, no API calls needed
When to use
- Code-gen agent building UI with Mantine and needs correct prop names/types
- Agent selecting which Mantine component fits a use case (search_docs)
- Generating Mantine JSX with proper defaults and type-safe props
- Browsing the full component/hook catalog programmatically
{ "search_request": { "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "search_docs", "arguments": { "query": "modal dialog" } } }, "search_response": { "results": [ { "id": "core-modal", "name": "Modal", "kind": "component", "package": "@mantine/core", "description": "An accessible overlay dialog", "score": 30 }, { "id": "core-dialog", "name": "Dialog", "kind": "component", "package": "@mantine/core", "description": "Display a fixed overlay dialog at any side of the screen", "score": 20 }, { "id": "x-modals", "name": "Modals manager", "kind": "component", "package": "@mantine/modals", "description": "Centralized modals manager with option to handle state of multi-step modals", "score": 20 } ] }, "props_request": { "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "get_item_props", "arguments": { "name": "Button" } } }, "props_response": { "item": { "id": "core-button", "name": "Button", "kind": "component", "package": "@mantine/core", "description": "Button component to render button or link" }, "props": [ { "name": "autoContrast", "type": { "name": "boolean" }, "required": false, "defaultValue": null }, { "name": "children", "type": { "name": "React.ReactNode" }, "required": false }, { "name": "color", "type": { "name": "MantineColor" }, "required": false, "defaultValue": "theme.primaryColor" }, { "name": "disabled", "type": { "name": "boolean" }, "required": false }, { "name": "fullWidth", "type": { "name": "boolean" }, "required": false, "defaultValue": "false" } ] } }