mcpField
E
Exemplo de Servidor MCP

Exemplo de Servidor MCP

本地服务
github.com/renanpk开发工具078 周前更新

关于 Exemplo de Servidor MCP

这是一个用 Node.js 和 TypeScript 构建的教学型天气 MCP 服务示例,面向学习 MCP 服务开发的开发者。它通过 NWS API 提供天气警报和预报工具,并采用分层架构与 Zod 输入验证。

主要功能

  1. 01查询美国各州有效天气警报
  2. 02按地理坐标获取天气预报
  3. 03使用 Zod 验证输入
  4. 04通过 stdio 传输通信
  5. 05采用分层架构组织代码

适用场景

  1. 01学习构建 Node.js MCP 服务
  2. 02查询指定州的天气警报
  3. 03获取坐标位置的天气预报

MCP 相关

该服务通过 MCP 暴露天气警报和预报工具,使用 stdio 传输等待客户端请求。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MCP 服务示例

本项目为 Código Fonte TV 频道的教育用途而创建,演示了如何构建一个集成外部 API 并验证数据的 MCP 服务。

此代码仓库包含一个使用 Node.js/TypeScript 实现的 MCP(Model Context Protocol)服务示例,提供两个工具,用于通过美国国家气象局(NWS)的 API 获取天气信息。

功能

  • get-alerts:返回某个州当前有效的天气警报(两个字母的代码,例如:CA、NY)。
  • get-forecast:根据地理坐标(纬度、经度)返回天气预报。
  • 使用 Zod 验证输入。
  • 使用 fetch 集成 NWS API(基础设施层)。
  • 使用 MCP 协议通过 stdio 通信(@modelcontextprotocol/sdk)。

架构

项目采用受领域驱动设计(DDD)模式启发的分层架构:

  • Domain(src/domain): 定义表示数据结构的接口和类型(例如:AlertFeature、ForecastPeriod、AlertsResponse)。

  • Infrastructure(src/infrastructure): 实现外部服务,例如负责向 NWS API 发起 HTTP 请求的 NWSApiService。

  • Application(src/application): 包含 WeatherService 中的业务逻辑,用于处理并格式化来自基础设施的数据。

  • Interface(src/interface): 包含控制器(WeatherToolsController),用于在 MCP 服务中注册工具、定义验证 schema 并返回结果。

  • Entry Point(src/main.ts): 初始化 McpServer,配置传输方式(StdioServerTransport),实例化服务和控制器,并启动 stdio 监听。

文件夹结构如下:

src/
├── domain/
│   └── models/           # Interfaces de domínio
├── infrastructure/
│   └── services/         # Implementações da API externa (NWS)
├── application/
│   └── services/         # Lógica de negócio e formatação de dados
├── interface/
│   └── controllers/      # Registro das ferramentas MCP e validação
└── main.ts               # Ponto de entrada do servidor
build/                     # Código JavaScript compilado

安装

git clone <REPOSITÓRIO_URL>
cd mcp-server-sample
npm install
npm run build

使用

构建完成后,你可以直接运行服务:

node build/main.js

或者,如果已注册为二进制文件(weather):

npm link
weather

服务将在标准输出(stdio)上启动,并等待 MCP 请求。

贡献

欢迎提交拉取请求!欢迎随时创建 issue 并讨论改进建议。

Código Fonte TV

如需了解实现详情,请观看 Código Fonte TV 频道的视频。

评论

支持 Markdown

第一次接触 MCP?

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

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