CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Mnemoscope

toonight/mnemoscope
STDIOregistry active
Summary

Exposes four MCP tools to monitor and protect Markdown vaults used as agent memory. Predict_rot scores your corpus on five context degradation factors before you inject it into an LLM. Get_tiered_read splits notes into working, episodic, and semantic tiers based on recency. Record_journal and read_journal maintain an Ed25519-signed, hash-chained audit log of every agent write, which you verify with the CLI to catch tampering. Ships with a Claude Code PostToolUse hook that passively signs writes as they happen. Useful when you're growing a vault with an agent over months and need to know whether the corpus is rotting, what subset to load, and whether anyone has modified the history.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Mnemoscope — See how your agent remembers (and forgets).

License: Apache-2.0 Node 22+ MCP 100% local Version 0.2.0 Tests: 61 passing 0 vulnerabilities CI

An open-source observability layer for LLM agent memory on Markdown vaults.
Predict context rot before it happens · audit every agent write with a signed journal · tier your knowledge the way the science says you should.

Demo · Workflow · Tools · Quickstart · Architecture · Science


[!NOTE] The dominant 2025–2026 narrative on X — "Markdown trips up the LLM at scale" — is partially wrong. Markdown does not trip up the LLM. Long-context loading trips up the LLM (Chroma, Context Rot, July 2025). Mnemoscope is built on that distinction.

👀 See it in action

Real output, captured from the bundled examples/demo-vault — a 13-note synthetic vault built so every rot factor moves. Reproduce locally with mnemoscope-init examples/demo-vault (full transcript: SAMPLE-OUTPUT.md).

predict_rot — score, factors, top-risk notes

predict_rot card showing rot risk 52/100, dominant factor semanticRedundancy, factor breakdown bars, and the top 5 risk notes.

mnemoscope-verify — clean run vs. tamper detection

Two verify outputs side by side: a clean run with three valid entries and exit 0, and a tampered run with one signature-mismatch FAIL and exit 1.
Full overview (click) — gauge, factors, top-risk notes, both verify states, tier counts, hash chain — all on one page Full demo page showing every Mnemoscope view at once.

✨ What is Mnemoscope?

Mnemoscope is not another memory store. It is an instrument that sits between your LLM agent and your Markdown vault and gives you three things nobody else gives you in one tool:

  • 🎯 Predict the rot risk of a corpus before injection, with a citation-backed score across 5 factors.
  • 📝 Witness every read and write your agent performs, in an Ed25519-signed, hash-chained journal that detects field-level tampering, deletion, and reordering.
  • 🧱 Tier the corpus into a working / episodic / semantic hierarchy, drawing on the 2025–2026 science instead of the GraphRAG hype.

It ships as an MCP server (Claude Code, Cursor, ChatGPT desktop, anything MCP-compatible), an Obsidian plugin, and a Claude Code PostToolUse hook. Everything runs 100% locally. No cloud. No telemetry without explicit opt-in.

🔄 How it fits your workflow

Imagine you start a brand-new project — a folder of Markdown notes you'll grow with Claude Code over the next year. Mnemoscope plugs into the lifecycle in five places:

   [create project]
        │
        ▼
   mnemoscope-init                     ◄─── 1× at the very start
        │                                   creates .mnemoscope/, generates Ed25519 keypair
        ▼
   ┌───────────────────────────────────────────────────────────┐
   │  [you work with Claude Code on the vault]                 │
   │                                                           │
   │   predict_rot       ──┐                                   │
   │                       ├─►  on demand (or before sessions) │
   │   get_tiered_read   ──┘    "is the vault healthy?"        │
   │                            "what should the agent read?"  │
   │                                                           │
   │   PostToolUse hook  ────►  passive, on every Write/Edit   │
   │                            "what did the agent just do?"  │
   └───────────────────────────────────────────────────────────┘
        │
        ▼
   mnemoscope-verify                   ◄─── on demand, or in CI
                                            "has anyone tampered?"
PhaseTool / commandWhen to use itWhat you get
1. Bootstrapmnemoscope-initOnce, at project creation.mnemoscope/ + per-vault Ed25519 keypair
2. Predictpredict_rot (MCP tool)Before injecting a vault into the LLMA 0–100 risk score + factor breakdown + top-risk notes
3. Compactget_tiered_read (MCP tool)When the vault grows past your model's effective contextWorking / episodic / semantic split
4. Witnessmnemoscope-record-hook (Claude Code PostToolUse hook)Wired once in ~/.claude/settings.json, then passiveEvery agent write becomes a signed journal entry
5. Auditmnemoscope-verifyAny time, or as a pre-commit / CI stepExit 0 if all entries verify, exit 1 if tampered

