使用说明

项目简介

'effect-mcp' 是一个使用 TypeScript 和 Effect 框架开发的 Model Context Protocol (MCP) 服务器库。它旨在提供一个灵活且可扩展的 MCP 服务端实现,支持通过 Server-Sent Events (SSE) 等多种传输协议与 LLM 客户端进行通信。该项目目前仍在积极开发中,但已具备 MCP 服务器的基本框架和核心功能。

主要功能点

  • 资源 (Resources) 管理: 提供系统信息等内置资源,并支持通过模板动态生成资源。
  • 工具 (Tools) 注册与调用: 内置了如 'GetName', 'Echo', 'Calculator' 等示例工具,支持工具的注册和远程调用。
  • Prompt 模板 (Prompts) 定义与渲染: 预置了多种 Prompt 模板,如 'chat', 'code-generation', 'summarize' 等,支持根据客户端请求渲染 Prompt。
  • 基于 SSE 的传输: 使用 Server-Sent Events (SSE) 协议与客户端进行实时通信。
  • JSON-RPC 协议: 遵循 MCP 协议规范,使用 JSON-RPC 格式处理客户端请求和服务器响应。
  • 会话管理: 支持客户端会话管理,为每个客户端维护独立会话。
  • 能力声明: 声明服务器支持的 MCP 协议版本和功能,方便客户端了解服务器能力。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/jpowersdev/effect-mcp.git
  2. 进入项目目录:
    cd effect-mcp
  3. 安装依赖:
    pnpm install

服务器配置

MCP 客户端需要配置以下信息以连接 'effect-mcp' 服务器。请注意,'effect-mcp' 服务器默认监听 '3000' 端口,可以通过设置环境变量 'PORT' 来自定义端口。

{
  "serverName": "effect-mcp",
  "command": "node",
  "args": ["./dist/main.js"],
  "description": "Effect MCP Server using SSE transport",
  "transport": "sse",
  "baseUrl": "http://localhost:3000/mcp/messages",
  "contentType": "application/json"
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动服务器的命令,这里使用 'node' 运行 JavaScript 代码。
  • 'args': 命令参数,指向编译后的 'main.js' 文件。请确保先执行 'pnpm install' 安装依赖,并可能需要构建项目 (例如 'pnpm build',虽然此仓库未提供构建命令,但通常 TypeScript 项目需要构建)
  • 'description': 服务器描述,可以自定义。
  • 'transport': 传输协议,这里为 'sse' (Server-Sent Events)。
  • 'baseUrl': SSE 连接的基础 URL,指向服务器的 '/mcp/messages' 路径。
  • 'contentType': 内容类型,固定为 'application/json'。

环境变量配置:

  • 'PORT': 服务器监听端口,默认为 '3000'。如果需要更改端口,可以在启动服务器前设置环境变量,例如 'PORT=8080 node ./dist/main.js'。

基本使用方法

  1. 启动服务器: 在项目根目录下,执行命令 'pnpm install' 安装依赖后,运行 'node ./dist/main.js' 启动服务器 (可能需要先构建项目,但仓库未提供构建命令,请根据实际情况调整)。服务器成功启动后,会监听在配置的端口上(默认为 3000 端口)。

  2. 配置 MCP 客户端: 在 MCP 客户端中,根据 服务器配置 部分提供的 JSON 配置信息,配置连接到 'effect-mcp' 服务器。

  3. 客户端与服务器交互: 客户端通过 SSE 连接到服务器,并按照 MCP 协议规范,发送 JSON-RPC 请求到服务器,例如获取资源列表、调用工具、获取 Prompt 等。服务器接收请求后,会进行处理并通过 SSE 连接返回 JSON-RPC 响应或发送通知。

注意:

  • 此项目目前处于 'Under Development' 状态,部分功能可能尚未完善,API 也可能发生变化。
  • 仓库中提供的 'tsup.config.ts' 是一个打包配置文件,但实际是否需要构建以及如何构建,请参考项目文档或开发者说明。如果 'node ./src/main.ts' 可以直接运行,则无需额外构建步骤,但生产环境可能需要构建打包后的代码。
  • 客户端的具体使用方法需要参考 MCP 客户端的文档,根据其配置项填入上述服务器配置信息即可。

信息

分类

AI与计算