项目简介
Astro Basics Website 是一个功能全面的Astro网站模板,旨在展示现代Web开发实践。它包含用户认证、数据库集成、内容管理、PWA功能和企业级安全特性。除了作为功能强大的Web应用,它还集成了Model Context Protocol (MCP) 服务器功能,允许大型语言模型(LLM)客户端以标准化的方式访问和利用其后端服务,如数据库操作、UI自动化和认证管理。
主要功能点
- 内容管理: 支持'posts', 'docs', 'content'三种内容集合,具备MDX支持和功能完善的评论系统。
- 用户认证与安全: 集成Clerk进行用户认证,支持角色管理和受保护路由,提供CSRF保护、速率限制和内容安全策略。
- 数据库集成: 支持Turso (LibSQL) 和 Supabase (PostgreSQL) 两种后端,具备CRUD操作、事务支持和Row-Level Security。
- 渐进式Web应用 (PWA): 提供服务工作者缓存、离线支持、自定义安装提示和自动更新功能。
- MCP服务器集成: 通过Model Context Protocol (MCP) 标准,向LLM客户端提供以下功能访问:
- Supabase数据库操作: 允许LLM执行数据库的读取、写入等操作。
- Chrome DevTools自动化: 赋予LLM自动化浏览器调试工具的能力。
- Figma设计系统集成: 使LLM能够访问和交互Figma设计文件。
- Playwright浏览器测试: 允许LLM执行端到端自动化测试任务。
- Clerk认证管理: 使LLM能够管理用户身份验证和角色。
安装步骤
- 克隆仓库: 打开终端或命令行工具,执行以下命令克隆项目:
git clone https://github.com/shawn-sandy/astro-basics.git - 进入项目目录:
cd astro-basics - 安装依赖: 安装项目所需的所有Node.js依赖(此步骤可能需要大约4分钟)。
npm install - 设置预提交钩子: 配置项目的Git预提交钩子,用于代码质量检查。
npm run prepare - 复制环境变量模板: 创建一个'.env'文件,用于存储项目配置。
cp .env.example .env - 配置认证 (必需):
- 访问 clerk.com 注册或登录,获取您的Clerk可发布密钥 ('PUBLIC_CLERK_PUBLISHABLE_KEY') 和秘密密钥 ('CLERK_SECRET_KEY')。
- 将这些密钥添加到您在步骤5创建的 '.env' 文件中。
- 设置数据库 (可选,但推荐):
- 重要提示: 如果您计划自定义用户角色,请务必在运行数据库迁移之前配置这些角色,因为角色配置会生成数据库迁移文件来定义您的角色Schema。
- 运行交互式数据库设置向导(推荐):
npm run db:wizard - 或者手动运行数据库初始化:
npm run db:setup
- 启动开发服务器: 启动Astro开发服务器和SCSS观察器,您可以通过浏览器访问网站。
开发服务器通常会运行在 'http://localhost:4321'。npm run start
服务器配置(供MCP客户端使用)
MCP客户端可以通过以下JSON格式配置连接到此MCP服务器。请注意,'command' 和 'args' 字段定义了如何启动此MCP服务器,'capabilities' 字段则声明了服务器向LLM客户端提供的资源和工具。
{ "name": "Astro Basics MCP Server", "description": "提供对Astro Basics网站后端功能的MCP访问,包括数据库操作、UI自动化、设计系统集成和认证管理。", "command": "npm", "args": ["run", "start"], "capabilities": { "resources": [ { "id": "supabase_operations", "name": "Supabase数据库操作", "description": "允许LLM对Supabase数据库进行查询和修改,管理网站数据。" }, { "id": "clerk_authentication", "name": "Clerk认证管理", "description": "管理用户身份验证和角色,包括用户创建、更新和权限检查,支持网站用户交互。" } ], "tools": [ { "id": "chrome_devtools_automation", "name": "Chrome DevTools 自动化", "description": "自动化Chrome浏览器开发工具,用于UI检查、调试和模拟用户交互,辅助网站开发和维护。" }, { "id": "figma_design_integration", "name": "Figma设计系统集成", "description": "与Figma设计文件交互,获取设计信息或执行设计相关的自动化任务,确保UI与设计规范一致。" }, { "id": "playwright_browser_testing", "name": "Playwright浏览器测试", "description": "使用Playwright框架执行端到端浏览器测试,模拟用户行为和验证页面功能,确保网站质量。" } ], "prompts": [] } }
基本使用方法
在成功安装并启动Astro Basics网站及其内置的MCP服务器后,您的MCP客户端(通常是LLM应用程序)可以通过JSON-RPC协议与服务器建立连接。客户端可以利用服务器暴露的各项'resources'(资源)和'tools'(工具)来执行复杂任务。
例如,一个LLM客户端可以:
- 查询用户数据: 调用'supabase_operations'资源,请求获取特定用户的个人资料信息。
- 模拟用户行为: 使用'playwright_browser_testing'工具,自动化地在网站上模拟新用户注册流程,并验证注册是否成功。
- 检查设计元素: 通过'figma_design_integration'工具,核对网页上某个组件的样式是否与Figma设计稿中的规范一致。
- 管理认证信息: 利用'clerk_authentication'资源,为测试目的创建或修改用户角色。
这些操作使得LLM能够深度理解和交互Web应用程序的后端服务,从而实现更高级的自动化和智能决策。
信息
分类
开发者工具