mcp-network-tester


Namemcp-network-tester JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryMCP server providing TCP connectivity checks, DNS resolve, and system ping
upload_time2025-08-15 08:10:16
maintainerNone
docs_urlNone
authorYucen
requires_python>=3.9
licenseMIT
keywords mcp model context protocol network ping tcp dns
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MCP 网络连通性测试服务(Python)

该服务提供在模型调试与运维排障场景中常用的网络连通性测试能力:TCP 连通检查、次数统计的“TCP ping”、DNS 解析以及系统 `ping`。

## 安装

- 从源码:
  ```bash
  pip install -r requirements.txt
  ```
- 从 PyPI(发布后):
  ```bash
  pip install mcp-network-tester
  ```

> 建议使用虚拟环境。

## 运行(命令行)
安装后将提供命令 `mcp-network-tester`,以 stdio 方式启动 MCP 服务器:
```bash
mcp-network-tester
```

## 运行(配合 MCP Inspector)
1. 启动 Inspector:
   ```bash
   npx @modelcontextprotocol/inspector
   ```
2. 在 Inspector 中添加自定义服务器:
   - Command: `mcp-network-tester`
3. 连接后即可在 Tools 面板看到以下工具:`tcp_check`、`tcp_ping`、`dns_resolve`、`system_ping`。

## 将其接入到支持 MCP 的客户端
以通用配置为例:
```json
{
  "mcpServers": {
    "fetch": {
      "args": [
        "-m",
        "mcp_network_tester"
      ],
      "command": "python"
    }
  }
}
```

## 工具说明
- `tcp_check(host: str, port: int, timeout_seconds: float = 2.0)`
  - 单次 TCP 连接测试,返回 JSON 字符串,含 `reachable` 与 `latency_ms`。
- `tcp_ping(host: str, port: int, count: int = 4, interval_seconds: float = 0.2, timeout_seconds: float = 2.0)`
  - 多次 TCP 连接测试,统计成功率与时延(适合排查本地到 Docker 暴露端口是否可达)。
- `dns_resolve(host: str)`
  - 解析 A/AAAA 记录,返回所有地址。
- `system_ping(target: str, count: int = 4, timeout_seconds: float = 2.0, size: int = 32)`
  - 调用系统 `ping`(Windows 与 Linux/macOS 自动适配)。可能需要权限。

## 发布到 PyPI(公共平台)
1. 安装构建与发布工具:
   ```bash
   pip install build twine
   ```
2. 构建分发包:
   ```bash
   python -m build
   ```
   生成 `dist/*.tar.gz` 与 `dist/*.whl`。
3. 上传到 TestPyPI 验证:
   ```bash
   twine upload -r testpypi dist/*
   ```
4. 上传到正式 PyPI:
   ```bash
   twine upload dist/*
   ```

> 请在 `pyproject.toml` 中更新作者信息、主页链接等元数据;确保 `LICENSE` 为你选择的许可协议(默认 MIT)。版本号按语义化版本管理递增。

