项目简介

该项目是一个针对 Deco 平台的插件,旨在将任何 Deco 网站的功能(如加载器和动作)转换为符合 Model Context Protocol (MCP) 标准的服务端点。通过集成此插件,Deco 网站可以作为 LLM (大型语言模型) 应用程序的后端,提供结构化的上下文信息和可调用的工具(即 Deco 的现有功能)。

主要功能点

  • 工具暴露与管理: 自动扫描 Deco 网站的清单 (Manifest),将指定的加载器和动作作为可供 LLM 调用的工具进行注册和管理。
  • JSON-RPC 通信: 使用标准的 JSON-RPC 协议与 LLM 客户端进行交互,处理客户端发起的工具调用、能力查询等请求。
  • 多协议支持: 支持通过 HTTP (包括流式 SSE 响应) 和 WebSocket 等多种传输协议与客户端进行通信。
  • 能力声明: 按照 MCP 规范,向客户端声明服务器提供的工具能力及其输入/输出模式(基于 Deco 的 Schema)。
  • 集成现有 Deco 功能: 允许 LLM 直接调用和执行 Deco 网站中已有的后端逻辑,实现 AI 与网站功能的深度集成。

安装步骤

  1. 确保您已安装 Deno 运行时。

  2. 在您的 Deco 项目中使用 Deno 包管理器添加 MCP 插件:

    deno add @deco/mcp

服务器配置 (面向 MCP 客户端)

该插件将 Deco 网站转换为 MCP 服务器。对于连接到此服务器的 MCP 客户端(例如一个 AI 应用),通常需要配置以下信息来建立连接和了解可用的服务能力:

  • 服务器地址 (URL): MCP 服务器的公共访问地址。这个插件默认会在 '/mcp' 路径下暴露服务。根据您部署的 Deco 网站环境,基础 URL 会有所不同。例如,如果您的网站部署在 'https://your-deco-site.com',则 MCP 服务器地址可能是:
    • WebSocket: 'https://your-deco-site.com/mcp/ws'
    • SSE: 'https://your-deco-site.com/mcp/sse'
    • HTTP: 'https://your-deco-site.com/mcp/messages' (注意:示例地址 'https://sites-mcp.decocdn.com' 是插件开发者提供的演示或测试环境,您的实际地址取决于您自己的 Deco 网站部署)。
  • 传输协议 (Transport): 客户端需要知道使用哪种协议连接服务器,例如 'websocket'、'sse' 或 'http'。
  • 服务器能力 (Capabilities): 客户端会通过协议与服务器进行初始通信(例如发送 'list_tools' 请求)来发现服务器支持的功能、可用的工具列表及其详细描述(如输入参数、输出格式)。这些能力信息由服务器自动根据 Deco 网站的 Manifest 生成并提供。

请注意: 您不需要在 MCP 客户端的配置中填写服务器启动命令 ('command') 或参数 ('args')。这些是运行 MCP 服务器本身的细节,而 MCP 客户端只需要知道如何 连接 到一个已经运行并暴露了 MCP 端点的服务器。客户端的配置应侧重于连接细节(URL, Transport)和潜在的认证信息。

基本使用方法

  1. 安装插件: 按照上述安装步骤将插件添加到您的 Deco 项目。

  2. 集成到 Deco 应用: 修改您的 Deco 网站的入口文件 ('main.ts' 或 'fresh.config.ts'),将 'mcpServer' 中间件添加到 HTTP 请求处理链中。这会为您的 Deco 网站添加 '/mcp/*' 路径下的 MCP 服务端点。

    • 对于基于 'deco-sites/mcp' 模板的项目: 在 'main.ts' 中,将 'mcpServer' 作为中间件添加到 Hono 应用中:

      import { Deco } from "@deco/deco";
      import { Hono } from "@hono/hono";
      import manifest, { Manifest } from "./manifest.gen.ts";
      import { mcpServer } from "@deco/mcp"; // 导入 mcpServer
      
      const app = new Hono();
      const deco = await Deco.init<Manifest>({
        manifest,
        bindings: {
          useServer: (deco, hono) => {
            // 添加 mcpServer 中间件处理 /mcp/* 路径
            hono.use("/*", mcpServer(deco));
          },
        },
      });
      // ... 其他 Hono 路由或 Deco fetch 处理
    • 对于基于 Fresh 的 Deco 项目: 在 'fresh.config.ts' 中,将 'mcpServer' 添加到 Deco 插件的 'useServer' 选项中:

      import { defineConfig } from "$fresh/server.ts";
      import { plugins } from "deco/plugins/deco.ts";
      import manifest from "./manifest.gen.ts";
      import { mcpServer } from "@deco/mcp"; // 导入 mcpServer
      
      export default defineConfig({
        plugins: plugins({
          manifest,
          htmx: true,
          useServer: (deco, hono) => {
            // 添加 mcpServer 中间件处理 /mcp/* 路径
            hono.use("/*", mcpServer(deco));
          },
        }),
      });
  3. 运行 Deco 网站: 启动您的 Deco 网站。

  4. 连接 MCP 客户端: 使用支持 MCP 协议的 LLM 客户端,配置正确的 MCP 服务器地址(如 'https://your-deco-site.com/mcp/ws')和传输协议,即可连接到您的 Deco 网站 MCP 服务器,发现并调用其暴露的工具。

信息

分类

AI与计算