Skip to main content

MCP Sniffer captures network traffic between MCP clients and servers and displays it in a web UI.

Project description

MCP Sniffer

MCP Sniffer captures network traffic between MCP clients and servers.

It runs as a reverse proxy between the client and server, capturing request and response payloads that can be visualized in a web UI.

The following diagram shows how MCP Sniffer fits into the MCP Client-Server Model.

Flow Diagram

For the Web UI - Imagine Google Chrome DevTools' Network Tab for Model Context Protocol.

Following is a very early version of it.

Browse Connections

PyPI - License PyPI - Python Version

Install

pipx install mcp-sniffer

Usage

$ mcp-sniffer --help
usage: mcp-sniffer [-h] [--listen-host LISTEN_HOST] [--listen-port LISTEN_PORT] [--upstream-host UPSTREAM_HOST]
                   [--upstream-port UPSTREAM_PORT] [--web-ui-host WEB_UI_HOST] [--web-ui-port WEB_UI_PORT]
                   [--log-level LOG_LEVEL]

MCP Sniffer

options:
  -h, --help            show this help message and exit
  --listen-host LISTEN_HOST
                        Host to listen on (default: env LISTEN_HOST or 127.0.0.1)
  --listen-port LISTEN_PORT
                        Port to listen on (default: env LISTEN_PORT or 3002)
  --upstream-host UPSTREAM_HOST
                        Upstream host (default: env UPSTREAM_HOST or 127.0.0.1)
  --upstream-port UPSTREAM_PORT
                        Upstream port (default: env UPSTREAM_PORT or 3001)
  --web-ui-host WEB_UI_HOST
                        Web UI host (default: env WEB_UI_HOST or 127.0.0.1)
  --web-ui-port WEB_UI_PORT
                        Web UI port (default: env WEB_UI_PORT or 8888)
  --log-level LOG_LEVEL
                        Log level (default: env LOG_LEVEL or INFO)

Run

mcp-sniffer --listen-port 3002 --upstream-port 3001
# INFO:     Started server process [32580]
# INFO:     Waiting for application startup.
# INFO:     Application startup complete.
# 2025-04-19 00:25:04 devmachine.local mcp_sniffer.proxy[32580] INFO Listening on ('127.0.0.1', 3002)...
# INFO:     Uvicorn running on http://127.0.0.1:8888 (Press CTRL+C to quit)
# INFO:     127.0.0.1:52396 - "GET / HTTP/1.1" 200 OK
# INFO:     127.0.0.1:52396 - "GET /assets/index-C93YJcsR.css HTTP/1.1" 200 OK
# INFO:     127.0.0.1:52397 - "GET /assets/index-CwtNIZdB.js HTTP/1.1" 200 OK
# INFO:     127.0.0.1:52397 - "GET /connections HTTP/1.1" 200 OK

Web UI

Visit http://127.0.0.1:8888.

Setup Setup

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

mcp_sniffer-0.1.3.tar.gz (130.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_sniffer-0.1.3-py3-none-any.whl (133.0 kB view details)

Uploaded Python 3

File details

Details for the file mcp_sniffer-0.1.3.tar.gz.

File metadata

  • Download URL: mcp_sniffer-0.1.3.tar.gz
  • Upload date:
  • Size: 130.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mcp_sniffer-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ae9bd74c7c5fd7d845c48c5bd2683af35dd04ef494412361f6777355b52da2bf
MD5 3cd46b1d067b3a86c3588a5775b214c0
BLAKE2b-256 4117df497f5d7cee0f97964f9087441af009f8c5fde6e79270e57307a71d5f61

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_sniffer-0.1.3.tar.gz:

Publisher: create-release.yaml on shivdeepak/mcp-sniffer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_sniffer-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: mcp_sniffer-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 133.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mcp_sniffer-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6ab7433c95ced548caa479d651a86158eae728a5a465662e995fc263b0f9bed9
MD5 e9be81ff4ae5ec73b4735c43aba3cf5b
BLAKE2b-256 3a05044a9c7f1320343799bb887284ae5361f20d8880c97286d8cb559fa09bb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_sniffer-0.1.3-py3-none-any.whl:

Publisher: create-release.yaml on shivdeepak/mcp-sniffer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page