yorishiro-proxyBLOCK
AI-native MITM proxy — MCP server for traffic interception, recording & replay
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
AI-First MITM Proxy Tool A network proxy for AI agents — intercept, record, and replay traffic through MCP.
日本語
Beta — yorishiro-proxy is under active development. APIs, configuration formats, and protocol behavior may change between minor versions. Non-HTTP/HTTPS protocols (gRPC, WebSocket, Raw TCP, SOCKS5) are at an earlier stage of maturity and may have known limitations.
Yorishiro Proxy runs as an MCP (Model Context Protocol) server, giving AI agents full control over proxy operations through a typed-per-protocol MCP tool surface. Designed for use with Claude Code and other MCP-compatible agents, it enables automated security testing workflows without manual UI interaction. An embedded Web UI is also available for visual inspection and interactive use.
Features
- Traffic Interception & Recording -- MITM proxy with automatic CA certificate management
- Per-Protocol Resend -- Replay recorded flows with typed schemas (`resend
f6fea298bc9bOBSERVED · 2026-10-10Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add yorishiro-proxy-webui -- npx -y [email protected]
{
"mcpServers": {
"yorishiro-proxy-webui": {
"command": "npx",
"args": [
"-y",
"[email protected]"
]
}
}
}Exposed tools (26)
25 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
audit-auth | read | Audit a recorded HTTP flow for authentication-bypass and role-downgrade / privilege-escalation flaws by replacing the credential header value. |
capture-traffic | read | Capture HTTP / WebSocket / gRPC traffic via playwright-cli through yorishiro-proxy with a scoped capture filter; obtains flow_ids for verification playbooks. |
fuzz-endpoint | read | General-purpose fuzz workflow for a recorded request; picks fuzz_http / fuzz_ws / fuzz_grpc / fuzz_raw based on the captured flow |
replay-with-mods | read | Single-shot replay of a recorded request using resend_http / resend_ws / resend_grpc / resend_raw with selective header / body modifications. |
schema_configure | read | JSON Schema for the configure tool input. |
schema_fuzz_grpc | read | JSON Schema for the fuzz_grpc tool input. |
schema_fuzz_http | read | JSON Schema for the fuzz_http tool input. |
schema_fuzz_raw | read | JSON Schema for the fuzz_raw tool input. |
schema_fuzz_ws | read | JSON Schema for the fuzz_ws tool input. |
schema_grpc_schema | read | JSON Schema for the grpc_schema tool input. |
schema_intercept | read | JSON Schema for the intercept tool input. |
schema_macro | read | JSON Schema for the macro tool input. |
schema_manage | read | JSON Schema for the manage tool input. |
schema_plugin_introspect | read | JSON Schema for the plugin_introspect tool input. |
schema_proxy_start | write | JSON Schema for the proxy_start tool input. |
schema_query | read | JSON Schema for the query tool input. |
schema_resend_grpc | read | JSON Schema for the resend_grpc tool input. |
schema_resend_http | read | JSON Schema for the resend_http tool input. |
schema_resend_raw | read | JSON Schema for the resend_raw tool input. |
schema_resend_ws | read | JSON Schema for the resend_ws tool input. |
schema_security | read | JSON Schema for the security tool input. |
stateful-fuzz-loop | read | Drive setup → resend_http → teardown around a stateful endpoint that cannot be safely fuzzed in bulk (repeated DELETE, single-use tokens, rotating CSRF). |
verify-csrf | read | Verify whether a state-changing HTTP flow validates its CSRF token by emptying, forging, or removing the token header and observing acceptance. |
verify-idor | read | Verify Insecure Direct Object Reference on a recorded HTTP flow — sweep candidate ids in body or path and compare authenticated vs unauthorised access. |
verify-sqli | read | Verify SQL injection on a recorded HTTP flow with time-based / error-based / UNION techniques; method-aware safety guardrails block destructive payloads. |
verify-xss | read | Verify reflected Cross-Site Scripting on a recorded HTTP flow using YP_-prefixed marker payloads — no scripts execute; only detects unescaped reflection. |
Trust audit
BLOCKgrade D · trust 62/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (9 observation(s))
- Network
- declared (8 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
5. **Never** read secrets (`.env*`, `~/.ssh`, CA keys) or print tokens.
const secret = "SENTINEL-SESSION-VALUE-71bd"
streamable-http
.golangci-lint-version
.golangci.yml
.worktreeinclude
Name: "eval() call",
[]byte(`eval(userInput)`))
t.Fatal("expected violation for eval()")-package-json ../../web/package.json \
import { useMcpClient } from "../../lib/mcp/index.js";import type { HookConfig, HooksInput, MacrosEntry } from "../../lib/mcp/types.js";import { Spinner } from "../../components/ui/Spinner.js";import type { SecurityGetBudgetResult } from "../../lib/mcp/types.js";| deny `{hostname: "169.254.169.254", schemes: ["http"]}` | rule stops matching; evaluation falls through to the allow check, which is empty | **BYPASS** — cloud metadata reachable |{"hostname": "169.254.169.254"}{"hostname": "169.254.169.254"}if policy.Denies[1].Hostname != "169.254.169.254" {t.Errorf("Denies[1].Hostname = %q, want %q", policy.Denies[1].Hostname, "169.254.169.254")WebUI available url=http://127.0.0.1:3000/
WebUI available url=http://127.0.0.1:3000/
"--proxy", "http://127.0.0.1:"+strconv.Itoa(proxyPort),
clientA.Write([]byte("GET http://127.0.0.1:1/ HTTP/1.1\r\nHost: 127.0.0.1:1\r\n\r\n"))u1, _ := url.Parse("http://127.0.0.1:8080")t.Errorf("Marshal output should include upstream_insecure_skip_verify=false (tri-state preserves explicit enforce), got %s", string(data4))Gates applied: no_behavioural_pass.
f6fea298bc9bfull audit observations/trust-audit/mcp-server/usk6666__yorishiro-proxy.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-10 | f6fea298bc9b | BLOCK | D | 62 | first audit |
Questions
What is the yorishiro-proxy MCP server?
AI-native MITM proxy — MCP server for traffic interception, recording & replay
What tools does yorishiro-proxy expose?
26 in total: 25 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is yorishiro-proxy safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (62/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.
What credentials does yorishiro-proxy need?
No credential environment variables were found in its source, so it appears to need none.
How does yorishiro-proxy run?
It speaks streamable-http, so it runs as a service you connect to over the network. It is published on npm as yorishiro-proxy-webui at 0.0.0.
How current is this page?
The grade is for one exact copy of the source (f6fea298bc9b), read on 2026-10-10. The repository is watched and re-audited when it changes.