使用说明

项目简介

本项目 'mcp-server' 是一个使用 MoonBit 语言开发的 MCP (Model Context Protocol) 服务器 SDK。它旨在帮助开发者构建基于 WASM Component Model 的 MCP 服务器,为 AI 模型提供上下文信息和外部功能。目前处于 WIP (Work In Progress) 阶段,已实现工具注册和资源根目录列表等基本功能。

主要功能点

  • 工具 (Tools) 声明: 支持使用简单的 JSON Schema DSL 声明工具,以便 LLM 客户端可以发现和调用这些工具。
  • 资源 (Resources) 根目录列表: 允许 MCP 客户端获取服务器管理的资源根目录列表,用于访问和管理资源。

安装步骤

由于这是一个 SDK,通常不需要传统意义上的 "安装"。开发者需要具备 MoonBit 开发环境,并按照 SDK 的文档进行构建和使用。 从提供的仓库信息来看,该项目可能需要使用 'wasmtime' 运行时来运行编译后的 WASM 服务器。

简要步骤 (基于仓库信息推断):

  1. 安装 wasmtime: 如果本地没有 'wasmtime' 运行时,请先安装。 (具体安装步骤请参考 wasmtime 官方文档)
  2. 构建 WASM 服务器: 根据项目 README 的描述,该项目使用 MoonBit 构建,并编译为 WASM ('cli.wasm')。 开发者需要按照项目提供的构建指南 (如果存在) 或 MoonBit 的标准构建流程,将 MoonBit 代码编译为 'target/cli.wasm'。 (请注意:仓库中没有提供详细的构建步骤,这部分需要开发者自行探索或参考 MoonBit 和 WASM Component Model 的相关文档。)

服务器配置

MCP 服务器通常不需要复杂的配置文件。 对于本示例,MCP 客户端需要配置能够启动 'cli.wasm' 服务器的命令和参数。 以下是一个基于 'example/client.ts' 提供的配置示例 (JSON 格式):

{
  "serverName": "mcp-server-example",
  "command": "wasmtime",
  "args": [
    "-S",
    "http=y",
    "./target/cli.wasm"
  ],
  "env": {
    "PATH": "您的系统 PATH 环境变量"  // 请替换为您的系统 PATH 环境变量,例如 "/usr/local/bin:/usr/bin:/bin" 等
  }
}

配置参数说明:

  • '"serverName"': MCP 服务器的名称,可以自定义。
  • '"command"': 启动 WASM 服务器的命令,这里是 'wasmtime' 运行时。
  • '"args"': 传递给 'wasmtime' 的参数列表。
    • '"-S"': 启用 wasmtime 的安全策略。
    • '"http=y"': 允许 WASM 组件访问 HTTP 功能 (如果服务器需要网络访问)。
    • '"./target/cli.wasm"': WASM 服务器程序 'cli.wasm' 的路径,假设编译后的文件位于 './target' 目录下。
  • '"env"': 设置 WASM 运行时的环境变量。
    • '"PATH"': 确保 'wasmtime' 能够找到必要的动态链接库或其他依赖。 需要设置为您的系统的 'PATH' 环境变量。

MCP 客户端需要在初始化时使用以上配置信息,才能连接到 MCP 服务器并进行通信。 具体的客户端配置方式请参考 MCP 客户端 SDK 的文档。

基本使用方法

  1. 启动 MCP 服务器: 使用配置中的 'command' 和 'args' 启动 'cli.wasm' 服务器 (通常由 MCP 客户端 SDK 自动完成)。
  2. MCP 客户端连接: MCP 客户端使用配置信息连接到运行中的 MCP 服务器。
  3. 发现和调用工具: 客户端可以调用 'listTools' 方法获取服务器注册的工具列表,并使用 'callTool' 方法调用具体的工具。 (示例代码 'example/client.ts' 中有演示)
  4. 访问资源: 客户端可以调用 'listRoots' 等方法获取资源根目录信息,并进一步访问服务器管理的资源。 (资源访问的具体方法需要参考 MCP 协议和服务器的实现)

请注意: 该 SDK 和示例服务器目前处于开发阶段,功能可能不完整,文档也可能缺失。 使用时请参考最新的项目信息和 MCP 协议规范。

信息

分类

开发者工具