Enhanced Dash MCP Server

Enhanced Dash MCP Server

An intelligent server that transforms local Dash documentation into a context-aware assistant for Claude, providing developers with seamless access to documentation while coding.

Category
访问服务器

README

Enhanced Dash MCP Server

Version Python License Platform See CHANGELOG.md for version history.

An intelligent Model Context Protocol (MCP) server that transforms your local Dash documentation into a powerful, context-aware assistant for Claude. Built for developers who want seamless access to documentation while coding.

🚀 Features

Core Capabilities

  • 🔍 Intelligent Search - Fuzzy matching with typo tolerance and smart ranking
  • 📚 Content Extraction - Clean text extraction from HTML, Markdown, and text docs
  • ⚡ Multi-Tier Caching - Memory + disk caching for lightning-fast repeated searches
  • 🎯 Project Awareness - Automatically detects your tech stack and prioritizes relevant docs
  • 🛠️ Implementation Guidance - Best practices and patterns for specific features
  • 📈 Migration Support - Version upgrade documentation and breaking changes
  • 🔄 Latest API Reference - Current API docs with practical examples

Developer Workflow Integration

  • Warp Terminal - Native command palette and workflow integration
  • tmux - Background server execution across terminal sessions
  • Neovim - Documentation access while coding via Claude
  • Oh-My-Zsh - Enhanced aliases and productivity shortcuts
  • Git Integration - Repository-aware documentation suggestions

Supported Technologies

JavaScript/TypeScript, React, Next.js, Vue.js, Angular, Node.js, Python, Django, Flask, FastAPI, pandas, NumPy, and many more through Dash docsets.

📋 Prerequisites

  • macOS with Dash app installed
  • Python 3.8+ (Python 3.11+ recommended)
  • Dash docsets downloaded (JavaScript, Python, React, etc.)
  • Claude with MCP support
  • tmux (recommended for background execution)

⚠️ Important Dependency Requirements

This server requires Pydantic v2.0+ for MCP compatibility. If you have existing projects with Pydantic v1.x, you may need to:

  1. Use a virtual environment (recommended)
  2. Check for compatibility with other tools (like pieces-os-client)
  3. Consider using separate Python environments for different projects
# Check your current Pydantic version
pip show pydantic

# If you have v1.x, you'll need to upgrade
pip install "pydantic>=2.0.0"

📦 Dependencies

The setup script automatically installs all required dependencies, including:

  • mcp>=1.9.0 - Model Context Protocol framework
  • pydantic>=2.0.0 - Data validation (required for MCP compatibility)
  • beautifulsoup4>=4.12.0 - HTML content extraction
  • fuzzywuzzy>=0.18.0 - Fuzzy string matching
  • python-levenshtein>=0.27.0 - Fast string similarity
  • aiofiles>=24.0.0 - Async file operations
  • aiohttp>=3.11.0 - Async HTTP client
  • rapidfuzz>=3.0.0 - Enhanced fuzzy matching
  • typing-extensions>=4.12.0 - Extended type hints

⚡ Quick Start

See docs/help.md for a brief overview of how to run the server.

1. Clone & Setup

# Clone or download the project files
mkdir ~/enhanced-dash-mcp && cd ~/enhanced-dash-mcp

# Make setup script executable
chmod +x setup-dash-mcp.sh

# Run automated setup
./setup-dash-mcp.sh

2. Configure Claude

Add this to Claude's MCP settings:

{
  "mcpServers": {
    "enhanced-dash-mcp": {
      "command": "python3",
      "args": [
        "/Users/your-username/mcp-servers/enhanced-dash-mcp/enhanced_dash_server.py"
      ],
      "env": {}
    }
  }
}

3. Start & Test

# Add shell enhancements
echo "source ~/mcp-servers/enhanced-dash-mcp/dash-mcp-aliases.sh" >> ~/.zshrc
source ~/.zshrc

# Start the server
dash-mcp-start

# Test with Claude
# "Search for React useState hook documentation"

🎮 Usage

Basic Documentation Search

# Ask Claude:
"Search for Python pandas DataFrame methods"
"Find React hooks best practices"
"Get FastAPI routing documentation with examples"

Project-Aware Intelligence

# Navigate to your project directory, then ask Claude:
"Analyze my current project and find relevant documentation"
"Get implementation guidance for user authentication in my React app"
"What are the best practices for my current Django project?"

Migration & Upgrade Help

# Ask Claude:
"Get migration docs for upgrading from React 17 to 18"
"Find Django 4.2 upgrade guide and breaking changes"
"Show me Next.js 13 to 14 migration documentation"

API Reference with Examples

# Ask Claude:
"Get latest pandas DataFrame.merge API reference with examples"
"Show me React useEffect hook documentation and patterns"
"Find Express.js middleware documentation with use cases"

🛠️ Advanced Setup

Warp Terminal Integration

For enhanced Warp Terminal support:

# Run Warp-specific setup
chmod +x setup-warp-dash-mcp.sh
./setup-warp-dash-mcp.sh

# Use Command Palette (⌘K):
dash-mcp-start
dash-analyze-project
dash-api-ref useState react

Shell Aliases & Functions

After setup, you'll have these convenient commands:

dash-mcp-start              # Start server in tmux
dash-mcp-status             # Check if running
dash-mcp-logs               # View server output
enhanced-dash-mcp-for-project       # Analyze current project
dash-api-lookup <api> <tech> # Quick API reference
dash-best-practices <feature> # Implementation guidance
dash-help                   # Show all commands

Powerlevel10k Integration

Add MCP server status to your prompt:

# Add to ~/.p10k.zsh (see p10k-dash-mcp.zsh for details)
# Shows 📚 when running, 📕 when stopped

🔧 Configuration

