
](https://mseep.ai/app/inventer-dev-mcp-internet-speed-test)
MCP互联网速度测试
用于互联网速度测试的模型上下文协议(MCP)的实现。它允许AI模型和代理通过标准化的接口测量、分析和报告网络性能指标。
📦 在PyPI上可用: https://pypi.org/project/mcp-internet-speed-test/
🚀 快速入门:
pip install mcp-internet-speed-test
mcp-internet-speed-test什么是MCP?
模型上下文协议(MCP)为大型语言模型(LLM)提供了一种与外部工具和数据源交互的标准化方法。将其视为“用于人工智能应用的USB-C”——一个允许人工智能系统访问现实世界功能和信息的通用接口。
特性
- 智能增量测试:用途 速度。Me方法论 具有8秒阈值,可实现最佳精度
- 下载速度测试:使用GitHub存储库(Git LFS)中128KB到128MB的文件测量带宽
- 上传速度测试:使用128KB到128MB的流数据测试上传带宽
- 延迟测试:使用多个样本测量网络延迟,报告最小值
- 抖动分析:使用多个延迟样本计算网络稳定性(默认值:5)
- 多CDN支持:检测并提供Fastly、Cloudflare和AWS CloudFront的信息
- 地理位置:将POP代码映射到物理位置(全球50多个位置)
- 缓存分析:检测HIT/MISS状态和缓存标头
- 服务器元数据:提取详细的CDN标头,包括
x-served-by,via,x-cache - 全面测试:单一功能可运行所有具有完整指标的测试
安装
先决条件
- Python 3.12或更高版本(需要异步支持)
- pip或 紫外线 包管理器
选项1:使用pip从PyPI安装(推荐)
# Install the package globally
pip install mcp-internet-speed-test
# Run the MCP server
mcp-internet-speed-test选项2:使用uv从PyPI安装
# Install the package globally
uv add mcp-internet-speed-test
# Or run directly without installing
uvx mcp-internet-speed-test选项3:使用docker
# Build the Docker image
docker build -t mcp-internet-speed-test .
# Run the MCP server in a Docker container
docker run -it --rm -v $(pwd):/app -w /app mcp-internet-speed-test选项4:开发/本地安装
如果你想贡献或修改代码:
# Clone the repository
git clone https://github.com/inventer-dev/mcp-internet-speed-test.git
cd mcp-internet-speed-test
# Install in development mode
pip install -e .
# Or using uv
uv sync
uv run python -m mcp_internet_speed_test.main依赖项
软件包会自动安装这些依赖项:
mcp[cli]>=1.25.0:带CLI集成的MCP服务器框架httpx>=0.27.0:异步HTTP客户端用于速度测试
配置
要将此MCP服务器与Claude Desktop或其他MCP客户端一起使用,请将其添加到MCP配置文件中。
Claude桌面配置
编辑您的Claude Desktop MCP配置文件:
选项1:使用pip安装包(推荐)
{
"mcpServers": {
"mcp-internet-speed-test": {
"command": "mcp-internet-speed-test"
}
}
}选项2:使用uvx
{
"mcpServers": {
"mcp-internet-speed-test": {
"command": "uvx",
"args": ["mcp-internet-speed-test"]
}
}
}API工具
MCP互联网速度测试提供以下工具:
测试功能
measure_download_speed:使用服务器位置信息测量下载带宽(单位:Mbps)measure_upload_speed:使用服务器位置信息测量上传带宽(单位:Mbps)measure_latency:使用样本测量网络延迟(以毫秒为单位),报告最小值measure_jitter:通过分析服务器信息的延迟变化来测量网络抖动get_server_info:无需运行速度测试即可获取任何URL的详细CDN服务器信息run_complete_test:使用所有指标和服务器元数据进行全面测试
CDN服务器检测
此速度测试现在提供了有关为您的测试提供服务的CDN服务器的详细信息:
所得
- CDN提供商:标识您是连接到Fastly、Cloudflare还是Amazon CloudFront
- 地理位置:显示服务器的物理位置(例如,“墨西哥城,墨西哥”)
- 流行代码:标识存在点的三个字母代码(例如,“MEX”、“QRO”、“DFW”)
- 缓存状态:内容是从缓存提供(HIT)还是从源获取(MISS)
- 服务器标头:完整的HTTP标头,包括
x-served-by,via,以及x-cache
技术实现
智能测试方法
- 增量方法:从小文件(128KB)开始,然后逐渐增加(2的幂)
- 基于时间的阈值:使用可配置的sustain_time(1-8秒,默认值:8)。当样本超过阈值时停止
- 精准聚焦:最后一个采样时间≥8秒的速度用作最终测量值
- 多提供商支持:对地理分布的端点进行测试
- 完整的方法论:参见 速度。医用电气测试方法
CDN检测功能
- 快速地:检测POP代码并映射到50多个全球位置
- 云耀:标识数据中心和地理区域
- AWS云前端:识别各大洲的边缘位置
- 标题分析:解析
x-served-by,via,x-cache,以及自定义CDN标头
为什么这很重要
- 网络诊断:了解实际为您的测试提供服务的服务器
- 性能分析:将速度结果与服务器距离相关联
- CDN优化:确定ISP的路由是否最佳
- 地理意识:知道测试是否在您预期的区域运行
- 故障排除:识别路由问题和CDN配置错误
服务器信息输出示例
{
"cdn_provider": "Fastly",
"pop_code": "MEX",
"pop_location": "Mexico City, Mexico",
"served_by": "cache-mex4329-MEX",
"cache_status": "HIT",
"x_cache": "HIT, HIT"
}技术配置
默认测试文件存储库
GitHub Repository: inventer-dev/speed-test-files
Branch: main
URL: https://media.githubusercontent.com/media/inventer-dev/speed-test-files/main/
File Sizes: 128KB, 256KB, 512KB, 1MB, 2MB, 4MB, 8MB, 16MB, 32MB, 64MB, 128MB
Storage: Git LFS上传端点优先级
- Cloudflare Workers (httpi.dev)-全局分发,最高优先级
- HTTPBin (httpbin.org)-基于AWS的辅助端点
支持的CDN位置(150+POP)
持久性有机污染物:MEX、QRO、DFW、LAX、NYC、MIA、LHR、FRA、AMS、CDG、NRT、SIN、SYD、GRU、SCL、BOG、MAD、MIL。..
Cloudflare中心:DFW、LAX、SJC、SEA、ORD、MCI、IAD、ATL、MIA、YYZ、LHR、FRA、AMS、CDG、ARN、STO。..
AWS云前端:ATL、BOS、ORD、CMH、DFW、DEN、IAD、LAX、MIA、MSP、JFK、SEA、SJC、AMS、ATH、TXL。..
性能阈值
- 测试持续时间阈值:8.0秒(当样本超过此值时停止)
- 最大文件大小:可配置(默认值:128MB)
- 延迟样本:至少10次测量,报告(可配置)
- 抖动样本:5个测量值(可配置)
- 维持时间:1-8秒(可配置,默认值:8)
故障排除
常见问题
MCP服务器连接
- 路径配置:确保在MCP配置中使用绝对路径
- 目录权限:验证项目目录的读取/执行权限
- Python版本:需要支持异步的Python 3.12+
- 依赖项:安装
mcp[cli]和httpx包裹
速度测试问题
- GitHub存储库访问:确保
inventer-dev/speed-test-files可访问的 - 防火墙/代理:检查公司防火墙是否阻止测试端点
- CDN路由:一些ISP可能会以不同的方式路由到CDN
- 网络稳定性:抖动测试需要稳定的连接
性能考量
- 文件大小限制:连接速度较慢时,大文件(>50MB)可能会超时
- 上传端点:如果主端点失败,则自动回退
- 地理精度:POP检测取决于CDN标头的一致性
发展
项目结构
mcp-internet-speed-test/
├── mcp_internet_speed_test/ # Main package directory
│ ├── __init__.py # Package initialization
│ └── main.py # MCP server implementation
├── README.md # This documentation (includes methodology reference)
├── Dockerfile # Container configuration
└── pyproject.toml # Python project configuration关键组件
配置常数
GITHUB_MEDIA_URL:测试文件存储库的基本URL(Git LFS媒体端点)UPLOAD_ENDPOINTS:上传测试端点的优先级列表SIZE_PROGRESSION:增量测试文件大小的有序列表(2的幂)*_POP_LOCATIONS:CDN代码到地理位置的映射
核心功能
extract_server_info():解析HTTP标头以识别CDN提供商measure_*():针对不同指标的单独测试功能run_complete_test():编排全面的测试套件
配置定制
您可以在中自定义以下内容 mcp_internet_speed_test/main.py 如果克隆存储库:
# GitHub repository settings
GITHUB_USERNAME = "your-username"
GITHUB_REPO = "your-speed-test-files"
GITHUB_BRANCH = "main"
# Test duration threshold
DEFAULT_TEST_DURATION = 8.0 # seconds
# Default endpoints
DEFAULT_UPLOAD_URL = "your-upload-endpoint"
DEFAULT_LATENCY_URL = "your-latency-endpoint"贡献
这是一个实验项目,欢迎投稿:
- 问题:报告错误或请求功能
- 拉取请求:提交代码改进
- 文档:帮助改进此README
- 测试:使用不同的网络条件和CDN进行测试
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- 用于标准化AI工具交互的MCP框架维护者
- 用于文档和示例的模型上下文协议社区
- 速度。我 团队的增量测试方法(运作原理).看 方法参考如下
- 对于官方的SpeedOf。Me MCP服务器,请参阅 @速度fme/mcp
______________________________________________________________________
速度。医用电气测试方法
来源: 速度。我——它是如何工作的 此部分保留SpeedOf。参考的Me测试方法 通过这个项目。2026年3月8日取回。
Click to expand full methodology
概述
速度。我通过下载和上传样本来测试互联网连接 文件夹。它通过使用单个 HTTP连接和大型连续文件——就像真实的网络内容一样 交付。
下载测试
- 首先下载 最小样本量 (128kb)。
- 实时测量下载持续时间。
- 如果下载需要 少于8秒,移动到 **下一个更大
样本量**.
- 如果下载需要 8秒或更长时间,停止进展。
- 这 最终速度测量 基于 最后一个样本 --那个
这花了8秒或更长时间。
上传测试
下载测试完成后,使用类似的增量过程 将数据发送回测试服务器:
- 从a开始 小样本 并且尺寸逐渐增大。
- 继续,直到上传样本为止 超过8秒.
- 上传速度基于最终样本。
延迟和抖动
- 延迟(ping): 数据传输到服务器所需的时间
\
