Zag.js文档MCP服务器
MCP(模型上下文协议)服务器,为AI代理提供访问 Zag.js 组件文档。此服务器从以下位置获取并解析文档 https://zagjs.com/llms-react.txt,使用可配置的TTL缓存它,以平衡新鲜度和性能。
特性
- 🔄 自动刷新缓存 -文档默认缓存1小时(可配置)
- 🎯 组件特定查询 -获取所需组件的文档
- 📚 完整组件列表 -发现所有可用的Zag.js组件
- ⚡ 框架无关 -可与任何兼容MCP的AI助手配合使用
可用工具
get_component_docs
获取特定Zag.js组件的完整文档。
论据:
component(string,必填):Zag.js组件的名称(不区分大小写)
- 示例:“手风琴”、“组合框”、“对话框”、“日期选择器”
退货: 完整的文件包括:
- 安装说明
- 使用示例
- API 参考
- 无障碍指南
- 键盘交互
list_components
列出所有有文档的可用Zag.js组件。
论据: 无
退货: 可以查询的所有组件名称的列表。
安装
- 克隆或下载此存储库
- 安装依赖项:
npm install配置
缓存TTL
默认情况下,文档缓存1小时。您可以通过设置 CACHE_TTL_MS 环境变量(以毫秒为单位):
{
"mcpServers": {
"zagjs-docs": {
"command": "npx",
"args": ["tsx", "/Users/phil/Code/zagjs-docs-mcp/src/index.ts"],
"env": {
"CACHE_TTL_MS": "3600000"
}
}
}
}常见TTL值:
- 30分钟:
1800000 - 1小时:
3600000(默认) - 2小时:
7200000 - 1天:
86400000
使用游标
将此服务器添加到您的Cursor MCP配置中:
macOS/Linux
编辑 ~/.cursor/mcp.json 或创建 .cursor/mcp.json 在您的项目中:
{
"mcpServers": {
"zagjs-docs": {
"command": "npx",
"args": ["tsx", "/Users/phil/Code/zagjs-docs-mcp/src/index.ts"]
}
}
}视窗
编辑 %APPDATA%\Cursor\mcp.json:
{
"mcpServers": {
"zagjs-docs": {
"command": "npx",
"args": ["tsx", "C:\\Users\\YourUsername\\Code\\zagjs-docs-mcp\\src\\index.ts"]
}
}
}重要提示: 将路径替换为您的实际绝对路径 src/index.ts 文件。
重新启动游标
添加配置后,重新启动Cursor以使更改生效。
使用示例
配置后,您可以向AI助手提出以下问题:
- “显示Zag.js组合框组件的文档”
- “Zag.js中提供了哪些组件?”
- “如何在React中使用日期选择器组件?”
- “手风琴组件的键盘快捷键是什么?”
AI将自动使用MCP工具获取相关文档。
发展
以开发模式运行
npm run dev为生产而建
npm run build
npm start项目结构
zagjs-docs-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── cache.ts # TTL-based caching implementation
│ └── docs-fetcher.ts # Documentation fetching and parsing
├── package.json
├── tsconfig.json
└── README.md运作原理
- 根据首次请求:服务器从以下位置获取文档
https://zagjs.com/llms-react.txt - 解析:原始文本被拆分为单独的组成部分(每个部分以
# ComponentName) - 缓存:解析后的组件与时间戳一起存储在内存中
- 后续请求:如果缓存数据仍然有效(在TTL内),则使用缓存数据
- 缓存过期:TTL过期后,在下一个请求时获取新文档
为什么存在
Zag.js依赖项经常更新为需要所有 @zag-js/* 软件包应使用同一版本。此MCP服务器可确保您始终可以访问与安装版本匹配的最新文档,从而简化开发工作流程。
许可证
麻省理工学院
