项目简介
Spiceflow 是一个高性能、类型安全的API框架,专注于使用现代Web标准构建Web服务。它提供了强大的路由、验证、OpenAPI生成、RPC客户端生成等功能。其核心优势在于对Model Context Protocol (MCP) 的原生支持,使得开发者能够便捷地将传统的API接口暴露为大型语言模型(LLM)可以调用的工具和上下文资源。
主要功能点
- 类型安全API构建: 基于Zod实现类型安全的Schema验证,支持生成RPC客户端,确保开发过程中的数据一致性和可靠性。
- OpenAPI规范自动生成: 能够根据路由配置自动生成OpenAPI规范,极大地简化了API文档的维护工作,方便集成第三方工具。
- LLM集成 (MCP支持): 提供MCP插件,将API路由自动转换为LLM可调用的工具和资源,支持SSE流式通信,实现了与LLM应用的无缝对接。
- 高性能与异步处理: 使用Web标准进行请求和响应处理,内置对异步生成器的支持,可方便地实现Server-Sent Events (SSE) 等流式服务。
- 模块化与可扩展性: 支持子应用挂载('.use()')以构建大型复杂应用,提供基础路径配置、灵活的中间件和错误处理机制。
安装步骤
安装Spiceflow及其依赖'zod'(用于Schema验证)非常简单,通过npm执行以下命令即可:
npm install spiceflow zod
服务器配置
Spiceflow通过其'mcp()'插件将您的API暴露为MCP服务器。MCP客户端需要以下配置信息来连接到Spiceflow MCP服务器:
{ "serverName": "spiceflow-mcp-server", "command": "node", "args": ["your_server_file.js"], "port": 3000, "mcpPath": "/mcp", "description": "通过Spiceflow框架提供的MCP插件暴露的API服务。" }
配置参数说明:
- 'serverName': 您MCP服务器的标识名称,例如 "spiceflow-mcp-server"。
- 'command': 启动您的Spiceflow应用所需的命令,例如 "node"。
- 'args': 启动命令的参数,通常是您的服务器入口文件,例如 '["your_server_file.js"]'。
- 注意: 'your_server_file.js' 是指您实际启动Spiceflow应用的文件路径。
- 'port': Spiceflow服务器监听的端口号,例如 '3000'。
- 'mcpPath': MCP插件挂载的路径,默认是 '/mcp'。MCP客户端将通过 'http://localhost:<port>/mcp' 连接到MCP传输层。
- 'description': 对该MCP服务器的简要描述。
基本使用方法
以下是一个简单的Spiceflow应用,展示了如何定义路由并集成MCP插件:
-
创建服务器文件 ('your_server_file.js'):
import { Spiceflow } from 'spiceflow'; import { mcp } from 'spiceflow/mcp'; // 导入MCP插件 // 创建一个Spiceflow应用实例 const app = new Spiceflow() // 挂载MCP插件,这将自动为LLM暴露API路由为工具和资源 .use(mcp({ path: '/mcp' })) // 指定MCP端点路径,默认为/mcp // 定义一个简单的GET路由,它将被LLM视为一个工具或资源 .route({ method: 'GET', path: '/hello', handler() { return 'Hello, LLM World!'; }, }) // 定义一个带参数的GET路由 .route({ method: 'GET', path: '/users/:id', handler({ params }) { return { userId: params.id, name: 'User ${params.id}' }; }, }) // 定义一个POST路由,它也将被LLM视为一个工具 .route({ method: 'POST', path: '/echo', async handler({ request }) { const body = await request.json(); return { received: body }; }, }); // 启动服务器 app.listen(3000, '0.0.0.0', () => { console.log('Spiceflow server listening on http://localhost:3000'); console.log('MCP endpoint available at http://localhost:3000/mcp'); }); -
运行服务器: 打开终端并执行:
node your_server_file.js服务器启动后,您将在控制台看到监听地址和MCP端点信息。此时,MCP客户端即可通过'http://localhost:3000/mcp'连接并与您的Spiceflow API进行交互。
信息
分类
开发者工具