Token导航 LogoToken导航TokenDH.com
MCP Transport Bench logo
运维云端stdio官方级别未说明来源级核验

MCP Transport Bench

MCP Server

用于在Kubernetes环境中测试MCP服务器不同传输协议性能的工具,支持StreamableHTTP、SSE和stdio协议的性能对比。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
KubernetesPython本地部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

fr0m-scratch

提供方

fr0m-scratch

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install aiohttp

详细介绍

使用Yardstick进行MCP性能测试

此存储库再现了本文中描述的性能测试设置 “在Kubernetes中测试MCP服务器的性能:传输选择是扩展MCP的成败决定”.

概述

使用 StacklokLabs/标尺 MCP服务器对不同MCP传输协议的性能进行基准测试:

  • 标准:标准输入/输出(性能差,约4%的成功率)
  • SSE(服务器发送事件):HTTP流媒体(良好但已弃用)
  • 流式HTTP:最佳性能(约300 RPS,带会话池)

参考文件

https://dev.to/stacklok/performance-testing-mcp-servers-in-kubernetes-transport-choice-is-the-make-or-break-decision-for-1ffb

包含内容

  • mcp-perf-test-setup.sh -Kind+Kubernetes的自动设置脚本
  • Dockerfile.yardstick -用于衡量MCP服务器的Docker容器
  • yardstick-deployment.yaml -用于StreamableHTTP传输的Kubernetes部署
  • yardstick-sse-deployment.yaml -用于SSE传输的Kubernetes部署
  • mcp-load-test-example.py -Python负载测试脚本
  • yardstick, yardstick-client -来自~/scale/build的预构建二进制文件

先决条件

✅ 已安装在您的系统上:

  • 码头工人
  • kubectl 的
  • kind(Docker中的Kubernetes)

快速开始

1.设置环境

cd ~/mcp-perf-testing

# Run the setup script
./mcp-perf-test-setup.sh

这将:

  • 创建一个Kubernetes集群
  • 构建并加载Docker镜像
  • 使用StreamableHTTP和SSE传输部署MCP服务器
  • 等待部署就绪

2.设置端口转发

在单独的终端窗口中:

# For StreamableHTTP (port 8080)
kubectl port-forward service/yardstick-mcp-service 8080:8080

# For SSE (port 8081)  
kubectl port-forward service/yardstick-mcp-sse-service 8081:8081

3.测试连接性

# Test StreamableHTTP
./yardstick-client -transport streamable-http -port 8080 -action info

# Test SSE
./yardstick-client -transport sse -port 8081 -action info

# Test echo functionality
./yardstick-client -transport streamable-http -port 8080 -action call-tool -tool echo -args '{"text":"Hello World"}'

4.运行性能测试

# Install Python dependencies
pip install aiohttp

# Run the load tests
python3 mcp-load-test-example.py

预期结果

根据原始文章的发现:

传输RPS成功率会话管理
流式HTTP~300100%共享会话
上海证券交易所~30100%不适用(已弃用)
标准非常低~4%直接容器连接

文章的主要发现:

  • 会话管理至关重要:共享会话与唯一会话之间的性能差异为10倍
  • 流式HTTP占主导地位 所有性能指标
  • stdio不合适 用于生产用途
  • SSE已弃用 但仍能正常工作

手动测试

测试单个运输工具:

# Start yardstick server locally for testing
./yardstick -transport streamable-http -port 9090 &

# Test with client
./yardstick-client -transport streamable-http -port 9090 -action list-tools
./yardstick-client -transport streamable-http -port 9090 -action call-tool -tool echo -args '{"text":"test"}'

Kubernetes检查:

# Check deployments
kubectl get deployments
kubectl get pods
kubectl get services

# Check logs
kubectl logs -l app=yardstick-mcp
kubectl logs -l app=yardstick-mcp-sse

# Scale for load testing
kubectl scale deployment yardstick-mcp --replicas=5

定制测试

您可以在中修改测试场景 mcp-load-test-example.py:

test_scenarios = [
    {"concurrent": 20, "duration": 5, "rps": 10, "name": "Basic Test"},
    {"concurrent": 50, "duration": 60, "rps": 100, "name": "High Load"},
    {"concurrent": 200, "duration": 60, "rps": 500, "name": "Very High Load"},
]

建筑

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Load Tester   │───▶│  Port Forward    │───▶│ Kind Cluster    │
│  (Python)       │    │  8080/8081       │    │                 │
└─────────────────┘    └──────────────────┘    │ ┌─────────────┐ │
                                                │ │ yardstick   │ │
                                                │ │ MCP Server  │ │
                                                │ │ Pods (3x)   │ │
                                                │ └─────────────┘ │
                                                └─────────────────┘

清理

# Stop port forwarding (Ctrl+C in terminal windows)

# Delete the kind cluster
kind delete cluster --name mcp-perf-test

# Remove Docker image
docker rmi yardstick-mcp:local

故障排除

端口转发问题:

# Kill existing port forwards
pkill -f "kubectl port-forward"
# Then restart port forwarding

Pod未就绪:

# Check pod status
kubectl describe pods -l app=yardstick-mcp

# Check logs
kubectl logs -l app=yardstick-mcp --tail=50

负载测试失败:

# Verify connectivity first
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05"},"id":"test"}'

文章参考

此设置基于中描述的性能测试: “在Kubernetes中测试MCP服务器的性能:传输选择是扩展MCP的成败决定”

关键要点:

  • 交通选择是建筑性的,而不仅仅是技术性的
  • 带有会话池的StreamableHTTP是前进的道路
  • 会话管理可以提供10倍的性能改进

目录标签

目录标签

KubernetesPython本地部署性能测试MCP服务器传输协议

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP