使用说明

项目简介

本项目是一个简单的MCP服务器和客户端示例,使用TypeScript和MCP TypeScript SDK构建。它演示了MCP服务器的基本功能,包括资源管理和通过stdio进行客户端-服务器通信。这个示例旨在帮助开发者快速了解MCP服务器的搭建和运行流程。

主要功能点

  • 资源管理: 服务器可以托管和管理资源,本示例中提供了一个简单的文本资源 'file:///example.txt'。
  • 资源列表: 客户端可以请求服务器获取可用的资源列表。
  • 资源读取: 客户端可以请求服务器读取指定URI资源的内容。
  • Stdio传输: 服务器和客户端之间通过标准的stdio (标准输入输出) 进行通信。
  • 基础错误处理: 服务器实现了基础的错误处理,例如当客户端请求不存在的资源时,服务器会返回错误。

安装步骤

  1. 克隆仓库
    git clone https://github.com/MCP-Mirror/joeBlockchain_mcp-server-client.git
    cd joeBlockchain_mcp-server-client
  2. 安装依赖 确保你已经安装了Node.js (v16 或更高版本) 和 npm。在项目根目录下运行:
    npm install

服务器配置

MCP客户端需要配置以下信息才能连接到此MCP服务器。这是一个 JSON 格式的配置示例,你需要将其提供给你的MCP客户端:

{
  "serverName": "example-server",  // MCP 服务器的名称,与服务器代码中定义的一致
  "transport": "stdio",         // 使用的传输协议,这里是 stdio
  "stdio": {
    "command": "node",        // 启动服务器的命令,这里使用 node
    "args": ["--loader", "ts-node/esm", "src/index.ts"] // 启动命令的参数,包括 ts-node/esm loader 和服务器入口文件
  }
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,在服务器端的 'Server' 构造函数中定义。
  • 'transport': 指定客户端与服务器通信的传输协议,本示例使用 'stdio'。
  • 'stdio.command': 指定用于启动 MCP 服务器进程的命令。这里使用 'node' 来运行 Node.js 代码。
  • 'stdio.args': 传递给启动命令的参数数组。
    • '--loader ts-node/esm': 使用 'ts-node/esm' loader 允许直接运行 TypeScript 代码,无需预先编译。
    • 'src/index.ts': 指定 MCP 服务器的入口文件路径。

基本使用方法

  1. 启动 MCP 服务器 打开一个终端窗口,进入项目根目录,运行以下命令启动 MCP 服务器:

    npm run start:server

    你将看到终端输出 'Starting server...' 和 'Server connected and ready!',表示服务器已成功启动并准备好接受客户端连接。

  2. 启动 MCP 客户端 打开另一个新的终端窗口,同样进入项目根目录,运行以下命令启动 MCP 客户端:

    npm run start:client

    客户端启动后,你将看到客户端的输出,包括:

    • 'Starting client...'
    • 'Connecting to server...'
    • 'Connected to server!'
    • 'Requesting resources list...'
    • 'Resources: ...' (列出服务器提供的资源)
    • 'Reading resource...'
    • 'Resource content: ...' (显示 'file:///example.txt' 的内容)

    这表明客户端已成功连接到服务器,并完成了资源列表请求和资源读取请求。

注意: 请确保先启动服务器,再启动客户端。客户端需要连接到正在运行的服务器才能正常工作。

信息

分类

开发者工具