在YouTube频道“Código Fonte TV”上为了教育目的创建的这个项目,展示了如何构建一个与外部API集成并进行数据验证的MCP服务器。
此仓库包含一个用Node.js/TypeScript实现的MCP(模型上下文协议)服务器示例,该服务器提供了两个工具来获取美国国家气象服务(NWS)API提供的气象信息。
CA,NY)的活跃气象警报。fetch与NWS API集成(基础设施层)。@modelcontextprotocol/sdk)。该项目遵循分层架构,灵感来自领域驱动设计(DDD)模式:
领域 (src/domain):
定义表示数据结构的接口和类型(如:AlertFeature,ForecastPeriod,AlertsResponse)。
基础设施 (src/infrastructure):
实现外部服务,如负责调用NWS API的HTTP请求的NWSApiService。
应用 (src/application):
包含业务逻辑的WeatherService,处理并格式化来自基础设施的数据。
接口 (src/interface):
包括注册MCP工具的控制器(WeatherToolsController),定义验证模式并返回结果。
入口点 (src/main.ts):
初始化McpServer,配置传输(StdioServerTransport),实例化服务和控制器,并开始监听_stdio_。
文件夹结构如下:
src/
├── domain/
│ └── models/ # 领域接口
├── infrastructure/
│ └── services/ # 外部API实现(NWS)
├── application/
│ └── services/ # 业务逻辑和数据格式化
├── interface/
│ └── controllers/ # 注册MCP工具和验证
└── main.ts # 服务器入口点
build/ # 编译后的JavaScript代码
git clone <REPOSITÓRIO_URL>
cd mcp-server-sample
npm install
npm run build
编译后,可以直接运行服务器:
node build/main.js
或者,如果已注册为二进制文件(weather):
npm link
weather
服务器将在标准输出_stdio_中启动,并等待MCP请求。
欢迎提交拉取请求!请随意打开问题并讨论改进。
有关实现的更多细节,请观看YouTube频道Código Fonte TV上的视频。