apire
Used as an ecological benchmark target for passive API reverse engineering: apire observes a running Gitea instance's live traffic (without sending any requests of its own) to reconstruct its HTTP endpoints, payload schemas, and protocol surface, then scores the reconstructed version schema against Gitea's own published OpenAPI spec and exports the results as OpenAPI/AsyncAPI artifacts with per-element evidence and confidence levels.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apirestart a labeled capture while I open a project, then export the observed endpoints as OpenAPI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
apire — passive API reverse engineering
Reverse-engineer an application's API by watching it, never by poking it.
apire is an MCP server that observes an application you are authorized to inspect, reconstructs its HTTP endpoints, WebSocket/event surfaces, payload schemas and process architecture from what the application already sends and receives — and attaches a verifiable evidence trail to every single claim it makes.
Most API discovery tools are active: they send requests, replay traffic, fuzz endpoints. apire cannot. Not "is configured not to" — cannot: the engine contains no network-transmission capability, the tool surface has no send action, and a test in CI fails the build if either changes. You can point it at a system without worrying that the tool itself will touch it.
Governing rule: observe applications, never impersonate them.
What it does
You use the application normally. apire watches from the side:
Capture — HTTP through a local passthrough proxy, browser/Chromium traffic through the DevTools attach channel, UDP/OSC traffic, process and module metadata, log files, or HAR/log files you already have.
Label — you mark what you were doing ("idle", "opened the project", "renamed a track"), turning each capture into an experimental condition.
Correlate — the differential engine compares labeled captures and finds what changed only because of what you did: endpoints that appear under one condition and never another, event types that always follow a specific action, and the heartbeat noise that is neither.
Interpret — an LLM proposes names for opaque things (
type: 47→plugin.catalog.updated); deterministic evidence decides what those names are worth. A guess with no evidence behind it stays worth zero, and the graph says so.Export — OpenAPI, AsyncAPI, JSON Schema, a protocol catalog, an architecture map, and a candidate MCP capability surface — each element stamped with its evidence level, confidence, and the captures that justify it.
Related MCP server: MCP-QA
The guarantee: it cannot touch your target
No transmission capability. There is no replay, send, or execute action anywhere in the tool surface, and the engine imports no HTTP client. A CI test scans the engine's code and fails the build on egress capability — that test is the product's constitution in executable form.
Credentials never reach disk. Authorization headers, cookies, tokens and password-shaped values are removed or pseudonymized before a frame is stored. What the store learns is
Authorization: <REDACTED>, never the credential. This is exercised on live third-party traffic in the benchmark suite, with zero-leak assertions.Everything stays local. Captures and findings live in a machine-local store that is gitignored by default.
Authorization is a required input. Starting a capture requires a statement of what you are authorized to inspect; it is recorded with the session and shown in exports.
Read more: docs/security-model.md.
The tools
Seven tools, each an action menu over one domain. Ask your agent in plain language; it calls these.
Tool | What it's for |
| Start/stop/label observation sessions (six capture transports) |
| Browse what was seen; compare and correlate sessions |
| The reconstructed protocol: transports, endpoints, messages, events, schemas, errors |
| Processes, connections, services, trust boundaries |
| Claims with proof, contradictions, unknowns, proposed next experiments, the policy itself |
| Submit interpretations; attach evidence so they can earn confidence |
| OpenAPI, AsyncAPI, JSON Schema, protocol catalog, architecture map, candidate MCP surface |
What you get out
Every export carries evidence per element. Elements that don't meet your
confidence floor go into a separate speculative section — they are never
silently mixed in with observed fact. Authentication is always described as
"existing application session; credential material redacted at ingestion".
A real specimen, reconstructed purely from passive observation of FL Studio 26, is committed here: targets/fl-studio/exports/mcp_candidate.json — six cloud-API capabilities at INFERRED or STRONGLY INFERRED, each citing the observations behind it.
The evidence model, briefly
Level | Meaning |
CONFIRMED | matches an authoritative source or verified by a human |
OBSERVED | present in captured traffic; recomputable from a capture |
STRONGLY INFERRED | corroborated across independent observations |
INFERRED | supported by one body of evidence (shape, ordering, exclusivity) |
HYPOTHESIS | a model's interpretation with weak support |
UNKNOWN | seen, not yet understood — kept, not discarded |
The model proposes; the evidence decides. A model proposal by itself is
pinned at zero confidence until capture-derived evidence is verified
against the store — a claim that cannot re-derive from captured evidence
does not get stored. Contradictions are preserved and visible, not resolved
by decree. "I don't know" is an available answer, and the tool uses it:
api_re_evidence unknowns is a first-class feature.
What it can and cannot see
Can: plain HTTP via the proxy; Chromium/WebView2 traffic via DevTools attach (requires the app to expose a debug port at launch); UDP/OSC on a port it is told to listen to; processes, modules, listening sockets, named pipes (presence and names); log files; HAR/log archives.
Cannot, by design: TLS-tunneled traffic through a CONNECT proxy — an
opaque tunnel is unobservable, so apire refuses and records the refusal
rather than pretending. Named-pipe messages — a Windows pipe can only be
read by its server, so apire observes pipe presence and naming and says so
(ADR-008).
OSC from applications that don't speak it. Anything you haven't captured.
Install and register
Requires Python 3.11+. Developed and tested on Windows; the capture paths are platform-neutral (loopback proxy, file and log ingest, UDP listen), with process metadata via a cross-platform library.
git clone https://github.com/Mnehmos/mnehmos.api.re.mcp
cd mnehmos.api.re.mcp
pip install -r requirements.txt
python server.py # speaks MCP over stdioRegister with any MCP client (pin the interpreter, not a bare python):
{
"apire": {
"command": "python",
"args": ["/absolute/path/to/mnehmos.api.re.mcp/server.py"],
"description": "Passive API reverse engineering. Observe applications, never impersonate them."
}
}Configuration (all optional): APIRE_KB (evidence store location),
APIRE_REDACTION_SALT (pseudonymize instead of redact), APIRE_MAX_BODY_FETCH.
Example asks
"Start a passive capture through the loopback proxy on port 8123, then tell me when the app has made ten requests."
"Label that capture 'idle', take another one while I open the plugin browser, and diff them."
"What did
message type 47correlate with? Show meapi_re_evidence explainfor it.""Propose names for the unexplained observations and tell me which experiments would raise their confidence."
"Export an OpenAPI document grounded only in what we actually observed, and list what went into the speculative section and why."
Measured, not promised
Control benchmark (deterministic reference app with a committed spec, including one field the documentation gets wrong): endpoints reconstructed at 1.000 precision/recall; the planted discrepancy is flagged; zero secrets. Runs in CI.
Ecological benchmark (Gitea, scored against its own published spec): version-schema agreement 1.000, zero secrets — and on its first run it found and fixed two real engine defects that the controlled environment never could.
For developers
The engineering documents — architecture, roadmap, evidence policy, ADRs (including what was measured, what was falsified, and what was rejected and why) — live in docs/, starting with architecture.md and decisions/. Working conventions and session handoffs are in CLAUDE.md and .agent/.
License
MIT — see LICENSE. Read-only by design; the enforcement story is in docs/security-model.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Discover live agent APIs, ranked endpoints, trust, payment telemetry, and x402 surfaces.
Data-ontology maps of your business systems, served to AI agents over MCP.
Experimental MCP server for current empirical verification of explicit public HTTPS endpoint claims.
2,000+ MCP servers read at source level. Know what one does before you connect. Free, no key.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables reverse engineering of web applications and chat interfaces through browser automation, network traffic capture, and streaming API discovery. Provides comprehensive tools for analyzing network patterns, capturing streaming responses, and automating complex web interactions.149 npm1ISC
- FlicenseNot gradedqualityDmaintenanceAn MCP server for the comprehensive analysis of Swagger 2.0 and OpenAPI 3.x contracts. It allows users to extract detailed information about endpoints, request/response schemas, parameters, and security configurations from API documentation.-
- AlicenseNot gradedqualityCmaintenanceCaptures browser network traffic, analyzes API patterns, and exposes analysis tools through an MCP server for AI-assisted workflows.1MIT
- AlicenseNot gradedqualityAmaintenancePassive external attack-surface mapping server that discovers subdomains, DNS records, TLS posture, HTTP headers, and registration data via public sources like CT logs, Shodan, and RDAP/WHOIS, enabling security reconnaissance without active scanning.49 npm1Apache 2.0