项目简介
该项目是一个针对 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 与网站功能的深度集成。
安装步骤
-
确保您已安装 Deno 运行时。
-
在您的 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)和潜在的认证信息。
基本使用方法
-
安装插件: 按照上述安装步骤将插件添加到您的 Deco 项目。
-
集成到 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)); }, }), });
-
-
运行 Deco 网站: 启动您的 Deco 网站。
-
连接 MCP 客户端: 使用支持 MCP 协议的 LLM 客户端,配置正确的 MCP 服务器地址(如 'https://your-deco-site.com/mcp/ws')和传输协议,即可连接到您的 Deco 网站 MCP 服务器,发现并调用其暴露的工具。
信息
分类
AI与计算