mcpField
M
MCP Test Server

MCP Test Server

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

关于 MCP Test Server

这是一个用于测试和演示的 TypeScript 与 Express.js MCP 服务,通过 Streamable HTTP 提供 BMI 计算、天气查询和回显工具,并支持基于环境变量的配置。

主要功能

  1. 01BMI 计算工具
  2. 02城市天气查询
  3. 03消息回显工具
  4. 04Streamable HTTP 传输
  5. 05基于环境变量的配置

适用场景

  1. 01使用示例函数测试 MCP 工具调用
  2. 02演示 Streamable HTTP MCP 服务
  3. 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 包管理器

安装

  1. 克隆或下载此仓库

  2. 安装依赖:

    npm install
    
  3. 复制环境示例文件:

    cp .env.example .env
    
  4. (可选)将天气 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 服务:

  1. 启动服务:

    npm start
    
  2. 在另一个终端中运行 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

开发

添加新工具
  1. 在 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}`,
            },
          ],
        };
      },
    };
    
  2. 在 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 编译为 JavaScript
  • npm run watch - 监视更改并重新编译
  • npm run dev - 带热重载的开发模式
  • npm start - 启动编译后的服务
  • npm run inspector - 启动 MCP inspector

评论

支持 Markdown

第一次接触 MCP?

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

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