Svelte 文档 MCP 服务器

本项目是一个 Model Context Protocol (MCP) 服务器,旨在为 LLM 应用提供高效访问 Svelte 官方文档的能力。通过 MCP 协议,该服务器允许 LLM 客户端以标准化的方式获取 Svelte 文档内容,并利用强大的搜索工具来辅助知识检索和应用开发。

主要功能点:

  • Svelte 文档资源访问: 以 MCP 资源的形式提供完整 Svelte 官方文档,包括核心库、SvelteKit 框架和 CLI 工具的文档。
  • 高级搜索功能: 支持关键词或自然语言查询,可按文档类型(API、教程、示例、错误)和文档包(svelte, kit, cli)进行过滤,并提供上下文感知的结果摘要和层级结构信息。
  • 高效缓存: 使用 LibSQL 数据库缓存文档内容,提升访问速度并降低资源消耗。
  • 自动更新: 定期检查文档更新,保持内容与官方文档同步。
  • 多种文档版本: 提供完整版、精简版和压缩版文档,以适应不同 LLM 的上下文窗口大小限制。

安装步骤:

  1. 克隆仓库: 在本地克隆 GitHub 仓库:
    git clone https://github.com/spences10/mcp-svelte-docs
  2. 进入目录: 导航到项目目录:
    cd mcp-svelte-docs
  3. 安装依赖: 使用 pnpm 安装项目依赖:
    pnpm install
  4. 构建项目: 构建项目文件:
    pnpm build

服务器配置:

要将此 MCP 服务器与 MCP 客户端(如 Cline 或 Claude Desktop)配合使用,您需要在客户端中配置一个新的 MCP 服务器连接。以下是配置示例,您需要将以下 JSON 配置添加到您的 MCP 客户端设置中。

{
  "mcpServers": {
    "svelte-docs": {
      "command": "npx",
      "args": ["-y", "mcp-svelte-docs"],
      "env": {
        "LIBSQL_URL": "file:local.db"  // 可选:LibSQL 数据库 URL,默认为本地文件数据库 file:local.db
        // "LIBSQL_AUTH_TOKEN": "your-auth-token-if-using-remote-db" // 可选:远程 LibSQL 数据库的身份验证令牌
      }
    }
  }
}

请注意:

  • 'command' 字段指定了启动服务器的命令,这里使用 'npx -y mcp-svelte-docs',确保您的环境中已安装 Node.js 和 npm/pnpm。
  • 'args' 字段是传递给命令的参数,'-y' 参数用于 'npx' 自动安装 'mcp-svelte-docs' 包(如果尚未安装)。
  • 'env' 字段允许您设置环境变量,例如 'LIBSQL_URL' 用于指定 LibSQL 数据库的连接 URL。默认配置使用本地文件数据库 'file:local.db'。如果您需要连接到远程 LibSQL 数据库,请配置 'LIBSQL_URL' 和 'LIBSQL_AUTH_TOKEN'。

基本使用方法:

配置完成后,您的 MCP 客户端将能够连接到 Svelte 文档 MCP 服务器。您可以通过以下方式使用它:

  • 访问文档资源: 使用 'svelte-docs://docs/{文档路径}' 格式的 URI 访问文档资源。例如:

    • 'svelte-docs://docs/llms.txt':获取标准版 Svelte 文档索引。
    • 'svelte-docs://docs/svelte/llms.txt':获取 Svelte 核心库文档。
    • 'svelte-docs://docs/kit/llms.txt':获取 SvelteKit 文档。
    • 'svelte-docs://docs/cli/llms.txt':获取 Svelte CLI 文档。
    • 'svelte-docs://docs/llms-full.txt':获取完整版 Svelte 文档。
    • 'svelte-docs://docs/llms-small.txt':获取压缩版 Svelte 文档。
  • 使用搜索工具: 调用 'search_docs' 工具进行文档搜索。例如,您可以发送如下 JSON-RPC 请求来搜索关于 "bind:value directive" 的 API 文档:

{
  "jsonrpc": "2.0",
  "method": "call_tool",
  "params": {
    "tool_name": "search_docs",
    "arguments": {
      "query": "bind:value directive",
      "doc_type": "api"
    }
  },
  "id": 1
}
  • 获取文档分块: 对于大型文档,可以使用 'get_next_chunk' 工具分块获取内容,参数包括文档 'uri' 和 'chunk_number'。

请参考仓库的 README.md 文件和源代码了解更多详细信息和高级用法。

信息

分类

开发者工具