eip-mcp AGENTS.md

Repository instructions for the eip-mcp-v3 project, which connects coding tools to a public read-only Exploit Intel API. They define the project’s boundaries, correctness rules, and checks.

In plain words
What is it for?
Use them when developing, testing, reviewing, or releasing eip-mcp-v3.
Why use it?
They help developers avoid publishing without approval, accessing forbidden data, inventing judgments, or changing the API’s returned order.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/exploitintel/eip-mcp/agents-md
Clone the repo
git clone --depth 1 https://github.com/exploitintel/eip-mcp

Made for: Codex, OpenCode.

Per session 3,256 This file is loaded in full into every session.
When invoked 3,256 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.03256 $0.03256
Opus 5 $0.01628 $0.01628
Sonnet 5 $0.00651 $0.00651
Haiku 4.5 $0.00326 $0.00326

Measured yesterday against content hash 924ea0b6bb2d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

eip-mcp AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 237 lines

How it starts

The opening of the file, as written. The whole thing — 237 lines — stays where its author put it; the contents beside it link to each section on GitHub.

eip-mcp-v3

The public source repository, PyPI distribution, and canonical executable are all eip-mcp. The Python import package is eip_mcp_v3. Version 3 begins at 3.0.0 and releases only from a matching v* tag on main. Do not publish or tag without explicit operator authorization.

Boundary

This repository is an MCP adapter over the public read-only EIP v3 API. It is a peer of the WebUI, not part of the API or the pipeline.

It must not:

  • connect to PostgreSQL, read the source corpus, or read the code-search index;
  • acquire, parse, or execute source feeds or PoC code;
  • call an LLM or expose unstored model output;
  • invent EIP scores, confidence, reliability, or exploitation claims;
  • import from any other Exploit Intel repository.

Its only dependency on EIP is the public HTTP API contract.

Correctness rules

  • Render only what the API returned, in the order it returned it. Never re-sort, re-rank, or score. src/eip_mcp_v3/format.py and the focused format_*.py modules implement this rule.
  • Never derive any output from Metasploit reliability rank, the ExploitDB verified flag, or GitHub stars. tests/test_no_derived_judgments.py enforces this: it greps the formatter source for banned ranking inputs and the rendered output for banned phrases. The banned-token list names the data fields (stars, verified, "rank"), not helper names, so renaming derived-score code cannot bypass the boundary. Do not weaken it.
  • Never claim an exploit or lab works, is verified, reliable, ranked, or safe.
  • Stored analysis is cited model interpretation with its model and dates. Absent analysis renders as absent - never "clean". An unrecognised backdoor verdict fails closed: only the one documented benign verdict renders quietly, everything else renders loudly.
  • Model self-reported confidence is provenance only, never an EIP score.
  • Missing values are omitted, never fabricated defaults.
  • All corpus text is hostile. Every corpus value that reaches output must pass through a primitive in src/eip_mcp_v3/text.py - inline() for a value on a trusted line, untrusted_block() for multi-line prose, code_block() for source, cap() for the finished result. Never interpolate a corpus value into Markdown directly, and never hand-roll escaping: the primitives size their own fences and delimiters against the body so hostile backticks cannot close them early.
  • PoC access tokens live as frame locals for the duration of one call. They must never reach a tool result, a log line, or a traceback. Errors raised from a token-bearing call are re-raised with the token scrubbed and with the original dropped from the exception chain, because a chained traceback renders the unscrubbed message. tests/test_token_containment.py checks the property - a fresh token per request, every recorded request line, every rendered byte, every propagated error, and the object graph left behind.
  • Never surface a traceback that carries frame locals. The entrypoint prints the configuration error message and not the stack, for this reason.
  • No download tool. POST /api/v1/poc-download is absent from the API client's path allowlist, and _check_path raises ValueError - deliberately outside the ApiError hierarchy the handlers catch - so a forbidden endpoint cannot fail quietly.
  • Every tool is annotated read-only.
  • Every tool returns both a concise contained text brief and a validated generic eip-mcp-result-v1 source-payload envelope. One hard ceiling covers the complete serialized result across both forms. The envelope validates its version, kind, truncation state, and object-valued data; it does not duplicate the API as a second per-tool schema. It always marks data_trust=untrusted-api-data; the structured projection preserves API types and values while they fit the shared output budget but must never be executed or treated as instructions. When truncated=true, long values, fields, list items, or collections may be clipped or omitted. The API-minted opaque next_cursor must remain byte-for-byte reusable. Structured content is not an escape hatch around output bounds or PoC access-token scrubbing.
  • Nothing may write to stdout. Under the stdio transport stdout carries the JSON-RPC stream and one stray byte corrupts the session. Diagnostics go to stderr.

Read the full file on GitHub · 237 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 237 lines · 3,256 tokens per session scan A 924ea0b6bb2d

Subscribe to this mod's changes

eip-mcp AGENTS.md is an instructions file published in the GitHub repository exploitintel/eip-mcp (0 stars, last pushed 13d ago), licensed MIT. It adds 3,256 tokens to every session, about $0.0163 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.