🛠️ The four MCP tools

ToolInputWhat it returns
predict_rotvault_pathScore 0–100, dominant factor, full factor breakdown, top 5 risk notes, vault stats
get_tiered_readvault_path, optional age thresholdsNote paths grouped into working / episodic / semantic
record_journalvault_path, session_id, op, target_path, optional contentThe signed entry, including its sig, keyFingerprint, and prevHash
read_journalvault_path, optional session_idAll journal entries, or a single session's entries

Example — predict_rot on a real vault

{
  "rot_risk": 41,
  "dominant_factor": "tokenVolume",
  "factors": {
    "tokenVolume": 100, "semanticRedundancy": 0,
    "distractorDensity": 2.65, "structuralCoherence": 100, "freshnessSpread": 0
  },
  "top_risk_notes": [
    { "relPath": "brainstorms/.../transcript.md", "approxTokens": 13439, "reason": "very large note" },
    { "relPath": "brainstorms/.../sylvie-signaux.md", "approxTokens": 12605, "reason": "very large note" }
  ],
  "vault_stats": { "noteCount": 113, "approxTokens": 506823 },
  "baseline_model": "v0-heuristic",
  "version": "0.2.0"
}

🚀 Quickstart

git clone https://github.com/toonight/Mnemoscope
cd Mnemoscope
npm install
npm run build
npm test                           # 47 tests across core + mcp-server
npm audit                          # 0 vulnerabilities

# Make the CLI binaries available on your PATH
npm link --workspace @mnemoscope/cli

Bootstrap a vault

mnemoscope-init /path/to/your/vault
# → state dir, Ed25519 keypair, fingerprint

Add .mnemoscope/ to your vault's .gitignore — the per-vault private key must never be committed.

Connect the MCP server to Claude Code (or Cursor / any MCP client)

// ~/.claude/settings.json
{
  "mcpServers": {
    "mnemoscope": {
      "command": "node",
      "args": ["/absolute/path/to/Mnemoscope/packages/mcp-server/dist/index.js"]
    }
  }
}

The four tools (predict_rot, get_tiered_read, record_journal, read_journal) become available to the agent immediately.

(Optional) wire the auto-journal hook

Asking the agent to call record_journal on every write is a recipe for forgetting. Wire the bundled hook instead:

// ~/.claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit|MultiEdit",
        "hooks": [{ "type": "command", "command": "mnemoscope-record-hook" }]
      }
    ]
  }
}

The hook resolves the vault root via MNEMOSCOPE_VAULT_PATH or by walking up to the closest .mnemoscope/ directory. It never blocks the tool call: any internal error is caught, logged to stderr, and the process exits 0. Full setup including safety properties: docs/claude-code-hook.md.

Verify the journal

mnemoscope-verify /path/to/vault
# ok    2026-04-26T19:42:13.001Z  write  /vault/notes/foo.md
# ok    2026-04-26T19:43:01.220Z  write  /vault/notes/bar.md
# 2 entries; 2 valid; 0 invalid

mnemoscope-verify exits non-zero on any of:

  • field-level tampering (signature mismatch),
  • deletion or reordering (prevHash chain break),
  • entries signed by a key the current vault does not own.

(Optional) back up the per-vault private key

If you lose <vault>/.mnemoscope/keys/ed25519.key, the journal becomes unverifiable. The bundled backup CLIs encrypt the key with a passphrase (scrypt + AES-256-GCM, no extra deps) and let you restore it later:

mnemoscope-backup-key /path/to/vault /path/to/off-vault-backup.enc.json
# … prompts for a passphrase, writes chmod 0600 …

mnemoscope-restore-key /path/to/vault /path/to/off-vault-backup.enc.json
# … prompts for the same passphrase, writes the key back into the vault …

Full flow including threat model: docs/key-escrow.md.

(Optional) anchor the journal in time with OpenTimestamps

The signed hash chain proves order. To prove absolute time and stay safe against retroactive rewrites if the per-vault key is ever compromised, anchor each entry's signature to a public Bitcoin-backed OTS calendar:

