Omar El Hachimi / Projects / Agent extensions catalogue
Project 05 · AXA Group Operations · 2026A secure catalogue of AI agent extensions: skills, plugins and MCP servers
Omar El Hachimi architected and built AXA's group catalogue of extensions for AI coding assistants, used from Claude Code and GitHub Copilot. Each entity publishes its own catalogue, and every extension passes an automated security gate before anyone can install it.
Role Architecture and build

Context
Teams write extensions for AI coding assistants: skills, agents, plugins, hooks and MCP configurations. A scan of the group's GitHub found thousands of them, copied from project to project.
Sharing them saves time, but one bad extension can leak a secret, carry hidden instructions or quietly send data out.
The catalogue builds on GitHub's open-source awesome-copilot repository. My part is the architecture, the security gate and the census.
How it works
- PublishAn entity adds an extension to its catalogue.
- ScanAutomatic security checks run on it.
- ReviewA person reviews anything executable or flagged.
- ShareIt appears in the central catalogue and portal.
- InstallDevelopers install it in Claude Code or Copilot.
What I built
- Federated ownership. Each entity publishes a catalogue from its own repository, on its own schedule. The central catalogue pulls them every night and never pushes.
- A security gate. Structure checks, then deterministic scans (Gitleaks, Bandit, ShellCheck, detection of hidden Unicode and instruction overrides), then review. Executable or flagged extensions go to a person; blocking findings stop the extension.
- Approvals tied to content. An approval is bound to the extension's fingerprint, so any later change needs a new review. Held extensions open an issue that a reviewer accepts or refuses.
- Distribution. A plugin marketplace that Claude Code and GitHub Copilot install from directly, and a portal to browse everything.
- A census. A read-only scan of the group's GitHub Enterprise that found the AI assets already in use, measured duplication and identified their owners.
Design choices
Pull, never push
Letting each entity own its catalogue and pulling from it kept ownership where the knowledge is, while the security rules stayed central.
Stack
Python · GitHub Actions · GitHub Agentic Workflows · Gitleaks · Bandit · ShellCheck · MCP · React 19 · TypeScript · Tailwind · GitHub GraphQL API
Questions
How do you secure AI agent skills and MCP servers before sharing them?
Scan every extension for secrets, unsafe code, hidden instructions and data exfiltration, send anything executable or flagged to a human reviewer, and bind each approval to the extension's content so any change triggers a new review. Omar El Hachimi built this gate for AXA's catalogue.