dash-mcp
v1.0.0
Published
MCP server for Dash, the macOS documentation browser — search documentation, read pages, list docsets, and manage full-text search.
Maintainers
Readme
dash-mcp
MCP server for Dash, the macOS documentation browser — search documentation, read pages, list docsets, and manage full-text search right from your AI assistant.
Features
| Tool | Description | Data Source |
|------|-------------|-------------|
| search_documentation | Search across installed docsets and snippets | Dash HTTP API (local) |
| read_documentation | Fetch and read documentation page content | Dash HTTP API (local) |
| list_installed_docsets | List all installed documentation sets | Dash HTTP API (local) |
| enable_docset_fts | Enable full-text search for a docset | Dash HTTP API (local) |
Prerequisites
- macOS with Dash installed and running
- Dash's HTTP API must be active (it starts automatically with Dash)
- Node.js >= 18
Setup
No installation needed — just configure your MCP client:
Add to .vscode/mcp.json:
{
"servers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}Add to .cursor/mcp.json:
{
"mcpServers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}Add to claude_desktop_config.json:
{
"mcpServers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}claude mcp add --transport stdio dash -- npx -y dash-mcpOr add to .mcp.json (shared with team):
{
"mcpServers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}Add to settings.json:
{
"context_servers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}Open Settings → Tools → AI Assistant → MCP, click +, and paste:
{
"mcpServers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}gemini mcp add dash -- npx -y dash-mcpOr add to ~/.gemini/settings.json:
{
"mcpServers": {
"dash": {
"command": "npx",
"args": ["-y", "dash-mcp"]
}
}
}Any MCP client that supports stdio transport can use this server. The command is:
npx -y dash-mcpSee the full list of MCP clients.
Local development
git clone https://github.com/anvme/dash-mcp.git
cd dash-mcp
npm install
node index.jsHow It Works
Dash runs a local HTTP API server on a dynamic port. The port is stored at:
~/Library/Application Support/Dash/.dash_api_server/status.jsonThis MCP server reads the port on startup and connects to the local Dash API. All data stays on your machine — no external network requests.
Tool Reference
search_documentation
Search for documentation across installed docsets and snippets.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| query | string | yes | — | The search string |
| docset_identifiers | string | no | — | Comma-separated list of docset identifiers to search in |
| search_snippets | boolean | no | true | Whether to include snippets in search results |
| max_results | number | no | 100 | Maximum number of results (1–1000) |
Example: { "query": "useState", "docset_identifiers": "pxegrqfb", "max_results": 5 }
read_documentation
Fetch and read the content of a documentation page. Use search_documentation first to find the load_url.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| load_url | string | yes | — | The load_url from search results |
| max_length | number | no | 5000 | Max characters to return (500–50000) |
| start_index | number | no | 0 | Character offset for pagination |
Example: { "load_url": "http://127.0.0.1:62306/Dash/.../index.html", "max_length": 10000 }
list_installed_docsets
List all installed documentation sets in Dash.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| platform | string | no | Filter by platform, e.g. python, react, go |
| query | string | no | Filter docsets by name substring |
Examples:
{}— list all docsets{ "platform": "python" }— list Python-related docsets{ "query": "React" }— find React docsets
enable_docset_fts
Enable full-text search for a specific docset. This triggers reindexing in Dash.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| identifier | string | yes | The docset identifier (from list_installed_docsets) |
Example: { "identifier": "vmpixcmw" }
License
MIT
