项目简介

本项目 'MCP_server-javascript' 是一个简单的 Model Context Protocol (MCP) 服务器实现,使用 JavaScript 开发。它演示了如何使用 '@modelcontextprotocol/sdk' 库构建 MCP 服务器,并提供了天气查询工具和 Prompt 模板作为示例。

主要功能点

  • 工具 (Tools): 提供 'getWeatherDatabyCityName' 工具,可以根据城市名称返回简单的天气信息。
  • Prompt 模板 (Prompts): 提供 'tell-temperature' Prompt 模板,可以根据城市名称生成询问天气的 Prompt,用于与 LLM 交互。
  • 标准 MCP 协议: 实现了基本的 MCP 服务器框架,可以处理来自 MCP 客户端的请求。
  • Stdio 传输: 使用 Stdio (标准输入输出) 作为默认的传输协议。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node.js 包管理器)。
  2. 克隆仓库: 从 GitHub 克隆该仓库到本地:
    git clone https://github.com/TanmayChaurasia24/MCP_server-javascript.git
    cd MCP_server-javascript
  3. 安装依赖: 在仓库根目录下运行以下命令安装项目依赖:
    npm install
    npm install @modelcontextprotocol/sdk # 显式安装SDK,虽然package.json中可能已包含

服务器配置

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

{
  "serverName": "WeatherTeller",  // 服务器名称,可以自定义
  "command": "node",             // 启动服务器的命令,这里使用 node.js 运行 index.js
  "args": ["index.js"]           // 启动命令的参数,这里指定运行 index.js 文件
}

配置说明:

  • 'serverName': 服务器的名称,这个名称会在 MCP 客户端中显示,可以自定义。
  • 'command': 启动服务器程序的可执行命令。由于本项目是 JavaScript 项目,并且 'index.js' 是入口文件,所以使用 'node' 命令来执行。
  • 'args': 传递给启动命令的参数。这里 'index.js' 是要运行的 JavaScript 文件。

注意: MCP 客户端会使用 Stdio 协议通过标准输入输出与该服务器进行通信。请确保你的 MCP 客户端支持 Stdio 协议,并正确配置上述服务器信息。

基本使用方法

  1. 启动 MCP 服务器: 在仓库根目录下,打开终端并运行以下命令启动 MCP 服务器:

    node index.js

    服务器启动后,会监听标准输入,等待 MCP 客户端的连接和请求。

  2. 配置并启动 MCP 客户端: 根据你的 MCP 客户端的使用说明,配置上面提供的服务器配置信息,并启动 MCP 客户端。

  3. 使用工具和 Prompt: 在 MCP 客户端中,你可以:

    • 调用 'getWeatherDatabyCityName' 工具: 传入城市名称作为参数,例如 'city: "london"',服务器会返回简单的天气描述。
    • 获取 'tell-temperature' Prompt: 客户端可以请求获取 'tell-temperature' Prompt 模板,并根据需要传入参数(例如城市名称),然后使用该 Prompt 与 LLM 进行交互,以获取指定城市的天气信息。

示例工具调用 (假设 MCP 客户端支持直接调用 Tool):

客户端发送请求调用 'getWeatherDatabyCityName' 工具,并传入参数 'city: "kanpur"'。服务器会执行 'findWeather("kanpur")' 函数,并返回结果 '"The weather in kanpur is sunny"'。

示例 Prompt 使用 (假设 MCP 客户端支持 Prompt 功能):

客户端请求获取 'tell-temperature' Prompt,并传入参数 'city: "delhi"'。服务器会返回 Prompt 模板,客户端可以使用该模板与 LLM 交互,期望 LLM 能够根据 Prompt 内容回答德里的天气温度。

信息

分类

网页与API