使用说明
MCP 服务器示例
本项目是为教育目的在源代码电视频道上创建的,演示了如何构建具有外部API集成和数据验证的MCP服务器。
此存储库包含一个 MCP 服务器实施示例 (_模型上下文协议_Node.js/TypeScript 提供了两种工具,用于使用美国国家气象局 (NWS) API 获取天气信息。
功能
- 获取警报返回一个状态的活动天气警报(两个字母的代码,例如:
CA,NY). - 获取预报: 按地理坐标(纬度、经度)返回天气预报。
- 使用输入校验 萨德.
- 使用 NWS API 集成
fetch(基础设施层)。 - 通过通信 标准输入输出 MCP协议(
@modelcontextprotocol/sdk).
建筑
该项目遵循一个层次架构,灵感来自 领域驱动设计 (DDD):
-
领域 (
src/domain): 定义代表数据结构的接口和类型(例如:AlertFeature,ForecastPeriod,AlertsResponse). -
基础设施 (
src/infrastructure): 提供外部服务,如NWSApiService负责对 NWS API 进行 HTTP 调用。 -
应用 (
src/application): 包含商业逻辑WeatherService它可以处理和格式化来自基础设施的数据。 -
接口 (
src/interface): 包括驱动程序 (WeatherToolsController) 在 MCP 服务器上注册工具,定义验证方案并返回结果。 -
入口点 (
src/main.ts): 初始化McpServer,配置运输(StdioServerTransport服务和控制器,并开始监听 标准输入输出.
文件夹结构如下 :
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
服务器将以标准输出启动( )_标准输入输出_等待MCP要求。
贡献
Pull Requests 欢迎!随时开放问题并讨论改进。
电视源代码
有关实施的详细信息,请观看频道视频 电视源代码.