这是一个**模型上下文协议(MCP)**服务器,它连接了[Dash](https://kapeli.com/dash)——一个流行的macOS离线API文档浏览器——与Claude Desktop和其他代理开发环境。MCP是一个开放协议,允许像Claude和Warp这样的AI助手通过结构化的API安全地访问您计算机上的本地资源和工具。
**简单来说:**这个服务器让Claude和其他代理编码工具能够即时搜索并阅读您的本地Dash文档(200多个API文档、速查表和指南),提供基于您已安装的实际文档的准确、特定版本的答案——所有这些都是离线、私密且速度极快的。
查看[CHANGELOG.md](CHANGELOG.md)以了解版本历史。
JavaScript/TypeScript、React、Next.js、Vue.js、Angular、Node.js、Python、Django、Flask、FastAPI、pandas、NumPy等,通过Dash文档集。
此服务器需要**Pydantic v2.0+**以兼容MCP。如果您有使用Pydantic v1.x的现有项目,您可能需要:
pieces-os-client)的兼容性# 检查当前的Pydantic版本
pip show pydantic
# 如果是v1.x,您需要升级
pip install "pydantic>=2.0.0"
设置脚本会自动安装所有必需的依赖项,包括:
mcp>=1.9.0 - 模型上下文协议框架pydantic>=2.0.0 - 数据验证(MCP兼容性所需)beautifulsoup4>=4.12.0 - HTML内容提取fuzzywuzzy>=0.18.0 - 模糊字符串匹配python-levenshtein>=0.27.0 - 快速字符串相似性aiofiles>=24.0.0 - 异步文件操作aiohttp>=3.11.0 - 异步HTTP客户端rapidfuzz>=3.0.0 - 增强的模糊匹配typing-extensions>=4.12.0 - 扩展类型提示如果您是从以前的版本升级,服务器现在通过搜索整个Dash目录树发现8倍多的文档集(364个而不是45个)。要看到所有新的文档集,请清除缓存:
# 清除文档集缓存以发现新可用的文档集
rm -rf ~/.cache/dash-mcp/
# 然后重新启动您的服务器
dash-mcp-restart
# 或者
cd ~/enhanced-dash-mcp && ./start-dash-mcp.sh --test
发生了什么变化:
~/Library/Application Support/Dash/DocSets/(45个文档集)~/Library/Application Support/Dash/目录(364个文档集)参见[docs/help.md](docs/help.md)以了解如何运行服务器的简要概述。
# 克隆或下载项目文件
mkdir ~/enhanced-dash-mcp && cd ~/enhanced-dash-mcp
# 将设置脚本设为可执行
chmod +x scripts/setup-dash-mcp.sh
# 运行自动化设置
./scripts/setup-dash-mcp.sh
该脚本会提示您选择安装目录。按Enter接受默认路径或提供自定义位置。默认路径是~/enhanced-dash-mcp。
在Claude的MCP设置中添加以下内容:
{
"mcpServers": {
"enhanced-dash-mcp": {
"command": "$DASH_MCP_DIR/venv/bin/python3",
"args": [
"$DASH_MCP_DIR/enhanced_dash_server.py"
],
"env": {}
}
}
}
# 添加shell增强
echo "source ~/enhanced-dash-mcp/dash-mcp-aliases.sh" >> ~/.zshrc
source ~/.zshrc
# 启动服务器
dash-mcp-start
# 使用Claude测试
# "搜索React useState钩子文档"
# 询问Claude:
"搜索Python pandas DataFrame方法"
"查找React钩子最佳实践"
"获取带示例的FastAPI路由文档"
# 导航到您的项目目录,然后询问Claude:
"分析我的当前项目并找到相关的文档"
"获取我在React应用程序中的用户身份验证实现指导"
"我当前的Django项目有哪些最佳实践?"
# 询问Claude:
"获取从React 17升级到18的迁移文档"
"查找Django 4.2升级指南和重大更改"
"显示Next.js 13到14的迁移文档"
# 询问Claude:
"获取最新的pandas DataFrame.merge API参考及示例"
"显示React useEffect钩子文档和模式"
"查找Express.js中间件文档及其用例"
为了增强Warp终端支持:
# 运行Warp特定设置
chmod +x scripts/setup-warp-dash-mcp.sh
./scripts/setup-warp-dash-mcp.sh
# 使用命令调色板(⌘K):
dash-mcp-start
dash-analyze-project
dash-api-ref useState react
设置完成后,您将拥有这些方便的命令:
dash-mcp-start # 在tmux中启动服务器
dash-mcp-status # 检查是否正在运行
dash-mcp-logs # 查看服务器输出
enhanced-dash-mcp-for-project # 分析当前项目
dash-api-lookup <api> <tech> # 快速API参考
dash-best-practices <feature> # 实现指导
dash-help # 显示所有命令
将MCP服务器状态添加到您的提示符中:
# 添加到~/.p10k.zsh(详见p10k-dash-mcp.zsh)
# 当运行时显示📚,停止时显示📚
# 默认缓存TTL:1小时
# 缓存位置:~/.cache/dash-mcp/
# 内存+磁盘缓存以获得最佳性能
# 默认阈值:60%匹配
# 可在服务器配置中调整
# 具有拼写错误容忍度和智能排名
# 默认:每个文档5000个字符
# 可根据性能与细节之间的权衡进行配置
Enhanced Dash MCP服务器具备全面的自动化检测和非交互式操作能力,使其适用于CI/CD流水线、部署脚本和容器化环境。
服务器使用8阶段检测序列来确定其是在交互模式还是自动化模式下运行:
检查持续集成指标:
# 主要CI变量
CI, CONTINUOUS_INTEGRATION, GITHUB_ACTIONS, GITLAB_CI, JENKINS_URL
TRAVIS, CIRCLECI, BUILDKITE, DRONE, BITBUCKET_BUILD_NUMBER
AZURE_HTTP_USER_AGENT, CODEBUILD_BUILD_ID, TEAMCITY_VERSION
# 和15多个CI环境变量
识别自动化/批处理处理:
# 自动化指标
AUTOMATION, AUTOMATED, NON_INTERACTIVE, BATCH_MODE, HEADLESS
CRON, SYSTEMD_EXEC_PID, KUBERNETES_SERVICE_HOST, DOCKER_CONTAINER
AWS_EXECUTION_ENV, LAMBDA_RUNTIME_DIR, GOOGLE_CLOUD_PROJECT
# 云平台:Heroku, Vercel, Netlify, Railway等
TERM环境(拒绝dumb,unknown)| 环境类型 | 检测方法 | 行为 | 日志级别 |
|---|---|---|---|
| GitHub Actions | GITHUB_ACTIONS=true | 静默,无提示 | INFO |
| GitLab CI | GITLAB_CI=true | 静默,无提示 | INFO |
| Docker构建 | CONTAINER=true 或非TTY | 静默,无提示 | INFO |
| Cron作业 | CRON=true 或非TTY | 静默操作 | INFO |
| SSH脚本 | SSH_CONNECTION 无SSH_TTY | 非交互式 | INFO |
| Kubernetes | KUBERNETES_SERVICE_HOST | Pod感知操作 | INFO |
| AWS Lambda | LAMBDA_RUNTIME_DIR | 无服务器模式 | DEBUG |
| 本地终端 | TTY + 交互式shell | 完全交互 | DEBUG |
# 所有操作都内置了超时
Pip安装:5-10分钟限制
用户提示:10秒超时,自动默认
服务器启动:快速验证模式用于测试
网络操作:可配置超时
# 自动化中的优雅关闭
SIGINT/SIGTERM:清理资源
键盘中断:记录并优雅处理
部分操作:自动回滚/清理
退出码:标准自动化友好代码
# 设置脚本自动化模式
./scripts/setup-dash-mcp.sh # 自动检测环境
CI=true ./scripts/setup-dash-mcp.sh # 强制CI模式
BATCH_MODE=true ./scripts/setup-dash-mcp.sh # 强制批处理模式
# 坚固的错误处理
部分安装:自动清理
网络故障:具有退避机制的重试
损坏的缓存:自动重建缓存
文档集问题:优雅降级
# 自动化环境性能
CI安装时间:约70-80秒
服务器验证:约2-3秒
文档集发现:约500毫秒(首次运行),约50毫秒(缓存)
超时响应:最大5秒
干净环境设置:约70-75秒
服务器包含全面的自动化测试:
# 快速CI兼容性测试
./test-ci-automation.sh
# 全面自动化验证
./test-final-validation.sh
# 单独组件测试
./scripts/test-pip-install.sh
CI=true ./scripts/setup-dash-mcp.sh
env -i PATH=/usr/bin:/bin HOME=$HOME CI=true ./scripts/setup-dash-mcp.sh
- 名称:设置Enhanced Dash MCP
运行:|
git clone <repository-url>
cd enhanced-dash-mcp
CI=true ./scripts/setup-dash-mcp.sh
# 无提示,自动默认
RUN git clone <repository-url> && \\
cd enhanced-dash-mcp && \\
CONTAINER=true ./scripts/setup-dash-mcp.sh
# 自动检测容器环境
命令:[/bin/bash, "-c"]
参数:
- |
cd /app/enhanced-dash-mcp
KUBERNETES_SERVICE_HOST=true ./scripts/setup-dash-mcp.sh
python3 enhanced_dash_server.py --test
# 查看详细的环境检测日志
export DASH_MCP_LOG_LEVEL=DEBUG
python3 enhanced_dash_server.py --test
# 检查自动化检测原因
grep "Detection reason" ~/.cache/dash-mcp/server.log
# 验证环境变量
grep "Environment summary" ~/.cache/dash-mcp/server.log
# 强制交互模式(测试)
export FORCE_INTERACTIVE=true
# 覆盖环境检测
export DASH_MCP_MODE=interactive # 或'automation'
# 详细过程信息
export DASH_MCP_DEBUG_PROCESS=true