项目简介

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运行时之上,旨在提供快速的启动速度和高效的请求处理能力。

安装步骤

  1. 确保您的系统已安装 Bun 运行时
  2. 在您的项目目录中,打开终端并运行以下命令来安装 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'。

基本使用方法

  1. 在您的项目源文件目录中创建一个新的 TypeScript 文件(例如 'src/mcp-server.ts')。
  2. 在该文件中,导入 'serve' 函数和任何需要的辅助类(如 'UriTemplate')以及 Schema 定义库(如 'zod')。
  3. 调用 'serve' 函数,传入一个配置对象,其中包含您要提供的 'prompts', 'tools', 'resources', 和 'resourceTemplates' 的定义数组。您可以根据示例代码填写具体的功能逻辑。
  4. 指定服务器监听的端口(例如 'port: 3000')。
  5. 在您的 'package.json' 文件的 'scripts' 部分添加一个用于启动此服务器文件的命令,例如:
    "scripts": {
      "start:mcp": "bun run src/mcp-server.ts"
    }
  6. 在终端中运行配置的脚本命令来启动您的 MCP 服务器:
    bun run start:mcp
  7. 您的 Melina.js MCP 服务器将在指定的端口和路径上运行,等待兼容 MCP 协议的 LLM 客户端连接并发送 JSON-RPC 请求。使用您选择的 MCP 客户端,配置连接信息(如上面“服务器配置”部分所示)并连接到服务器。

信息

分类

AI与计算