Metadata-Version: 2.5
Name: scapy-mcp
Version: 0.1.0
Summary: MCP server wrapping Scapy — packet crafting, dissection, and live capture
Project-URL: Homepage, https://github.com/lesleslie/scapy-mcp
Project-URL: Repository, https://github.com/lesleslie/scapy-mcp
Author-email: Les Leslie <les@wedgwoodwebworks.com>
License-Expression: BSD-3-Clause
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.14
Requires-Dist: fastmcp>=2.12.0
Requires-Dist: httpx2>=0.28.1
Requires-Dist: mcp-common>=0.18.0
Requires-Dist: oneiric>=0.16.0
Requires-Dist: pydantic-settings>=2.1.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: scapy>=2.5.0
Provides-Extra: dev
Requires-Dist: bandit>=1.7.9; extra == 'dev'
Requires-Dist: mypy>=1.9.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.4.8; extra == 'dev'
Description-Content-Type: text/markdown

# scapy-mcp

> **Scaffold status: PyPI name reservation.** This package is a placeholder scaffold to claim
> the `scapy-mcp` name on PyPI. The MCP server is not yet implemented.

MCP server wrapping [Scapy](https://scapy.net/) — interactive packet
manipulation library. Provides access to:

- **Packet crafting** — build L2/L3/L4 packets from Pythonic layers
- **Dissection** — decode captured packet bytes into structured summaries
- **Live capture** — sniff interfaces with optional BPF filters
- **PCAP I/O** — read and write `.pcap` / `.pcapng` files
- **Protocol layers** — TCP, UDP, ICMP, ARP, DNS, TLS, raw

## Reserve the PyPI name

```bash
cd /Users/les/Projects/scapy-mcp
uv build
uv publish  # uses UV_PUBLISH_TOKEN from env
```

The package name `scapy-mcp` is currently free on PyPI (verified 2026-08-31).
Publishing a placeholder 0.1.0 release locks the name.

## Connection to flowscape

The `flowscape` design spec
(`docs/superpowers/specs/2026-08-31-flowscape-design.md`) explicitly lists
`scapy-mcp` as a future integration under **Out of scope / future work**:

> scapy-mcp / unifi-mcp integration — Enrichment plugins for `heuristics.py`
> / `graph.py` — v2+

This scaffold is the name-reservation placeholder for that v2 integration.

## Architecture (planned)

Mirrors the `raindropio-mcp` pattern in this ecosystem:

- `scapy` as the core packet manipulation dependency
- `fastmcp` for the MCP server surface (tools = scapy operations)
- `oneiric` for layered config (`settings/scapy-mcp.yaml`, `local.yaml`,
  env vars) — configures default interface, capture mode (live vs offline),
  optional `SCAPY_MCP_PRIVILEGED_HELPER` for `/dev/bpf*` ACLs
- `mcp-common` for bootstrap, health endpoints
- `pydantic`/`pydantic-settings` for typed config models
- Live capture requires root or a ChmodBPF-style helper (same constraint
  documented for flowscape)

## Status

| Phase | State |
|---|---|
| PyPI name reservation | **pending** (run `uv publish`) |
| Spec / plan | not written |
| Implementation | not started |
| Tests | not started |

## License

BSD-3-Clause.