Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Diagrid Catalyst

FreeNot checked

Sample MCP server demonstrating Diagrid Catalyst zero-trust access policy enforcement for AI agent workflows.

GitHubEmbed

About

Sample MCP server demonstrating Diagrid Catalyst zero-trust access policy enforcement for AI agent workflows.

README

A live-webinar demo showing how Catalyst (built on Dapr) enforces per-tool access policies for an MCP server. Three agents — ops, analysis, supervisor — share one MCP server and one Postgres database; Catalyst decides who can call which tool.

Full walkthrough: see DEMO.md.

TL;DR

# One-time setup
pip3 install -r requirements.txt
psql -d postgres -c "CREATE DATABASE zerotrust_demo;"
psql -d zerotrust_demo -f sql/init.sql
./setup.sh

# Terminal A — keep the MCP server running through Catalyst
diagrid dev run --project mcp-access-control --app-id mcp-server \
    --app-port 8000 --yes --skip-default-resiliency \
    -- python3 mcp_server/server.py

# Terminal B — phase 1 (deny-all): everything is denied
diagrid apply --project mcp-access-control -f config/phase1-deny-all.yaml
sleep 15
diagrid dev run --project mcp-access-control --app-id ops-agent        --yes --skip-default-resiliency -- python3 agents/ops_agent.py        # then Ctrl+C
diagrid dev run --project mcp-access-control --app-id analysis-agent   --yes --skip-default-resiliency -- python3 agents/analysis_agent.py   # then Ctrl+C
diagrid dev run --project mcp-access-control --app-id supervisor-agent --yes --skip-default-resiliency -- python3 agents/supervisor_agent.py # then Ctrl+C

# Terminal B — phase 2 (per-agent allows): only supervisor can delete
diagrid apply --project mcp-access-control -f config/phase2-zerotrust.yaml
sleep 15
diagrid dev run --project mcp-access-control --app-id ops-agent        --yes --skip-default-resiliency -- python3 agents/ops_agent.py        # then Ctrl+C
diagrid dev run --project mcp-access-control --app-id analysis-agent   --yes --skip-default-resiliency -- python3 agents/analysis_agent.py   # then Ctrl+C
diagrid dev run --project mcp-access-control --app-id supervisor-agent --yes --skip-default-resiliency -- python3 agents/supervisor_agent.py # then Ctrl+C

Full walkthrough: see DEMO.md.

Access matrix

schema query write delete
ops-agent
analysis-agent
supervisor-agent

Two-phase demo

A single Catalyst Configuration named mcp-policy is attached to mcp-server. The demo rewrites its contents between phases:

Phase YAML applied Result
1 — Zero trust config/phase1-deny-all.yaml mcp-policy.defaultAction=deny, no policies. Every call from every agent is denied.
2 — Explicit allows config/phase2-zerotrust.yaml mcp-policy.defaultAction=deny + per-agent per-tool allows. Each agent reaches only its authorised tools; only the supervisor can delete.

Cleanup

See the cleanup section in DEMO.md.

from github.com/diagrid-labs/catalyst-mcp-access

Installing Diagrid Catalyst

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/diagrid-labs/catalyst-mcp-access

FAQ

Is Diagrid Catalyst MCP free?

Yes, Diagrid Catalyst MCP is free — one-click install via Unyly at no cost.

Does Diagrid Catalyst need an API key?

No, Diagrid Catalyst runs without API keys or environment variables.

Is Diagrid Catalyst hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Diagrid Catalyst in Claude Desktop, Claude Code or Cursor?

Open Diagrid Catalyst on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Diagrid Catalyst with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs