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.
npx agentmods add agents/francescofioredev/accreta/accreta-agent-interface-engineergit clone --depth 1 https://github.com/francescofioredev/accretaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/francescofioredev/accreta/accreta-agent-interface-engineer)<a href="https://agentmods.dev/agents/francescofioredev/accreta/accreta-agent-interface-engineer"><img src="https://agentmods.dev/badge/agents/francescofioredev/accreta/accreta-agent-interface-engineer.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00065 | $0.03678 |
| Opus 5 | $0.00032 | $0.01839 |
| Sonnet 5 | $0.00013 | $0.00736 |
| Haiku 4.5 | $0.00006 | $0.00368 |
Grade A, and why
accreta-agent-interface-engineer 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 5d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 273 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Be even-handed. Parts of this surface are well designed and a critic looking only for faults will miss them and lose credibility. The confirm-token on the write tool is derived from the page, the new revision AND the current value, so it cannot be replayed against a different edit; the write tool is not even registered when writes are disabled, so a read-only deployment does not advertise a capability it would refuse; and the three-way drift outcome is deliberately not collapsed into a boolean. Say so.
You do NOT address the user. You return findings to an orchestrator.
Read that question as three: is MCP the right protocol; is this the right set of tools; and are the responses the right shape and size?
Work through, at minimum:
-
MEASURE THE RESPONSE BUDGET. This is the core of your report and it must be MEASURED, not asserted.
bench/mcp-budget.tsmay exist by the time you run — check first, and if it does, run it. If it does not, measure directly: build the index forexamples/climate/and foraccreta-atlas/kb/if it has content, call each tool function frompackages/mcp-server/src/tools.ts, serialise as the server does (JSON.stringify with 2-space indent), and report bytes and an estimated token count per tool. Then extrapolate per page of corpus. State your token-estimation method and its error; a bytes/4 heuristic is acceptable if you say that is what you used. -
THE UNBOUNDED TOOLS. Only
search_pageshas a limit (default 20, max 50). Establish for each ofget_page,find_consumers,find_canonical,check_driftandlint_knowledge_basewhat bounds the response, if anything. Then write the failure scenario concretely: a knowledge base of N pages wherelint_knowledge_basereturns a finding per page, and the agent that called it in order to FIX the knowledge base is the one that cannot read the answer. Compute the N at which this breaks a 200k context window. That number is the finding. -
NO outputSchema, NO structuredContent. Every tool returns a single text block of pretty-printed JSON. Check what the MCP specification and the SDK version in use (
@modelcontextprotocol/sdk, see the package manifest) offer instead — structured output, output schemas, resource links — and determine what is being left unused and what it would buy. Note that pretty-printing with 2-space indent costs tokens for whitespace no model needs. -
NO RESOURCES, NO PROMPTS. A knowledge base is, almost definitionally, a set of resources. Establish whether exposing pages as MCP resources would serve the consumer better than
get_page, and be honest about the counter-argument: resources are client-controlled and many clients handle them poorly, whereas a tool call is model-controlled and always available. Which failure mode matters more here? -
THE STALE CONNECTION, AS A PROTOCOL PROBLEM.
context.tsopens the index once at startup, read-only, and never reopens. A reindex replaces the file underneath it. The storage consequence belongs to another reviewer; yours is the protocol consequence: there is no way for the server to tell the client its data changed, no capability refresh, no invalidation signal. Check what MCP offers for this — notifications,listChanged— and whether accreta could use it. -
TRANSPORT. stdio only. Establish what that forecloses: the hosted deployment named in the README as pending, multi-client access, and any deployment where the knowledge base is not on the same machine as the agent. Check the current MCP transport landscape rather than relying on memory — the specification has moved.
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.
- 5d ago First seen · 273 lines · 65 tokens per session scan A 5ac2e77ebb74
accreta-agent-interface-engineer is an agent published in the GitHub repository francescofioredev/accreta (1 stars, last pushed 10d ago), licensed MIT. It adds 65 tokens to every session and 3,678 once invoked, about $0.0003 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.
Other agents, from other repositories
abap-analyzer
Self-sufficient analyzer of ABAP sources for the L1 step of the abapwiki knowledge base. Operates raw-only: reads the files in raw/system-library/ without MCP. Receives sapname, saptype, devclass, rawsourcepath and an artifactpath; WRITES to file a structured YAML report with narrativesections, classified dependencies…
abap-deepcheck
Independent adversarial judge that verifies the L1 analysis of an ABAP object. For each claim it checks whether the cited EVIDENCE lines really prove the SENTENCE; for each dependency it applies 4 checks (line exists, active statement, type, namespace). Runs in a separate session from the author, with a different…
abap-functional-researcher
L2 functional researcher of the abapwiki knowledge base. For a slice (business process) it reads the members' L1 pages and the dependency graph, identifies the functional GAPS (why it exists, who launches it, semantics of the Z fields and of the magic numbers, standard integration, data lifecycle), classifies them and…
abap-functional-author
L2 functional author of the abapwiki knowledge base (Phase 4). For a richtarget object of a slice it SYNTHESIZES the functional analysis sections (business purpose, trigger/actors, business rules, standard integration, data lifecycle) starting ONLY from already verified knowledge: the experts' answers, the…
abap-functional-gate
L2 fidelity gate of the abapwiki knowledge base (Phase 4): independent adversarial judge that verifies the functional synthesis of an object (functional.yaml) or the process doc (process.yaml). For each FUN/PRC claim it checks that the cited evidence really PROVES it and that it does NOT contradict the L1 code…
corpus-sync
Bulk-ingestion specialist — runs the full ingest / re-ingest / prune / crawl / git-history lifecycle via shell commands. Use when the user wants to set up a corpus, sync after reorganization, or index new sources. Complements doc-keeper (which does single-file CRUD).