mnemoscope-timestamp /path/to/vault
# … POSTs SHA-256(sig) per entry to the calendar, writes .ots proofs
# under <vault>/.mnemoscope/timestamps/. Idempotent on re-run.

Pending proofs are upgraded to fully self-verifying Bitcoin proofs with the upstream ots upgrade / ots verify CLIs — that part is intentionally not reimplemented. Full threat model and flow: docs/timestamping.md.

✅ What works today

WhatHow verified
✅predict_rot returns a 5-factor breakdown, each factor citation-backed in source14 unit tests; smoke-tested on a real 506 K-token vault — sensible top-risk ordering
✅get_tiered_read splits a vault into working / episodic / semantic by freshnessintegration test on fixture vault; freshness-based, access-frequency aware in a future revision
✅record_journal produces a real Ed25519 signature with prevHash chaining9 journal tests, including 4 tamper tests + 2 chain-integrity tests (truncation, reordering)
✅mnemoscope-init bootstraps a vault idempotentlymanual run on multiple fresh + existing vaults
✅mnemoscope-verify CLI replays and exits non-zero on any invalid entrywired to the same verifyAll
✅mnemoscope-record-hook Claude Code PostToolUse hook auto-journals every Write/Edit/MultiEditdocs/claude-code-hook.md, never blocks
✅mnemoscope-backup-key / mnemoscope-restore-key encrypt the per-vault Ed25519 key with scrypt + AES-256-GCM7 unit tests, full flow in docs/key-escrow.md
✅mnemoscope-timestamp anchors each entry's signature to a Bitcoin-backed OpenTimestamps calendar; pending .ots proofs upgraded with the official ots CLI12 unit tests + smoke-tested 3 entries → 3 .ots files round-trip through verifyOtsHeaderForDigest; full flow in docs/timestamping.md
✅MCP server passes 5 end-to-end tests over real JSON-RPC stdioserver.test.ts spawns the binary
✅Obsidian plugin: sidebar view with SVG rot gauge, factor bars, top-risk list, settings tab, auto-onboarding modal on first launchsingle-file bundle, no runtime deps; eslint-plugin-obsidianmd clean in CI
✅Research sub-project: predictive classifier calibrated on real LLM measurements (Random Forest R² = 0.58 on 50 rows graded by Gemma 4 26B), MarkdownMemBench v0.1 schema + sample dataset + harness, Chroma replication protocol with position-of-needle sweepself-contained Python project under research/; CI runs ruff + 14 pytest cases on every push; classifier metadata audited in research/classifier/model.json
✅CI green on Node 22 + Python 3.11, 0 npm vulnerabilities, npm audit --audit-level=moderate and eslint-plugin-obsidianmd enforced on every pushGitHub Actions on every push and PR
✅Three npm packages (@mnemoscope/{core,mcp-server,cli}@0.2.0) live on the public npm registry, published via OIDC Trusted Publishing (no rotating token, automatic provenance)npm view @mnemoscope/core etc.; release workflow at .github/workflows/release.yml
✅The MCP server is listed on the Official MCP Registry under io.github.toonight/mnemoscope @ 0.2.0 — automatic fan-out to PulseMCP and other downstream catalogsserver.json at repo root, registered via mcp-publisher CLI

🏗️ Architecture

flowchart LR
    A["Obsidian vault<br/>Markdown files"] --> B["mnemoscope/core<br/>signatures · rot · tiering · Ed25519 chained journal"]
    B --> C["mnemoscope/mcp-server<br/>stdio MCP - 4 tools"]
    B --> D["mnemoscope/obsidian-plugin<br/>UI · rot gauge"]
    B --> G["mnemoscope/cli<br/>init · record-hook · verify"]
    C -->|tools| E(("Claude Code<br/>Cursor<br/>ChatGPT desktop"))
    G -->|PostToolUse hook| E
    F["research/<br/>classifier · benchmark · replication"] -.->|trained ONNX classifier| B
    style A fill:#1a2444,stroke:#a78bfa,color:#cbd5e1
    style B fill:#0e1530,stroke:#5fd9d1,color:#cbd5e1
    style C fill:#0e1530,stroke:#5fd9d1,color:#cbd5e1
    style D fill:#0e1530,stroke:#5fd9d1,color:#cbd5e1
    style G fill:#0e1530,stroke:#5fd9d1,color:#cbd5e1
    style E fill:#1a2444,stroke:#7cf09d,color:#cbd5e1
    style F fill:#1a2444,stroke:#fbbf24,color:#cbd5e1
