返回市场
MCP互联网速度测试服务器

MCP互联网速度测试服务器

作者:inventer-dev11 星标更新:2025-10-08

项目介绍

【技术文档摘要】: Trust Score smithery badge

MseeP.ai Security Assessment Badge

<a href="https://glama.ai/mcp/servers/@inventer-dev/mcp-internet-speed-test"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=564269580,789858835&fm=3081&app=3081&f=PNG?w=760&h=400" alt="mcp-internet-speed-test MCP server" /> </a>

MCP互联网速度测试

这是一个用于互联网速度测试的模型上下文协议(MCP)实现。它允许AI模型和代理通过标准化接口测量、分析并报告网络性能指标。

📦 在PyPI上可用: https://pypi.org/project/mcp-internet-speed-test/

🚀 快速开始:

pip install mcp-internet-speed-test
mcp-internet-speed-test

什么是MCP?

模型上下文协议(MCP)提供了一种标准方式,使大型语言模型(LLMs)能够与外部工具和数据源进行交互。可以将其视为“AI应用的USB-C”——一个通用接口,使AI系统能够访问现实世界的能力和信息。

特性

  • 智能增量测试:使用SpeedOf.Me方法论,8秒阈值以获得最佳准确性
  • 下载速度测试:使用从128KB到100MB的文件从GitHub存储库测量带宽
  • 上传速度测试:使用生成的数据从128KB到100MB测试上传带宽
  • 延迟测试:使用详细的服务器位置信息测量网络延迟
  • 抖动分析:使用多个延迟样本计算网络稳定性(默认:5)
  • 多CDN支持:检测并提供Fastly、Cloudflare和AWS CloudFront的信息
  • 地理位置:将POP代码映射到物理位置(全球50多个地点)
  • 缓存分析:检测HIT/MISS状态和缓存头
  • 服务器元数据:提取详细的CDN头,包括x-served-byviax-cache
  • 全面测试:单个函数运行所有测试并提供完整的度量

安装

先决条件

  • Python 3.12或更高版本(需要异步支持)
  • pip或uv包管理器

方案1:使用pip从PyPI安装(推荐)

# 全局安装包
pip install mcp-internet-speed-test

# 运行MCP服务器
mcp-internet-speed-test

方案2:使用uv从PyPI安装

# 全局安装包
uv add mcp-internet-speed-test

# 或者不安装直接运行
uvx mcp-internet-speed-test

方案3:使用docker

# 构建Docker镜像
docker build -t mcp-internet-speed-test .

# 在Docker容器中运行MCP服务器
docker run -it --rm -v $(pwd):/app -w /app mcp-internet-speed-test

方案4:开发/本地安装

如果您想贡献或修改代码:

# 克隆仓库
git clone https://github.com/inventer-dev/mcp-internet-speed-test.git
cd mcp-internet-speed-test

# 开发模式安装
pip install -e .

# 或者使用uv
uv sync
uv run python -m mcp_internet_speed_test.main

依赖项

该包会自动安装以下依赖项:

  • mcp[cli]>=1.6.0:具有CLI集成的MCP服务器框架
  • httpx>=0.27.0:用于速度测试的异步HTTP客户端

配置

要将此MCP服务器与Claude Desktop或其他MCP客户端一起使用,请将其添加到您的MCP配置文件中。

Claude Desktop配置

编辑您的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互联网速度测试提供了以下工具:

测试函数

  1. measure_download_speed:测量下载带宽(Mbps),附带服务器位置信息
  2. measure_upload_speed:测量上传带宽(Mbps),附带服务器位置信息
  3. measure_latency:测量网络延迟(ms),附带服务器位置信息
  4. measure_jitter:通过分析延迟变化测量网络抖动,附带服务器信息
  5. get_server_info:获取任何URL的详细CDN服务器信息,无需运行速度测试
  6. run_complete_test:带有所有度量和服务器元数据的综合测试

CDN服务器检测

此速度测试现在提供了关于为您服务的测试的CDN服务器的详细信息:

您将获得什么

  • CDN提供商:识别您是否连接到Fastly、Cloudflare或Amazon CloudFront
  • 地理位置:显示服务器的实际位置(例如,“墨西哥城,墨西哥”)
  • POP代码:三个字母的代码标识存在点(例如,“MEX”,“QRO”,“DFW”)
  • 缓存状态:内容是从缓存中提供(HIT)还是从原始来源获取(MISS)
  • 服务器头:完整的HTTP头,包括x-served-byviax-cache

技术实现

