From e1f9282985786090a3ccf38099a2b37de7c9eeff Mon Sep 17 00:00:00 2001 From: Miroslav Dvorak Date: Wed, 17 Jun 2026 15:19:40 +0200 Subject: [PATCH] Add MCP Agent Access Control plugin --- plugins/mcp_agent_access/index.yaml | 11 +++++++++++ plugins/mcp_agent_access/thumbnail.webp | Bin 0 -> 17704 bytes 2 files changed, 11 insertions(+) create mode 100644 plugins/mcp_agent_access/index.yaml create mode 100644 plugins/mcp_agent_access/thumbnail.webp diff --git a/plugins/mcp_agent_access/index.yaml b/plugins/mcp_agent_access/index.yaml new file mode 100644 index 0000000..9df64b1 --- /dev/null +++ b/plugins/mcp_agent_access/index.yaml @@ -0,0 +1,11 @@ +title: MCP Agent Access Control +description: Per-agent/per-profile whitelist for MCP servers. Scope global MCP servers to specific agent profiles so each agent only sees and can call the MCP tools it needs (e.g. AWS servers only for AWS agents), keeping agent0 clean. Hides disallowed servers from the prompt and hard-blocks unauthorized calls. +github: https://github.com/mirecekd/a0-mcp_agent_access +tags: + - mcp + - agents + - security + - tools + - configuration +screenshots: + - https://raw.githubusercontent.com/mirecekd/a0-mcp_agent_access/main/docs/screenshot.png diff --git a/plugins/mcp_agent_access/thumbnail.webp b/plugins/mcp_agent_access/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..d693cad042e37277e3a6bc7ebf8900304e634138 GIT binary patch literal 17704 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