## 注意
- `system_ping` 依赖系统命令;若不可用,将返回错误信息。
- TCP 检测依赖目标服务监听状态与本机出站规则,失败时请结合 DNS、系统防火墙与容器网络配置综合排查。

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-network-tester",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "MCP, Model Context Protocol, network, ping, tcp, dns",
    "author": "Yucen",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/b3/44/c09f36aea353f10bdff5ce39f62db8704116b46da6c8b7ed25ada90525da/mcp_network_tester-0.1.0.tar.gz",
    "platform": null,
    "description": "# MCP \u7f51\u7edc\u8fde\u901a\u6027\u6d4b\u8bd5\u670d\u52a1\uff08Python\uff09\r\n\r\n\u8be5\u670d\u52a1\u63d0\u4f9b\u5728\u6a21\u578b\u8c03\u8bd5\u4e0e\u8fd0\u7ef4\u6392\u969c\u573a\u666f\u4e2d\u5e38\u7528\u7684\u7f51\u7edc\u8fde\u901a\u6027\u6d4b\u8bd5\u80fd\u529b\uff1aTCP \u8fde\u901a\u68c0\u67e5\u3001\u6b21\u6570\u7edf\u8ba1\u7684\u201cTCP ping\u201d\u3001DNS \u89e3\u6790\u4ee5\u53ca\u7cfb\u7edf `ping`\u3002\r\n\r\n## \u5b89\u88c5\r\n\r\n- \u4ece\u6e90\u7801\uff1a\r\n  ```bash\r\n  pip install -r requirements.txt\r\n  ```\r\n- \u4ece PyPI\uff08\u53d1\u5e03\u540e\uff09\uff1a\r\n  ```bash\r\n  pip install mcp-network-tester\r\n  ```\r\n\r\n> \u5efa\u8bae\u4f7f\u7528\u865a\u62df\u73af\u5883\u3002\r\n\r\n## \u8fd0\u884c\uff08\u547d\u4ee4\u884c\uff09\r\n\u5b89\u88c5\u540e\u5c06\u63d0\u4f9b\u547d\u4ee4 `mcp-network-tester`\uff0c\u4ee5 stdio \u65b9\u5f0f\u542f\u52a8 MCP \u670d\u52a1\u5668\uff1a\r\n```bash\r\nmcp-network-tester\r\n```\r\n\r\n## \u8fd0\u884c\uff08\u914d\u5408 MCP Inspector\uff09\r\n1. \u542f\u52a8 Inspector\uff1a\r\n   ```bash\r\n   npx @modelcontextprotocol/inspector\r\n   ```\r\n2. \u5728 Inspector \u4e2d\u6dfb\u52a0\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\uff1a\r\n   - Command: `mcp-network-tester`\r\n3. \u8fde\u63a5\u540e\u5373\u53ef\u5728 Tools \u9762\u677f\u770b\u5230\u4ee5\u4e0b\u5de5\u5177\uff1a`tcp_check`\u3001`tcp_ping`\u3001`dns_resolve`\u3001`system_ping`\u3002\r\n\r\n## \u5c06\u5176\u63a5\u5165\u5230\u652f\u6301 MCP \u7684\u5ba2\u6237\u7aef\r\n\u4ee5\u901a\u7528\u914d\u7f6e\u4e3a\u4f8b\uff1a\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"fetch\": {\r\n      \"args\": [\r\n        \"-m\",\r\n        \"mcp_network_tester\"\r\n      ],\r\n      \"command\": \"python\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## \u5de5\u5177\u8bf4\u660e\r\n- `tcp_check(host: str, port: int, timeout_seconds: float = 2.0)`\r\n  - \u5355\u6b21 TCP \u8fde\u63a5\u6d4b\u8bd5\uff0c\u8fd4\u56de JSON \u5b57\u7b26\u4e32\uff0c\u542b `reachable` \u4e0e `latency_ms`\u3002\r\n- `tcp_ping(host: str, port: int, count: int = 4, interval_seconds: float = 0.2, timeout_seconds: float = 2.0)`\r\n  - \u591a\u6b21 TCP \u8fde\u63a5\u6d4b\u8bd5\uff0c\u7edf\u8ba1\u6210\u529f\u7387\u4e0e\u65f6\u5ef6\uff08\u9002\u5408\u6392\u67e5\u672c\u5730\u5230 Docker \u66b4\u9732\u7aef\u53e3\u662f\u5426\u53ef\u8fbe\uff09\u3002\r\n- `dns_resolve(host: str)`\r\n  - \u89e3\u6790 A/AAAA \u8bb0\u5f55\uff0c\u8fd4\u56de\u6240\u6709\u5730\u5740\u3002\r\n- `system_ping(target: str, count: int = 4, timeout_seconds: float = 2.0, size: int = 32)`\r\n  - \u8c03\u7528\u7cfb\u7edf `ping`\uff08Windows \u4e0e Linux/macOS \u81ea\u52a8\u9002\u914d\uff09\u3002\u53ef\u80fd\u9700\u8981\u6743\u9650\u3002\r\n\r\n## \u53d1\u5e03\u5230 PyPI\uff08\u516c\u5171\u5e73\u53f0\uff09\r\n1. \u5b89\u88c5\u6784\u5efa\u4e0e\u53d1\u5e03\u5de5\u5177\uff1a\r\n   ```bash\r\n   pip install build twine\r\n   ```\r\n2. \u6784\u5efa\u5206\u53d1\u5305\uff1a\r\n   ```bash\r\n   python -m build\r\n   ```\r\n   \u751f\u6210 `dist/*.tar.gz` \u4e0e `dist/*.whl`\u3002\r\n3. \u4e0a\u4f20\u5230 TestPyPI \u9a8c\u8bc1\uff1a\r\n   ```bash\r\n   twine upload -r testpypi dist/*\r\n   ```\r\n4. \u4e0a\u4f20\u5230\u6b63\u5f0f PyPI\uff1a\r\n   ```bash\r\n   twine upload dist/*\r\n   ```\r\n\r\n> \u8bf7\u5728 `pyproject.toml` \u4e2d\u66f4\u65b0\u4f5c\u8005\u4fe1\u606f\u3001\u4e3b\u9875\u94fe\u63a5\u7b49\u5143\u6570\u636e\uff1b\u786e\u4fdd `LICENSE` \u4e3a\u4f60\u9009\u62e9\u7684\u8bb8\u53ef\u534f\u8bae\uff08\u9ed8\u8ba4 MIT\uff09\u3002\u7248\u672c\u53f7\u6309\u8bed\u4e49\u5316\u7248\u672c\u7ba1\u7406\u9012\u589e\u3002\r\n\r\n## \u6ce8\u610f\r\n- `system_ping` \u4f9d\u8d56\u7cfb\u7edf\u547d\u4ee4\uff1b\u82e5\u4e0d\u53ef\u7528\uff0c\u5c06\u8fd4\u56de\u9519\u8bef\u4fe1\u606f\u3002\r\n- TCP \u68c0\u6d4b\u4f9d\u8d56\u76ee\u6807\u670d\u52a1\u76d1\u542c\u72b6\u6001\u4e0e\u672c\u673a\u51fa\u7ad9\u89c4\u5219\uff0c\u5931\u8d25\u65f6\u8bf7\u7ed3\u5408 DNS\u3001\u7cfb\u7edf\u9632\u706b\u5899\u4e0e\u5bb9\u5668\u7f51\u7edc\u914d\u7f6e\u7efc\u5408\u6392\u67e5\u3002\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "MCP server providing TCP connectivity checks, DNS resolve, and system ping",
    "version": "0.1.0",
    "project_urls": {
        "Repository": "https://gitee.com/lyc067/Isitconnect"
    },
    "split_keywords": [
        "mcp",
        " model context protocol",
        " network",
        " ping",
        " tcp",
        " dns"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3232d4c340690bdccf9dea8910effc76b06cd1289d1c764f346c50f35e049b3e",
                "md5": "14da7af4d779cc355079159fcff2ad33",
                "sha256": "69e015d925ad6e1972a6c252aead4cfbf5940981fe1960ccade7764fd90e254a"
            },
            "downloads": -1,
            "filename": "mcp_network_tester-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "14da7af4d779cc355079159fcff2ad33",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 6164,
            "upload_time": "2025-08-15T08:10:14",
            "upload_time_iso_8601": "2025-08-15T08:10:14.825102Z",
            "url": "https://files.pythonhosted.org/packages/32/32/d4c340690bdccf9dea8910effc76b06cd1289d1c764f346c50f35e049b3e/mcp_network_tester-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b344c09f36aea353f10bdff5ce39f62db8704116b46da6c8b7ed25ada90525da",
                "md5": "824557c2d7925a43c5e8e52ab9d8a83f",
                "sha256": "6024086a351c8b18b5ca3a8a949f4bc6023479a16ae0795b3af2bf5e6fe08a02"
            },
            "downloads": -1,
            "filename": "mcp_network_tester-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "824557c2d7925a43c5e8e52ab9d8a83f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 5581,
            "upload_time": "2025-08-15T08:10:16",
            "upload_time_iso_8601": "2025-08-15T08:10:16.236294Z",
            "url": "https://files.pythonhosted.org/packages/b3/44/c09f36aea353f10bdff5ce39f62db8704116b46da6c8b7ed25ada90525da/mcp_network_tester-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-15 08:10:16",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "mcp-network-tester"
}
        
Elapsed time: 1.72649s