mnemoscope/
├── packages/
│   ├── core/              # rot scoring, tiering, Ed25519 hash-chained journal, signatures
│   ├── mcp-server/        # MCP server (stdio); 4 tools, integration-tested via spawn
│   ├── obsidian-plugin/   # Obsidian plugin: rot gauge, factor bars, top-risk list, settings
│   └── cli/               # mnemoscope-init, mnemoscope-record-hook, mnemoscope-verify
├── examples/
│   └── demo-vault/        # 13-note synthetic vault — every rot factor moves
├── research/              # Python (uv): classifier, MarkdownMemBench v0.1, Chroma replication
└── docs/                  # banner, logo, claude-code-hook setup, demo page, screenshots

🔐 The signed journal in one diagram

flowchart TD
    K["Per-vault Ed25519 keypair<br/>.mnemoscope/keys/ed25519.key (mode 0600)"]
    E1["Entry 1<br/>prevHash = GENESIS<br/>sig = σ1"]
    E2["Entry 2<br/>prevHash = SHA256 of σ1<br/>sig = σ2"]
    E3["Entry 3<br/>prevHash = SHA256 of σ2<br/>sig = σ3"]
    K -->|signs| E1
    K -->|signs| E2
    K -->|signs| E3
    E1 -.->|chain| E2
    E2 -.->|chain| E3
    style K fill:#1a2444,stroke:#a78bfa,color:#cbd5e1
    style E1 fill:#0e1530,stroke:#5fd9d1,color:#cbd5e1
    style E2 fill:#0e1530,stroke:#5fd9d1,color:#cbd5e1
    style E3 fill:#0e1530,stroke:#5fd9d1,color:#cbd5e1
AttackDetected by
Edit a field of any single entryper-entry signature mismatch
Delete an entrynext entry's prevHash no longer matches
Reorder two entriesboth signatures still verify, but the chain breaks
Forge an entry with a different keykeyFingerprint flagged as foreign

🤝 Voisins (not competitors)

ProjectWhat it doesWhere Mnemoscope sits
Anthropic Memory toolOfficial, file-based, primitiveWe add the rot scoring + signed chained journal Anthropic does not provide
Letta / MemGPTRuntime-stateful agentsDifferent layer — we sit under the agent
Mem0, Zep, CogneeGeneric memory storesDifferent scope — we are MD-vault-native
MemPalaceViral OSS memory MCPNot Obsidian-specific; complementary
Smart ConnectionsRAG-vector for ObsidianCo-installable; we are runtime / forensics, they are search
Basic Memory MCPSemantic graph over markdownClosest in spirit — we want to interop, not duplicate
claude-memory-compilerMD-compiler approachReach out before duplicating

[!IMPORTANT] If you maintain one of these projects and see overlap or complementarity, please open an issue — collaboration is the explicit design goal.

🔬 Scientific posture

Mnemoscope is meant to be a tool and a contribution to the public empirical record on agent memory.

Research threadStatusWhy it matters
MarkdownMemBench v0.1🟢 schema + sample dataset + harness shippingToday's benchmarks (LongMemEval, LoCoMo) are conversational and English-only. There is no public bench for vault-native, MD-native agent memory.
Predictive Context Rot classifier🟢 trained on 50 real (signature, observed_loss) rows graded by gemma4:26b (Q4_K_M, num_ctx=40000). Random Forest wins out — R² = 0.58, MAE = 0.14 on a held-out 10-row split — confirming the rot surface has interactions a linear model can't capture (Ridge collapses from 0.85 on the synthetic baseline to 0.14 on real data). First public observation of Chroma 2025's "structured > shuffled is worse" effect on real Markdown vaults graded by a real LLM (structural_coherence r = +0.30 vs observed loss). Audit metadataEvery existing benchmark measures degradation after injection. We predict it before, with a calibrated baseline anyone can extend by dropping a fresh measurements.csv next to the existing one and re-training.
Replication of Chroma's "structured > shuffled is worse"🟢 runner + offline & online grading shipping; real-corpus runs pending vault contributionsChroma showed coherent haystacks underperform shuffled ones on NIAH. Nobody has replicated or refuted this on real Obsidian vaults yet. The runner (research/replication/) needs only an API key and a vault path.

Each thread lives in research/ and will produce a preprint alongside the code.

🛣️ Roadmap

