项目简介
Melina.js MCP 服务器组件是Melina.js Web框架的一部分,专注于实现 Model Context Protocol (MCP)。它提供一个标准化的后端服务,用于向大型语言模型 (LLM) 客户端提供结构化的上下文信息和功能。通过实现MCP,该组件允许LLM以标准化的方式发现和使用外部工具、访问相关资源以及利用预定义的Prompt模板,极大地增强了LLM应用的能力和灵活性。
主要功能点
- 资源管理: 托管和提供各种类型的资源,如文档、代码片段、数据等。LLM客户端可以通过标准URI请求访问这些资源的内容。服务器支持定义固定URI的静态资源以及基于URI模板的动态生成资源。
- 工具注册与执行: 允许开发者将特定的外部功能或API封装注册为工具。LLM可以理解这些工具的能力(通过描述和输入/输出Schema),并通过MCP协议调用这些工具来执行任务,例如获取实时信息、执行计算或与外部系统交互。
- Prompt模板定义: 支持定义可重用的Prompt模板,这些模板可以接受参数,并根据参数动态生成结构化的消息列表,作为LLM交互的起点或指导。这有助于实现一致的LLM行为和简化复杂的Prompt工程。
- JSON-RPC通信: 使用标准的JSON-RPC 2.0协议进行客户端与服务器之间的通信。支持MCP定义的核心方法,如能力初始化、列出和调用工具、列出和获取Prompt、列出和读取资源等。
- Bun运行时优化: 构建于高性能的Bun JavaScript/TypeScript运行时之上,旨在提供快速的启动速度和高效的请求处理能力。
安装步骤
- 确保您的系统已安装 Bun 运行时。
- 在您的项目目录中,打开终端并运行以下命令来安装 Melina.js 及其常用的Schema定义依赖 (Zod):
bun add melinajs zod
服务器配置
MCP客户端需要知道如何启动和连接到您的服务器。典型的MCP客户端配置是一个JSON对象,包含服务器的启动信息。以下是基于 Melina.js MCP 服务器示例生成的配置信息:
{ "serverName": "Melina MCP Server", "command": "bun", "args": ["run", "path/to/your/mcp/server.ts"], "transport": "http", "httpPort": 3000, "httpPath": "/mcp" }
- 'serverName': 服务器的友好名称,用于在客户端界面或日志中标识。
- 'command': 用于启动服务器进程的命令。通常是'bun'。
- 'args': 传递给 'command' 的参数列表。'["run", "path/to/your/mcp/server.ts"]' 表示使用 Bun 运行您的 MCP 服务器代码文件。请将 'path/to/your/mcp/server.ts' 替换为您实际的文件路径。
- 'transport': 客户端与服务器通信使用的传输协议。此实现基于 HTTP。
- 'httpPort': 服务器监听的 HTTP 端口号。请根据您的服务器代码实际配置的端口进行调整。
- 'httpPath': MCP 服务在 HTTP 服务器上监听的具体 URL 路径。默认是 '/mcp'。
基本使用方法
- 在您的项目源文件目录中创建一个新的 TypeScript 文件(例如 'src/mcp-server.ts')。
- 在该文件中,导入 'serve' 函数和任何需要的辅助类(如 'UriTemplate')以及 Schema 定义库(如 'zod')。
- 调用 'serve' 函数,传入一个配置对象,其中包含您要提供的 'prompts', 'tools', 'resources', 和 'resourceTemplates' 的定义数组。您可以根据示例代码填写具体的功能逻辑。
- 指定服务器监听的端口(例如 'port: 3000')。
- 在您的 'package.json' 文件的 'scripts' 部分添加一个用于启动此服务器文件的命令,例如:
"scripts": { "start:mcp": "bun run src/mcp-server.ts" } - 在终端中运行配置的脚本命令来启动您的 MCP 服务器:
bun run start:mcp - 您的 Melina.js MCP 服务器将在指定的端口和路径上运行,等待兼容 MCP 协议的 LLM 客户端连接并发送 JSON-RPC 请求。使用您选择的 MCP 客户端,配置连接信息(如上面“服务器配置”部分所示)并连接到服务器。
信息
分类
AI与计算