mcpField
E
Exemplo de Servidor MCP

Exemplo de Servidor MCP

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

关于 Exemplo de Servidor MCP

Exemplo de Servidor MCP 是一个用 Node.js 与 TypeScript 编写的 MCP 服务示例,以教学为目的。它提供两个基于美国国家气象局 NWS API 的天气工具,并使用 Zod 进行输入校验,采用分层的 DDD 风格结构。

主要功能

  1. 01get-alerts 工具,获取指定州的天气预警
  2. 02get-forecast 工具,按经纬度获取天气预报
  3. 03使用 Zod 校验输入参数
  4. 04基于 stdio 的 MCP 通信

适用场景

  1. 01学习如何构建调用外部 API 的 MCP 服务
  2. 02参考分层结构组织 TypeScript MCP 项目

MCP 相关

该项目是 MCP 服务端,通过 stdio 传输向 MCP 客户端暴露 get-alerts 和 get-forecast 两个工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。