关于 MCP Test Server
这是一个用于测试和演示的 TypeScript 与 Express.js MCP 服务,通过 Streamable HTTP 提供 BMI 计算、天气查询和回显工具,并支持基于环境变量的配置。
主要功能
- 01BMI 计算工具
- 02城市天气查询
- 03消息回显工具
- 04Streamable HTTP 传输
- 05基于环境变量的配置
适用场景
- 01使用示例函数测试 MCP 工具调用
- 02演示 Streamable HTTP MCP 服务
- 03使用 API 密钥试用天气查询
MCP 相关
该服务通过 `/mcp` 端点使用 Streamable HTTP 向 MCP 客户端提供 BMI、天气和回显工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 测试服务
一个 Model Context Protocol(MCP)服务实现,提供多个工具,用于测试和演示。
概述
此服务提供三个主要工具:
- BMI 计算器:根据体重和身高计算身体质量指数
- 天气服务:获取任意城市的天气信息(支持 API 密钥)
- 回显工具:用于测试的简单回显功能
功能
- 使用 TypeScript 和 Express.js 构建
- 为 MCP 提供可流式 HTTP 传输
- 基于环境变量的配置
- 支持热重载开发
- 模块化工具架构
前提条件
- Node.js(v18 或更高版本)
- npm 或 yarn 包管理器
安装
-
克隆或下载此仓库
-
安装依赖:
npm install -
复制环境示例文件:
cp .env.example .env -
(可选)将天气 API 密钥添加到
.env:WEATHER_API_KEY=your_openweathermap_api_key_here
构建和运行
开发模式
# Build and start with hot reload
npm run dev
生产模式
# Build the project
npm run build
# Start the server
npm start
服务将在 http://localhost:3000 启动(或在 PORT 环境变量指定的端口启动)。
API 端点
MCP 服务可通过以下地址访问:
POST http://localhost:3000/mcp
可用工具
1. BMI 计算器(calculate-bmi)
根据体重和身高计算身体质量指数。
参数:
weightKg(number):以千克为单位的体重heightM(number):以米为单位的身高
2. 天气服务(get-weather)
获取城市的当前天气信息。
参数:
city(string):城市名称country(string,可选):国家代码(例如,“IN”、“US”)
3. 回显工具(echo)
用于测试的简单回显功能。
参数:
message(string):要回显的消息
测试服务
使用 MCP Inspector
使用 GUI 界面测试 MCP 服务:
-
启动服务:
npm start -
在另一个终端中运行 MCP inspector:
npm run inspector
VS Code 集成
如果你使用支持 MCP 的 VS Code,请将此服务添加到设置中:
{
"mcp": {
"servers": {
"mcp-test-server": {
"url": "http://localhost:3000/mcp"
}
}
}
}
项目结构
├── src/
│ ├── index.ts # Main server file
│ └── tools/ # Tool implementations
│ ├── bmi.ts # BMI calculator tool
│ ├── weather.ts # Weather service tool
│ └── echo.ts # Echo tool
├── build/ # Compiled JavaScript files
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── .env.example # Environment variables example
└── README.md # This file
开发
添加新工具
-
在
src/tools/中创建新的工具文件:import { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; import { z } from 'zod'; export const myTool = { name: 'my-tool', schema: { param1: z.string(), param2: z.number(), }, handler: async ({ param1, param2 }: { param1: string; param2: number }): Promise<CallToolResult> => { return { content: [ { type: 'text', text: `Result: ${param1} - ${param2}`, }, ], }; }, }; -
在
src/index.ts中导入并注册:import { myTool } from './tools/my-tool.js'; // In the getServer() function: server.tool( myTool.name, 'Description of my tool', myTool.schema, myTool.handler );
可用脚本
npm run build- 将 TypeScript 编译为 JavaScriptnpm run watch- 监视更改并重新编译npm run dev- 带热重载的开发模式npm start- 启动编译后的服务npm run inspector- 启动 MCP inspector
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。