{"id":37528592,"url":"https://github.com/usestring/powhttp-mcp","last_synced_at":"2026-03-06T06:18:22.464Z","repository":{"id":332534103,"uuid":"1134079155","full_name":"usestring/powhttp-mcp","owner":"usestring","description":"MCP server enabling agents to debug HTTP requests better (using powhttp)","archived":false,"fork":false,"pushed_at":"2026-01-27T17:01:21.000Z","size":2856,"stargazers_count":43,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-28T03:41:05.434Z","etag":null,"topics":["antibot-detection","charles-proxy","debugging","debugging-proxy","http","mcp","mcp-server","mitm","mitmproxy","proxy","scraping","scraping-tool","tls"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/usestring.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-14T08:09:51.000Z","updated_at":"2026-01-28T03:18:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"7e503122-cd76-4ad5-a17c-3a11217ea637","html_url":"https://github.com/usestring/powhttp-mcp","commit_stats":null,"previous_names":["usestring/powhttp-mcp"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/usestring/powhttp-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usestring%2Fpowhttp-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usestring%2Fpowhttp-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usestring%2Fpowhttp-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usestring%2Fpowhttp-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usestring","download_url":"https://codeload.github.com/usestring/powhttp-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usestring%2Fpowhttp-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30164542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T04:43:31.446Z","status":"ssl_error","status_checked_at":"2026-03-06T04:40:30.133Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antibot-detection","charles-proxy","debugging","debugging-proxy","http","mcp","mcp-server","mitm","mitmproxy","proxy","scraping","scraping-tool","tls"],"created_at":"2026-01-16T08:27:48.045Z","updated_at":"2026-03-06T06:18:22.404Z","avatar_url":"https://github.com/usestring.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# powhttp-mcp\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/hero.png\" alt=\"powhttp-mcp\" width=\"600\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pkg.go.dev/github.com/usestring/powhttp-mcp\"\u003e\u003cimg src=\"https://pkg.go.dev/badge/github.com/usestring/powhttp-mcp.svg\" alt=\"Go Reference\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/usestring/powhttp-mcp/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/usestring/powhttp-mcp\" alt=\"GitHub Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-AGPL%20v3-blue.svg\" alt=\"License: AGPL v3\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  An MCP server that gives AI assistants X-ray vision into HTTP traffic captured by \u003ca href=\"https://powhttp.com\"\u003epowhttp\u003c/a\u003e.\n\u003c/p\u003e\n\n---\n\n## See it in action\n\nUsing `/generate_scraper` to build a BMW car listing monitor:\n\nhttps://github.com/user-attachments/assets/be098e9d-d700-491c-ae7f-5afb12732728\n\n---\n\n## Features\n\n- **HTTP Traffic Analysis** - Search, inspect, and analyze captured HTTP requests/responses\n- **Anti-Bot Detection** - Compare browser vs program traffic to identify detection vectors\n- **Fingerprinting** - Generate TLS (JA3/JA4) and HTTP/2 fingerprints\n- **API Mapping** - Cluster and catalog API endpoints from captured traffic\n- **Flow Tracing** - Trace related requests (redirects, dependent calls)\n- **Schema Validation** - Validate response bodies against Go structs, Zod, or JSON Schema\n- **Scraper Generation** - Generate PoC Go scrapers from captured traffic\n\nSchema validation in action - correcting data structures for edge cases:\n\nhttps://github.com/user-attachments/assets/1156c537-70ab-4179-ad4a-c148988ac503\n\n---\n\n## Installation\n\nInstall via `go install`:\n\n```bash\ngo install github.com/usestring/powhttp-mcp/cmd/powhttp-mcp@latest\n```\n\nOr install a specific version:\n\n```bash\ngo install github.com/usestring/powhttp-mcp/cmd/powhttp-mcp@v1.0.0\n```\n\n---\n\n## Usage\n\n### Connecting to Cursor\n\nAdd to your `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"powhttp\": {\n      \"command\": \"powhttp-mcp\",\n      \"env\": {\n        \"POWHTTP_BASE_URL\": \"http://localhost:7777\"\n      }\n    }\n  }\n}\n```\n\n### Connecting to Claude Desktop\n\nAdd to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):\n\n```json\n{\n  \"mcpServers\": {\n    \"powhttp\": {\n      \"command\": \"powhttp-mcp\",\n      \"env\": {\n        \"POWHTTP_BASE_URL\": \"http://localhost:7777\"\n      }\n    }\n  }\n}\n```\n\nThe generated scraper running successfully:\n\nhttps://github.com/user-attachments/assets/52b30cbf-7c66-40b1-a3fe-9c12d37ece11\n\n---\n\n## MCP Tools\n\npowhttp-mcp provides 12 tools for HTTP traffic analysis:\n\n| Tool | Description |\n|------|-------------|\n| `powhttp_sessions_list` | List all sessions with entry counts |\n| `powhttp_session_active` | Get the currently active session |\n| `powhttp_search_entries` | Search entries with filters and free text |\n| `powhttp_get_entry` | Get full details of a specific entry |\n| `powhttp_get_tls` | Get TLS handshake events for a connection |\n| `powhttp_get_http2_stream` | Get HTTP/2 frame details for a stream |\n| `powhttp_fingerprint` | Generate HTTP, TLS, and HTTP/2 fingerprints |\n| `powhttp_diff_entries` | Compare two entries to find detection differences |\n| `powhttp_extract_endpoints` | Cluster entries into endpoint groups |\n| `powhttp_describe_endpoint` | Generate detailed endpoint description |\n| `powhttp_trace_flow` | Trace related requests around a seed entry |\n| `powhttp_validate_schema` | Validate entry bodies against a schema |\n\nSee [internal/mcp/README.md](internal/mcp/README.md) for detailed tool documentation.\n\n---\n\n## Environment Variables\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eBasic Configuration\u003c/strong\u003e\u003c/summary\u003e\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `POWHTTP_BASE_URL` | Where to find the powhttp API server | `http://localhost:7777` |\n| `POWHTTP_PROXY_URL` | Proxy URL used by prompts when generating scrapers and debugging | `http://127.0.0.1:8890` |\n| `LOG_LEVEL` | How verbose the logs are: `debug`, `info`, `warn`, `error` | `info` |\n| `LOG_FILE` | File to write logs to (empty = print to console) | `\"\"` (console) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ePerformance Tuning\u003c/strong\u003e\u003c/summary\u003e\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `HTTP_CLIENT_TIMEOUT_MS` | How long to wait for API responses (milliseconds) | `10000` (10s) |\n| `FETCH_WORKERS` | How many entries to fetch in parallel | `16` |\n| `ENTRY_CACHE_MAX_ITEMS` | How many entries to keep in memory cache | `512` |\n| `REFRESH_INTERVAL_MS` | How often to check for new entries (milliseconds) | `2000` (2s) |\n| `REFRESH_TIMEOUT_MS` | Max time for index refresh operation (milliseconds) | `15000` (15s) |\n| `FRESHNESS_THRESHOLD_MS` | Consider data stale after this many milliseconds | `500` (0.5s) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eData Limits\u003c/strong\u003e\u003c/summary\u003e\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `TOOL_MAX_BYTES_DEFAULT` | Max response body size tools return (bytes) | `2000000` (2MB) |\n| `RESOURCE_MAX_BODY_BYTES` | Max body size for MCP resources (bytes) | `65536` (64KB) |\n| `TLS_MAX_EVENTS_DEFAULT` | Max TLS handshake events to return | `200` |\n| `H2_MAX_EVENTS_DEFAULT` | Max HTTP/2 frames to return | `200` |\n| `BOOTSTRAP_TAIL_LIMIT` | Max entries to load when starting up | `20000` |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eLog Rotation\u003c/strong\u003e\u003c/summary\u003e\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `LOG_MAX_SIZE_MB` | Rotate log when it reaches this size (MB) | `10` |\n| `LOG_MAX_BACKUPS` | Keep this many old log files | `5` |\n| `LOG_MAX_AGE_DAYS` | Delete log files older than this (days) | `28` |\n| `LOG_COMPRESS` | Compress old log files (`true`/`false`) | `true` |\n\n\u003c/details\u003e\n\n---\n\n## Development\n\n### Prerequisites\n\n- Go 1.24.5 or later\n- Running powhttp instance\n\n### Building\n\n```bash\ngo build ./cmd/powhttp-mcp\n```\n\n### Testing\n\n```bash\ngo test ./...\n```\n\n---\n\n## Feature Requests \u0026 Bug Reports\n\nHave a feature suggestion or found a bug? We'd love to hear from you!\n\n- **Feature Requests**: Open an [issue](https://github.com/usestring/powhttp-mcp/issues/new) with the `enhancement` label\n- **Bug Reports**: Please include steps to reproduce, your environment details, and relevant logs\n\n---\n\n## Contributing\n\nWe use **squash merges** for all pull requests. When creating a PR, ensure the **PR title** follows [Conventional Commits](https://www.conventionalcommits.org/) format, as it will become the commit message:\n\n**Triggers release:**\n- `feat:` - minor version bump\n- `fix:` - patch version bump\n- `perf:` - patch version bump\n- `revert:` - patch version bump\n- `feat!:` or `BREAKING CHANGE:` - major version bump\n\n**No release:**\n- `docs:`, `chore:`, `refactor:`, `test:`, `style:`, `build:`, `ci:`\n\nVersioning is automated via [release-please](https://github.com/googleapis/release-please).\n\n---\n\n## License\n\nThis project is licensed under the GNU Affero General Public License v3.0 - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## Acknowledgments\n\n**About String** — [String](https://usestring.ai) ( better website coming soon :) ) extracts structured data from any website at scale. We handle all the code and maintenance.\n\nThis project was built during an internal hackathon focused on developer experience tooling. Special thanks to:\n\n- **[Kashif Ghafoor](https://github.com/kashif-ghafoor)** — For his contributions during the hackathon\n- **Florian** — Creator of [powhttp](https://powhttp.com) for implementing the API from a suggestion and being responsive to feedback\n\n---\n\n## Related Projects\n\n- [powhttp](https://powhttp.com) - HTTP traffic capture and analysis\n- [Model Context Protocol](https://modelcontextprotocol.io/) - Protocol specification\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusestring%2Fpowhttp-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusestring%2Fpowhttp-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusestring%2Fpowhttp-mcp/lists"}