Done

  • Publish the three packages on npm at v0.2.0 with OIDC Trusted Publishing — @mnemoscope/{core,mcp-server,cli} are live on the npm registry. CI publishes automatically on tag push, no rotating token required, provenance attestations emitted on every publish.
  • List the MCP server on the Official MCP Registry — io.github.toonight/mnemoscope @ 0.2.0 is indexed. PulseMCP ingests the official registry daily, so the server appears there too within ~7 days, no separate submission required.
  • Submit the Obsidian plugin to the community plugins directory — obsidianmd/obsidian-releases#12354 passes automated validation; awaiting human review (typical 2–4 weeks).
  • Periodic remote attestation — OpenTimestamps anchoring of every journal-entry signature, upgradable to a Bitcoin-backed proof via the upstream ots CLI (docs/timestamping.md).
  • Calibrate the predictive classifier on real LLM measurements — 50 (signature, observed_loss) rows graded by gemma4:26b, Random Forest wins at R² = 0.58 / MAE = 0.14 on the held-out split; first public observation of the Chroma 2025 "structured > shuffled is worse" effect on real Markdown vaults graded by a real LLM (model.json).
  • Lint locally with the same plugin the Obsidian reviewer uses — eslint-plugin-obsidianmd is wired into the project (root eslint.config.mjs, npm run lint) and gates CI, so reviewer-bot findings land at commit time instead of review time.

Next

  • Dogfood the auto-journal hook on the author's vault for two full weeks; tune heuristics against observed Claude Code session outcomes
  • Wire the calibrated model.onnx into @mnemoscope/core via onnxruntime-node (optional dependency) so predict_rot returns the model's prediction next to the v0 heuristic
  • Release MarkdownMemBench v1 with 50–200 contributed real vaults
  • Preprint #1: replication of Chroma Context Rot on real Obsidian vaults
  • List on Glama (catalog ingestion path complementary to PulseMCP)

Full history: CHANGELOG.md.

🧑‍🤝‍🧑 Contributing

PRs are welcome but the most useful first step is opening an issue describing what you want to do. See CONTRIBUTING.md for code style and process.

If you are a researcher at Letta, Chroma, Mem0, Cognee, OSU-NLP, Snap Research or any related lab and you see overlap with the Predictive Context Rot or MarkdownMemBench axes, please reach out — the project is explicitly designed for this.

📜 License

Apache License 2.0. Apache-2.0 was chosen over MIT for its explicit patent grant, which we believe is appropriate for a project introducing novel scoring methods in an active research area.

🙏 Acknowledgements

Mnemoscope's framing borrows directly from public work by:

  • Chroma Research — Context Rot (July 2025)
  • Letta — Is a Filesystem All You Need? (August 2025)
  • Letta — Sleep-time Compute (2025)
  • Microsoft — LazyGraphRAG (June 2025)
  • HippoRAG (NeurIPS'24, OSU-NLP)
  • LongMemEval (ICLR 2025)
  • LoCoMo (Snap Research)
  • Liu et al., Lost in the Middle (2023)
  • Andrej Karpathy's LLM Wiki proposal (April 2026)

Without their public artifacts, this project would not be possible.

🧠 predict · witness · tier 🧠
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
AI & LLM ToolsDocuments & Knowledge
Registryactive
Package@mnemoscope/mcp-server
TransportSTDIO
UpdatedApr 28, 2026
View on GitHub

Related AI & LLM Tools MCP Servers

View all →
SkillFM LLM Cost Optimizer

io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage

LLM cost optimizer for OpenAI, Anthropic, token usage, BYOK, and SkillFM Beacon audits.
Llm Orchestration Agent

io.github.mikerawsonnz/llm-orchestration-agent

Run a prompt through a LangChain (system + human) chain over Gemini on Vertex AI; optional LangSmith
Authenticated Llm Agent

io.github.mikerawsonnz/authenticated-llm-agent

JWT-gated LLM gateway: authenticate (bcrypt/JWT), then run a LangChain-on-Vertex Gemini completion.
Copilot Memory MCP

labforgedev/copilot-memory-mcp

Persistent semantic memory for AI agents using local ChromaDB vector search. No cloud required.
1
Agent Prompt Injection Firewall Mcp

csoai-org/agent-prompt-injection-firewall-mcp

The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
Authenticated Multi Llm Agent

io.github.mikerawsonnz/authenticated-multi-llm-agent

Google-OAuth-gated LLM gateway: verify a Google ID token, then run a Gemini (Vertex AI) completion f