
Aggrete
io.github.aggretePublished by GitHub account aggretev0.13.4Updated Oct 24, 2026
MCP policy proxy: enforces a code of conduct across connectors before the upstream is called.
Overview
A local MCP policy proxy that checks each connector call against a code-of-conduct policy and per-user memory before the upstream is fetched.
- What you can do
- Preview a planned sequence of tool calls and get an allow or refuse verdict before any data is fetched, with the policy clause cited on refusal; list scenarios worth trying against the policy engine; scan existing MCP client configurations for cross-server leak paths, hidden instructions in tool descriptions, secrets in configs and servers that bypass the proxy, optionally writing fixes; redact emails, SSNs, cards and tokens from results and hide tools a user may not call; hold a call for human approval from Slack, terminal or console; record hash-chained audit lines and expose metrics and health endpoints.
- When to use it
- Worth adding when several MCP connectors touch overlapping sensitive data and you want combination-level rules, pre-fetch refusal and an audit trail rather than per-server authorization. Also useful for hardening an existing MCP setup with a scan before rolling it out.
- Requirements
- Runs locally over stdio as a Python package installed with pip or uvx; a YAML policy file and a proxy configuration are needed for real use, while a demo mode needs no config, auth or network. It holds upstream credentials itself, and optional per-user on-behalf-of access and human approvals via Slack are available.
Installation
In SourceWeft
- Open Aggrete in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Aggrete
[PyPI version] [Python versions] [License] [Glama quality] [FOSSA Status]
An MCP proxy that enforces a code-of-conduct document across connectors, with per-user memory that accumulates across calls.
Four individually-authorized questions can assemble a layoff list — no single one is sensitive, so no guardrail fires. Aggrete is the layer that catches the combination: is this call, together with everything this person already pulled today, something the code of conduct forbids?
Try it live — nothing to install · or uvx aggrete --demo
Start with a scan
Finds every MCP server your clients use, connects to each, and prints what no per-server scanner does: tool combinations across servers that form a leak path, hidden instructions in descriptions, secrets in client configs, servers that bypass the proxy. --fix writes the config and policy that close them. Details.
Install
The one example
The check tool dry-runs a plan and returns the verdict before anything is fetched:
Each call is fine alone. The third completes a forbidden set across three domains that overlap on the same people, so it's denied before the upstream call — the data is never fetched.
What it does
- Refuses before fetching, using a YAML policy and per-user memory across calls and sessions — not single-call authorization.
- Redacts emails, SSNs, cards, and tokens from results before they reach the model; hides walled tools from users who can't call them.
- Shields against prompt injection — any write after a session reads untrusted content is refused — and against tool poisoning, flagging hidden instructions in tool descriptions.
- Holds upstream credentials itself (confused-deputy safe), with optional per-user on-behalf-of access.
- Audits tamper-evidently — every decision is one hash-chained JSON line (
aggrete-audit), forwarded to a SIEM or an OpenTelemetry collector, with Prometheus metrics and health endpoints for operations. - Ask before you act —
checkpreviews any sequence,scenarioslists things to try. - Hold for a human —
action: approvepauses a call until the clause owner approves it, from Slack, the terminal, or the console; the approval is a time-limited, audited grant.
Learn more
- Writing policy — the
coc.yamlschema, rule types,arg_match, and drafting from your handbook withaggrete-ingest - Deploying — architecture, the deploy matrix, HTTP + OAuth, connecting Claude, and per-user credentials
- Building a connector — expose read/write tools and govern any system (Google Drive is the reference)
- Adapter mode — run the engine inside agentgateway (native ExtMCP over gRPC,
aggrete extmcp), Docker MCP Gateway, IBM ContextForge or any AuthZEN-speaking gateway - What it does not stop — supply chain, host execution, client bugs, memory poisoning: where a proxy is the wrong control and what is
- Scanning —
aggrete scanhardens an existing MCP setup: cross-server leak paths, poisoned descriptions, secrets in configs, proxy bypasses, and a one-command fix - Conformance —
aggrete conformanceruns sixteen checks against the real components and maps them onto the OWASP MCP Top 10, OWASP Agentic Top 10, CoSAI and AIUC-1;--urlruns the same scenarios black-box against any gateway (latest report) - Roadmap — shipped, in progress, and planned
- Agent skill — teach Claude Code or any MCP client to set up and operate Aggrete:
/plugin marketplace add aggrete/aggrete, or readskill://aggrete/SKILL.mdfrom a running proxy
Honest limitations
- Post-call denial redacts, it does not un-fetch — prefer rules decidable pre-call.
- stdio identity is advisory — real enforcement needs streamable HTTP with OAuth and IdP-level blocking of direct connector grants, so the proxy is the only path.
- Aggregation can only be narrowed, not solved — a user who spaces requests beyond the window, or paraphrases across systems the proxy doesn't front, gets through. This raises the cost and creates the audit trail; it isn't a ceiling.
- Not a gateway — no multi-tenancy, token vault, or HA. For production, run it behind agentgateway, Docker's gateway or IBM ContextForge and let them call it (adapter mode).
mcp-name: io.github.aggrete/aggrete
Source: README.md at commit 7da4844
Tools
0Version history
6- v0.13.4LatestOct 11, 2026
- v0.13.2Oct 11, 2026
- v0.12.0Sep 22, 2026
- v0.11.0Sep 19, 2026
- v0.10.0Sep 18, 2026
- v0.9.0Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts