Solutions
Give your agents GitHub — read-only by default.
GitHub's MCP server hands an agent the whole repo — reads, writes, and deletes. Put it behind Meandr and the safe part flows freely while merges, pushes and deletes wait for a rule or a human. No change to your agent.
Add GitHub, then pick which tools your agents get.
Connect GitHub's MCP like any other server — its URL and the token it signs in with. Its catalog opens right away: read tools, write tools, and the read-only tags it declares. Turn on what agents need.
One GitHub token is all-or-nothing.
Hand an agent GitHub access and it can read a file or force-push over main — the token doesn't know the difference. The line you want is between reading and changing.
Read and write, same server
Listing files, opening issues, merging PRs, deleting branches — GitHub's MCP server exposes them all. To your agent's token they're the same access.
A leaked key is repo-wide
If the agent's credential leaks, whoever has it has everything the token can do. You want the blast radius to be "reads," not "the whole repo."
Reads are fine; changes need a look
Most of what a coding agent does is read. It's the writes — a merge to main, a force-push, a delete — that deserve a rule or a second pair of eyes.
How it works
Add GitHub. Allow reads. Gate the rest.
Your agent still calls one Meandr endpoint. GitHub sits behind it like any other server — curated and governed.
Add the GitHub server
Once, with a credential.
Point Meandr at GitHub's MCP endpoint and give it a token to sign in — the same add-a-server flow any server uses. Meandr holds the credential encrypted; your agents only ever hold a Meandr token.
You set up: the GitHub server and its credential, in the dashboard.
Curate its tools
Import the reads.
From GitHub's catalog, import the tools your agents should see. Meandr surfaces the read-only tags GitHub declares, so it's clear which tools only read.
You set up: which GitHub tools each project can call.
Govern the writes
Allow, approve, or deny.
Let reads through, ask a human before a merge or a push, and deny deletes outright — matched on the tool and its arguments. First match wins; every decision is logged.
You set up: the rules — reads allow, writes approve, deletes deny.
The rule reads like the intent.
"Allow GitHub reads, ask before a write, never delete." Three ordered rules — the first that matches decides.
allow github where hints.read_only = true
approve github where tool_name in [merge_pull_request, create_release]
deny github where tool_name = "delete_*"
Questions you'd ask anyway.
Do I have to change my agent to do this?
Can I allow reads but require approval for merges?
Where do my GitHub credentials live?
Give your agents the repo — not the keys to it.
Point your agent at one endpoint and you're governed in minutes — no code changes, no proxy to run.
Get startedQuestions? Email us