har2mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
har2mcp
Turn an authorized browser network recording into an offline API exploration kit: observed endpoint documentation, a recorded-response client, and an MCP server for AI-assisted inspection.
Early alpha: 0.1.0a1. Live HTTP is intentionally unavailable in this release. This tool does not reconstruct a backend or prove that a captured API contract is complete. There are no claimed users, adoption metrics or sponsorship approvals.
Who is it for?
Developers exploring an API they own or are authorized to inspect.
Testers who need local recorded responses without calling the original service.
MCP developers prototyping an integration from a synthetic or approved recording.
Related MCP server: Clarity MCP Server
Install from source
Requires Python 3.11+. No Claude subscription or API key is needed. The package is distributed from this GitHub repository; no PyPI publication is claimed.
git clone https://github.com/jaspreet9kaur/har2mcp.git
cd har2mcp
python -m venv .venvActivate the virtual environment:
# Linux / macOS
. .venv/bin/activate# Windows PowerShell: use its Python directly; no activation-policy changes needed
.venv\Scripts\python.exe -m pip install .
.venv\Scripts\python.exe -m har2mcp --helpOn Linux/macOS, install with python -m pip install .. For the examples below, use the virtual environment's Python (or .venv\Scripts\python.exe on Windows). Installation downloads dependencies; processing a capture and replaying it are offline.
Try the synthetic example
python -m har2mcp inspect tests/fixtures/sample_api.synthetic.har --include-graphql
python -m har2mcp compile tests/fixtures/sample_api.synthetic.har --out demo-bundle --include-graphql
python -m har2mcp serve demo-bundle --mode cassetteChoose a new output directory each time. Compilation refuses an existing directory. The stdio server waits for an MCP client; it is not an HTTP website. Stop it with Ctrl+C when finished.
Generated files
File | Purpose |
evidence-model.json | Observed endpoints, route guesses, source record numbers and limitations |
cassette.json | Sanitized recorded requests/responses for offline matching |
openapi.json | OpenAPI 3.1-shaped documentation inferred from the samples |
sdk.ts | Standalone TypeScript client for offline cassette replay |
mcp_server.py | Entry point using the installed official Python MCP SDK |
.env.example | Blank authentication hints observed in the recording; unused by this offline version |
graphql-operations.json | Optional GraphQL operation evidence and inferred schemas |
The generated server depends on the installed har2mcp package. It is not a standalone executable. The TypeScript client accepts the records in cassette.json through its cassetteEntries option; it does not load files or contact a server automatically.
Connect an MCP client
For a client that accepts a stdio command configuration:
{
"mcpServers": {
"har2mcp-demo": {
"command": "/absolute/path/to/har2mcp/.venv/bin/python",
"args": ["-m", "har2mcp", "serve", "/absolute/path/to/demo-bundle", "--mode", "cassette"]
}
}
}Replace both paths with your own; on Windows use the .venv\\Scripts\\python.exe path with JSON-escaped backslashes. Configuration layouts differ by client. Returned captured content is untrusted data, not instructions for the assistant to obey.
Replay and simulation
Default replay requires matching origin, method, tool, path, query and parsed request body. If no recorded request matches, it returns matched: false and a local 404 result. Repeated identical requests select the earliest recorded response. No live request is sent, and recorded POST/DELETE responses do not change server state.
--mode simulated-state is an optional, heuristic in-memory CRUD experiment. Every response is labeled simulated-in-memory. Its collection grouping is simplistic and does not reproduce backend authorization, persistence, nesting, validation or business rules. Use cassette mode when fidelity to recorded requests matters.
Other commands
python -m har2mcp sanitize approved.har --out sanitized.json
python -m har2mcp diff old.har new.harAn endpoint absent from a second capture is reported as unobserved, not proven deleted. Origins are kept distinct. Captures with conflicting method/path combinations across origins must be split before OpenAPI compilation; they are not silently overwritten.
Privacy and limits
Use synthetic data for shared examples. HAR files can contain session cookies, API keys, personal records, signed URLs and secrets embedded in paths, ordinary-looking strings or GraphQL text. Heuristic redaction removes known patterns and sensitive field names; it does not guarantee a shareable or anonymized artifact. Review every generated file before sharing. Never commit real captures or use privileged production sessions for demonstrations.
Input limits include 50 MiB per HAR, 5,000 exchanges, 2 MiB bodies, bounded JSON nesting and 32 path segments. These are parser bounds, not a hard memory guarantee on your machine. HTML, multipart, binary/base64 and unsupported bodies are withheld. Route and schema inference remain guesses from finite samples. Review SECURITY.md and the baseline review.
Tests and contribution
See CONTRIBUTING.md for the reproducible isolated checks. The CI container blocks network access during test/build execution, mounts source read-only, starts with an explicit environment and limits CPU, memory, processes, files and scratch disk. Image/dependency provisioning occurs separately with network access. A Python socket monkeypatch is not treated as OS isolation.
Open a bug report using a minimal synthetic fixture. Useful contributions include inference false-positive fixes, better sanitization tests and clearer examples. See the roadmap.
License and provenance
MIT; existing notices are preserved. The user's original local implementation was adapted for this public alpha. morluto/rea was a conceptual reference reported by that implementation; this publication does not claim a new upstream code audit or inherit another project's adoption. See provenance.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Experimental MCP server for current empirical verification of explicit public HTTPS endpoint claims.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
AI-native mock API server with MCP. Create REST/SOAP mocks from Claude, Cursor, or Windsurf.
Turn any public website into an MCP server for agents to search, read and navigate.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceCaptures browser network traffic, analyzes API patterns, and exposes analysis tools through an MCP server for AI-assisted workflows.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to call web APIs extracted from HAR files, turning browser traffic into MCP tools.28 npm1MIT
- AlicenseNot gradedqualityDmaintenanceProfessional MCP server for HAR (HTTP Archive) network captures, enabling AI agents to extract endpoints, detect secrets, generate code, and export to Postman/OpenAPI.23 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that drives a headless or interactive Playwright browser and records every HTTP request/response into a shared web-archive store, making captured traffic searchable.-