Cache Settings

# Default cache TTL: 1 hour
# Cache location: ~/.cache/dash-mcp/
# Memory + disk caching for optimal performance

Fuzzy Search Tuning

# Default threshold: 60% match
# Adjustable in server configuration
# Typo tolerance with intelligent ranking

Content Extraction Limits

# Default: 5000 characters per document
# Configurable for performance vs. detail trade-off

🏗️ Architecture

Core Components

  • DashMCPServer - Main server orchestrating all components
  • CacheManager - Multi-tier caching (memory + disk)
  • ContentExtractor - Clean text extraction from various formats
  • FuzzySearchEngine - Intelligent search with ranking algorithms
  • ProjectAwareDocumentationServer - Context-aware documentation selection

Data Flow

  1. Query received from Claude via MCP
  2. Project context analyzed (language, framework, dependencies)
  3. Relevant docsets identified and prioritized
  4. Fuzzy search performed with intelligent ranking
  5. Content extracted and cached for future requests
  6. Results returned with project-specific scoring

Caching Strategy

  • Memory Cache - Instant access for recently searched items
  • Disk Cache - Persistent storage surviving server restarts
  • Smart Expiration - 1-hour TTL with automatic cleanup
  • Cache Keys - Generated from search parameters for optimal hit rates

📊 Performance

Benchmarks

  • First search: ~500ms (includes docset scanning)
  • Cached searches: ~50ms (memory cache hits)
  • Content extraction: +200-300ms (when requested)
  • Fuzzy matching: Minimal overhead with significant quality improvement

Optimization Tips

  • Keep server running in tmux for best performance
  • Initial searches per docset are slower (cache building)
  • Content extraction adds latency but provides much richer context
  • Memory cache provides fastest repeated access

🔍 Available Tools

Core Search Tools

Tool Description Use Case
search_dash_docs Basic documentation search with fuzzy matching General API/concept lookup
list_docsets Show all available documentation sets Discover available documentation
get_doc_content Get full content for specific documentation Deep dive into specific topics

Project-Aware Tools

Tool Description Use Case
analyze_project_context Detect project tech stack and dependencies Understand current project
get_project_relevant_docs Context-aware documentation search Find docs relevant to your project
get_implementation_guidance Best practices for specific features Implementation planning

Specialized Tools

Tool Description Use Case
get_migration_docs Version upgrade documentation Planning upgrades and migrations
get_latest_api_reference Current API docs with examples Quick reference while coding

🚨 Troubleshooting

Common Issues

❌ "No docsets found"

# Ensure Dash is installed with docsets
ls ~/Library/Application\ Support/Dash/DocSets/
# Should show *.docset directories
# Optionally set DASH_DOCSETS_PATH if your docsets live elsewhere
# (symlinks to the default location are supported)
# When creating a symlink, point it at `~/Library/Application Support/Dash`.
# A symlink directly to the `DocSets` folder will produce a search path
# ending in `DocSets/DocSets` and no docsets will be discovered.
# The server now resolves such symlinks automatically and also corrects
# `DASH_DOCSETS_PATH` values that point at the parent `Dash` directory.

❌ "Permission errors"

# Check Python environment
which python3
source ~/mcp-servers/enhanced-dash-mcp/venv/bin/activate

❌ "Import errors"

# Reinstall dependencies
cd ~/mcp-servers/enhanced-dash-mcp
source venv/bin/activate
pip install -r requirements.txt

❌ "Server won't start"

# Check if port is in use
tmux kill-session -t dash-mcp
dash-mcp-start

❌ "Slow searches"

# First searches build cache - subsequent searches are much faster
# Check cache directory
ls ~/.cache/dash-mcp/

Debug Mode

# View detailed server logs
dash-mcp-logs

# Attach to server session for real-time debugging
dash-mcp-attach

🤝 Contributing

Development Setup

# Clone repository
git clone <repository-url>
cd enhanced-dash-mcp

# Create development environment
python3 -m venv dev-env
source dev-env/bin/activate
pip install -r requirements.txt

# Install development dependencies
pip install pytest black flake8 mypy

Running Tests

# Unit tests
pytest tests/

# Linting and type checks
black .
flake8 .  # uses settings from .flake8
mypy .    # uses settings from mypy.ini

Adding New Features

  1. Docset Support - Add new file format extractors in ContentExtractor
  2. Search Algorithms - Enhance ranking in FuzzySearchEngine
  3. Project Detection - Extend framework detection in ProjectAwareDocumentationServer
  4. Caching Strategies - Optimize cache management in CacheManager

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

  • Dash by Kapeli for providing excellent local documentation
  • Anthropic for Claude and the MCP framework
  • Warp Terminal for innovative terminal experience
  • Fort Collins Tech Community for inspiration and feedback

📞 Support

  • Issues: Open a GitHub issue for bugs or feature requests
  • Discussions: Use GitHub Discussions for questions and ideas
  • Documentation: Check the /docs directory for detailed guides

🗺️ Roadmap

v1.1 - Enhanced Intelligence

  • [ ] ML-powered documentation relevance scoring
  • [ ] Automatic dependency documentation downloads
  • [ ] Cross-reference linking between related docs

v1.2 - Extended Platform Support

  • [ ] Linux support with Zeal integration
  • [ ] Windows support with alternative doc browsers
  • [ ] VS Code extension for direct editor integration

v1.3 - Advanced Features

  • [ ] Documentation usage analytics and recommendations
  • [ ] Team collaboration features for shared documentation
  • [ ] Integration with popular documentation hosting platforms

Built with ❤️ in Fort Collins, CO for developers who value efficient, intelligent documentation access.

Transform your development workflow with context-aware documentation that understands your project and coding patterns.

📚 Further Reading

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选