mcpField
A
A Simple MCP Server and Client

A Simple MCP Server and Client

本地服务
github.com/logesh-kumar开发工具184 周前更新

关于 A Simple MCP Server and Client

这是一个用于了解城市信息、天气预报和旅行建议的 MCP 服务与客户端示例。它展示 stdio 通信,并记录底层 JSON-RPC 消息,便于开发者学习 MCP。

主要功能

  1. 01城市信息资源
  2. 02天气预报工具
  3. 03基于天气的旅行提示词
  4. 04stdio 客户端与服务通信
  5. 05易读的 JSON-RPC 日志

适用场景

  1. 01学习 MCP 资源、工具和提示词的用法
  2. 02调试时检查 JSON-RPC 通信
  3. 03试用可启动服务进程的客户端

MCP 相关

服务端向 MCP 客户端提供城市资源、天气工具和旅行建议提示词。附带的客户端通过 stdio 连接,并演示读取资源、调用工具和获取提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

一个简单的 MCP 服务和客户端

这是一个简单的模型上下文协议(MCP)服务和客户端实现,演示如何公开和访问天气信息。

服务

服务实现在 server.js 中,提供以下功能:

  • 资源:

    • city://NewYork:纽约市的基本信息
    • city://London:伦敦的基本信息
    • city://Tokyo:东京的基本信息
  • 工具:

    • get-weather:获取某个城市的天气预报,可设置城市名称和天数参数
  • 提示词:

    • weather-advice:根据天气状况获取旅行建议

客户端

客户端实现在 client.js 中,演示如何:

  • 连接到 MCP 服务
  • 列出可用资源
  • 读取指定的城市资源
  • 调用天气预报工具
  • 获取天气建议提示词

JSON-RPC 通信

此实现使用 JSON-RPC 2.0 作为客户端与服务之间的底层通信协议。使用的 JSON-RPC 核心概念包括:

  • 方法:标准方法名称,例如 resources/list、resources/read、tools/call 和 prompts/get
  • 参数:随方法调用发送的输入数据
  • 请求 ID:用于将请求与响应对应起来的唯一标识符
  • 结果/错误:结构化响应数据或错误信息

MCP SDK 抽象了其中大部分细节,但了解该协议有助于调试和自定义。查看控制台输出即可看到原始 JSON-RPC 消息。

运行服务和客户端

  1. 启动客户端:

    node client.js
    

    启动客户端会自动将服务作为子进程启动。客户端将连接到服务并执行所有示例操作。

  2. 单独启动服务:

    node server.js
    

传输机制

此示例使用 stdio(标准输入/输出)作为客户端与服务之间的传输机制。启动客户端时,它会将服务作为子进程启动,并通过 stdin/stdout 流与其通信。

此示例实现了自定义日志传输机制,用于展示客户端与服务之间交换的消息。这些消息会以便于阅读的格式记录到控制台,帮助理解该协议。

故障排查

如果资源请求或提示词请求超时,请检查服务实现。此示例针对特定请求类型加入了直接消息处理,以绕过当前 SDK 版本的限制。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。