智能测试方法论

  • 增量方法:从小文件(128KB)开始,并逐步增加
  • 基于时间的优化:使用8秒基础阈值+4秒额外缓冲
  • 精度聚焦:选择提供可靠测量的最佳文件大小
  • 多提供商支持:针对地理分布的端点进行测试

CDN检测能力

  • Fastly:检测POP代码并映射到50多个全球位置
  • Cloudflare:识别数据中心和地理区域
  • AWS CloudFront:识别跨大陆的边缘位置
  • 头部分析:解析x-served-byviax-cache和自定义CDN头

为什么这很重要

  • 网络诊断:了解实际为您的测试提供服务的服务器是哪个
  • 性能分析:关联速度结果与服务器接近度
  • CDN优化:确定您的ISP路由是否最优
  • 地理意识:知道测试是否在预期地区运行
  • 故障排除:识别路由问题和CDN误配置

示例服务器信息输出

{
  "cdn_provider": "Fastly",
  "pop_code": "MEX",
  "pop_location": "墨西哥城,墨西哥",
  "served_by": "cache-mex4329-MEX",
  "cache_status": "HIT",
  "x_cache": "HIT, HIT"
}

技术配置

默认测试文件存储库

GitHub存储库:inventer-dev/speed-test-files
分支:main
文件大小:128KB, 256KB, 512KB, 1MB, 2MB, 5MB, 10MB, 20MB, 40MB, 50MB, 100MB

上传端点优先级

  1. Cloudflare Workers (httpi.dev) - 全球分布,最高优先级
  2. HTTPBin (httpbin.org) - AWS基础,次级端点

支持的CDN位置(150多个POP)

Fastly POPs: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 CloudFront:ATL, BOS, ORD, CMH, DFW, DEN, IAD, LAX, MIA, MSP, JFK, SEA, SJC, AMS, ATH, TXL...

性能阈值

  • 基本测试持续时间:8.0秒
  • 额外缓冲:4.0秒
  • 最大文件大小:可配置(默认:100MB)
  • 抖动样本:5个测量值(可配置)

故障排除

常见问题

MCP服务器连接

  1. 路径配置:确保在MCP配置中使用绝对路径
  2. 目录权限:验证项目目录的读取/执行权限
  3. Python版本:需要Python 3.12+且支持异步
  4. 依赖项:安装fastmcphttpx

速度测试问题

  1. GitHub存储库访问:确保inventer-dev/speed-test-files可访问
  2. 防火墙/代理:检查公司防火墙是否阻止测试端点
  3. CDN路由:某些ISP可能对CDN有不同的路由
  4. 网络稳定性:抖动测试需要稳定的连接

性能考虑

  • 文件大小限制:大文件(>50MB)可能在慢连接上超时
  • 上传端点:如果主要端点失败,会自动回退
  • 地理准确性:POP检测取决于CDN头的一致性

开发

项目结构

mcp-internet-speed-test/
├── mcp_internet_speed_test/  # 主包目录
│   ├── __init__.py      # 包初始化
│   └── main.py          # MCP服务器实现
├── README.md           # 此文档
├── Dockerfile          # 容器配置
└── pyproject.toml      # Python项目配置

关键组件

配置常量

  • GITHUB_RAW_URL:测试文件存储库的基本URL
  • UPLOAD_ENDPOINTS:上传测试端点的优先列表
  • SIZE_PROGRESSION:用于增量测试的有序文件大小列表
  • *_POP_LOCATIONS:CDN代码到地理位置的映射

核心函数

  • extract_server_info():解析HTTP头以识别CDN提供商
  • measure_*():不同度量的单独测试函数
  • run_complete_test():协调综合测试套件

配置定制化

如果您克隆了仓库,可以在mcp_internet_speed_test/main.py中自定义以下内容:

# GitHub存储库设置
GITHUB_USERNAME = "your-username"
GITHUB_REPO = "your-speed-test-files"
GITHUB_BRANCH = "main"

# 测试持续时间阈值
BASE_TEST_DURATION = 8.0  # 秒
ADDITIONAL_TEST_DURATION =  4.0  # 秒

# 默认端点
DEFAULT_UPLOAD_URL = "your-upload-endpoint"
DEFAULT_LATENCY_URL = "your-latency-endpoint"

贡献

这是一个实验项目,欢迎贡献:

  1. 问题:报告错误或请求功能
  2. 拉取请求:提交代码改进
  3. 文档:帮助改进此README
  4. 测试:在不同的网络条件和CDN下进行测试

许可证

本项目根据MIT许可证发布 - 查看LICENSE文件以获取详细信息。

致谢

  • MCP框架维护者,为标准化AI工具交互做出了贡献
  • 模型上下文协议社区,为文档和示例做出了贡献