A modern MCP server for TCP ping testing via pingloc.com
Project description
tcpping MCP Server (stdio)
Minimal TCP latency probe server for MCP clients (e.g. GitHub Copilot Agents) using Playwright + FastMCP.
0.1.4: Added resilient fallback parsing (summary pattern search + heuristic row scan) and debug artifacts when structure changes on pingloc.com.
1. Add to your MCP client config
Example (mcp.json / Copilot Agents user settings):
"tcpping-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"tcpping-mcp-server"
]
}
uvx will fetch & run the published script (or local cache) by name. You can also swap for python -m tcpping_mcp_stdio.modern_server if installed in a venv.
2. Available tool
Tool name: tcpping_run
Parameters (all optional unless noted):
- target (str, required) – domain or URL (scheme optional)
- port (int, default 443)
- timeout (float, default 120)
- retries (int, default 1)
- headless (bool, default true)
- browser_channel (str, default "msedge")
- debug (bool, default false) – dump HTML/screenshot if no rows
- summary_only (bool, default false) – return compact summary
3. Example call (conceptual JSON-RPC)
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "tcpping_run",
"arguments": { "target": "example.com", "summary_only": true }
}
}
4. Local install (optional)
pip install tcpping-mcp-server
tcpping-mcp-server # or: python -m tcpping_mcp_stdio.modern_server
5. Playwright browser dependency
First run will auto-download browsers when using uvx or after pip install. If needed manually:
playwright install chromium
6. Output
Returns a JSON string (you may need to parse once):
{
"host": "example.com:443",
"summary": { ... },
"probes": [ ... ],
"probe_count": 25,
"timeouts": 0,
"duration_sec": 12.34
}
7. Debugging
Set debug=true to dump HTML + screenshot into tcpping/debug/ when no probe rows captured.
Concise goal: drop the snippet above into your MCP client config and start using tcpping_run.
8. Release / Publish (maintainers)
Workflow using uv:
- Bump version in
pyproject.tomlandsrc/tcpping_mcp_stdio/modern_server.py(theVERSIONconstant). Use semver. - Clean previous builds (optional):
Remove-Item dist -Recurse -Force -ErrorAction SilentlyContinue
- Build artifacts:
uv build
- (Optional) TestPyPI dry run:
$Env:TEST_PYPI_API_TOKEN = 'pypi-AgENdGVzdC4uLg==' # your TestPyPI token uv publish --repository testpypi --token $Env:TEST_PYPI_API_TOKEN
- Publish to PyPI:
$Env:PYPI_API_TOKEN = 'pypi-AgEN...' # never commit this uv publish --token $Env:PYPI_API_TOKEN
- Verify installation:
uvx tcpping-mcp-server --help
- Tag in git (optional but recommended):
git tag v<version> git push origin v<version>
If uv publish reports missing token, ensure the environment variable name matches the one you pass after --token.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tcpping_mcp_server-0.1.5.tar.gz.
File metadata
- Download URL: tcpping_mcp_server-0.1.5.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f43c7cc476035b06cc23db4def19bf072a0294460c66f8707df89ee78853ed0e
|
|
| MD5 |
6888a565fc5a44c969fd5c2e314fce70
|
|
| BLAKE2b-256 |
bc6cd01cf04fdc0c7b279cb7c69f92c48d4973a159d6a329587364d188dfe28d
|
File details
Details for the file tcpping_mcp_server-0.1.5-py3-none-any.whl.
File metadata
- Download URL: tcpping_mcp_server-0.1.5-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b030aad1c02a04861fa5cd982f62e6534d14f7d388c1f373bfcada566d216f84
|
|
| MD5 |
ee9999845ad83ce1a0c5ec7439e1a805
|
|
| BLAKE2b-256 |
b516513e11ffaf6451cb611806a2a4455e626196045d486d3c113bbc00f2b988
|