Platform · How Meandr works
The AI agent control plane, from workspace to tool call
Group the MCP servers and AI agents for each job into a workspace. Agents reach every tool through one URL, keep working in the cloud around the clock, and every call follows your policies and lands in the log.
Acmeyour team
StripeLinearGitHubPlaywrightPostgreSQLapp-db
Sam's Claude Desktopsupport-botrelease-botCursoranalyst
Each workspace picks what it needs
Supportcalm-otter.meandr.io
StripeLinear
Sam's Claude Desktopsupport-bot
Refunds over $500 wait for finance
Releasebrisk-heron.meandr.io
GitHubLinearPlaywright
release-botCursor
Merging to main waits for a reviewer
Dataquiet-lynx.meandr.io
app-dbPostgreSQL
release-botanalyst
Read-only, everything else denied
remote server hosted by Meandr tunnelled connected agent cloud agent
01Workspaces
One workspace per job, one URL for your agents
A workspace is a project, a client or a team. Your MCP servers and agents belong to the team, and each workspace takes the ones its job needs. Agents connect to the workspace, not to each server, so they see exactly that set of tools under the workspace's own rules.
- Its own URL
Every workspace gets an address like calm-otter.meandr.io. Paste it into any MCP client and the agent sees all the workspace's tools as one server.
- Only the tools you pick
Choose which tools of each server the workspace offers. Rename a tool when two servers use the same name, or give it a description that suits the job.
- One server, many workspaces
Connect GitHub once and add it to Release and Support. Its sign-in stays with the server, and you choose whether the workspaces share its rate limits or get their own.
- Rules and records per workspace
Policies, approvals and the call log are kept per workspace, so a client's or a team's activity never mixes with another's.
Servers and the tools it offers
- GitHub
create_branchcreate_pull_requestmerge_pull_request+4 more - Linear
get_issueupdate_issuelist_issues - Playwright
browser_navigatebrowser_snapshotbrowser_take_screenshot
Agents
release-botCursor
Policies
- merge_pull_request into main
- Delete a branch or repository
- Default: allow
In practice
An agency keeps one workspace per client. Each client's GitHub, Jira and staging database sit only in that client's workspace, contractors' agents connect only where they work, and the log of each workspace shows exactly what was done for that client.
02MCP servers
Three ways to bring an MCP server, one list for the whole team
A server joins the team once, however it runs, and then any workspace can use it. Meandr signs in to it, checks it answers like an MCP server should, and lists what it offers.
A server at a URL
Paste the address of any Streamable HTTP server, such as Jira, Linear, Stripe or GitHub. Sign in with OAuth or enter its key once, and that one sign-in serves the whole team.
https://mcp.atlassian.com/v1/mcp
A server Meandr runs for you
Pick one from the Docker MCP Catalog or the Official MCP Registry, or hand Meandr your own Dockerfile. It runs on a machine you choose, in the EU or the US, and its variables are encrypted and delivered only to that machine.
Playwright · EU · 1 GB
A server on your own machine
Run a stdio server on a laptop or an office server and connect it over an outbound tunnel. No ports open, and the data stays where it is.
app-db · stdio · office-server
- Checked before anyone uses it
Meandr runs the MCP handshake, notes the protocol version and lists the tools, prompts and resources. If something fails, it says why.
- You decide what the team may use
Each tool has a switch. When a server adds a new tool later, it arrives switched off until someone allows it.
- Credentials stay with the server
Keys and sign-ins are stored encrypted with the server, never handed to agents. Agents only ever hold their own workspace key.
stripe_api_readread-onlystripe_api_writesearch_stripe_documentationread-onlystripe_analyticsnew
In practice
A team uses Jira and Stripe at their URLs, runs Playwright and PostgreSQL in Meandr's EU region for its agents, and tunnels the production database from the office server. All five show up in one list, and each workspace takes the ones it needs.
Connect an MCP server Run a cloud MCP server Connect a stdio server
03AI agents
Every agent has a name, and a place in each workspace
Claude Desktop, ChatGPT, Cursor, Claude Code, Codex or your own app: each one that connects becomes an agent in the workspace. Policies can single it out, approvals name it, and the log shows every call it made.
As a connector in Claude Desktop or ChatGPT, with claude mcp add or codex mcp add, or in a .mcp.json file.
Clients that support OAuth open a sign-in where you pick the agent or create it. Others get their own key, shown once.
The agent sees the workspace's tools as one MCP server, and every call goes through the workspace's policies.
- One agent, several workspaces
An agent can work in Release and in Data at once. It gets a separate connection to each, sees each workspace's own tools, and each workspace's policies and approvals apply to the calls made there.
- Rules can name the agent
Let support-bot issue small refunds while a person's Claude Desktop only reads, all in the same workspace.
- Keys you can take back
Set an expiry on an agent's key, rotate it, or revoke it, and only that agent loses access.
Releasebrisk-heron.meandr.io
github · create_pull_requestlinear · update_issueplaywright · browser_navigate+9 more
Dataquiet-lynx.meandr.io
app-db · querypostgres · list_tablespostgres · describe_table
Writes denied here by the workspace's policy
In practice
Sam uses Claude Desktop in the Support workspace to look up customers and tickets. The team's support-bot works in the same workspace and may issue refunds up to $500. Both reach the same Stripe server, but the log shows which of them made each call.
04Cloud agents
Agents that keep working after you close the laptop
Run Claude Code, Codex, Gemini CLI, Copilot CLI, Cursor CLI, Goose, Grok Build or OpenCode on a machine in Meandr. Connect it to workspaces and it gets their tools, under their rules, around the clock.
- A machine you choose
From 512 MB to 8 GB, shared or dedicated CPU, in the EU or the US. Several agents and servers can share one machine.
- Your own plan or key
The agent signs in with your own subscription or API key, through its own sign-in in its terminal. Meandr never sees or resells model usage.
- Workspaces in one click
Connect the agent to a workspace and its tools are there on the next start. Meandr handles the agent's keys itself, so nobody copies a key anywhere.
- Pick it up from any device
The session keeps running when you leave. Open it from another computer or your phone and carry on where it is.
Upgrade our dependencies, run the tests and open a pull requestfrom your phone
github · create_branchnpm test214 passedgithub · create_pull_requestPull request #318 is ready for review
You read its summary on the laptop and review the pull request
In practice
Before leaving, a developer asks a cloud agent to work through the bug label in Linear. It picks an issue, writes the fix, runs the tests and opens a pull request, then moves to the next one. In the morning the pull requests are waiting for review, and every call it made overnight is in the log.
05Policies and approvals
Every call is checked before it reaches a server
A workspace's policies are an ordered list. Meandr checks a call against them from the top, and the first policy that matches decides: allow it, deny it, or hold it for a person. Calls no policy matches get the workspace's default.
- Match on who, what and with which values
A policy can target an agent, a server, a tool, or the arguments of a call, like a refund's amount or the branch of a merge.
- Deny stops the call at Meandr
A denied call never reaches the server, so nothing runs. The agent gets a clear answer instead, and blocked calls don't count toward your bill.
- Approve asks a person, in the chat
A held call shows up as a prompt in the agent's own app, such as Claude Code or ChatGPT, and on the console's Tasks page. Approvers can be asked for a one-time passcode (OTP) from their email, so the approval carries their name.
- 1Small refunds by support-botallow
stripe_api_write · PostRefunds · amount ≤ 50000 - 2Refunds over $500approve
stripe_api_write · PostRefunds · amount > 50000Approvers: finance · OTP required - 3Never delete customersdeny
stripe_api_write · DeleteCustomers - ·Default policyEverything no policy above matchesallow
In practice
A customer was charged twice for $1,240. support-bot asks Stripe for the refund, and because it is over $500, the call waits. Priya in finance gets an email, opens the request on the console's Tasks page, checks the order and allows it. The refund runs, and the log records that Priya approved it and why.
Write your first policy Set up human approval MCP governance
06Visibility and audit
Know what every agent did, live and months later
Allowed, denied or held, each call lands in the workspace's log with the agent, the server, the tool and the policy that decided. Watch it live, search the archive, and export it when someone asks.
- A live log
Calls appear as they happen, with their timing, status and decision.
- Metrics per workspace
Requests, errors, traffic and latency, from the last hour to the last month, with the busiest agents and tools.
- An archive you can search and export
Look back by agent, tool or decision, and download the record for a review or an auditor.
- What is kept is your choice
Policies decide whether a call's request and response are captured, so sensitive data is stored only where you want it.
stripe · stripe_api_readallowlinear · get_issueallowstripe · stripe_api_writeapprovedRefunds over $500 · by Priya Shah with OTP · "Charged twice"stripe · stripe_api_writedeniedNever delete customersstripe · stripe_api_readallow
142 calls · 1 approved · 1 deniedExport
In practice
A customer asks why their subscription was cancelled. Look up that day in the Support log and you see which agent made the call, at what time and under which policy, and, where the policy captures requests, exactly what it sent.
07Real-world setups
How teams put it together
Four common setups, each with the workspace, the servers, the agents and the rules that make it work.
A support team that can refund safely
Agents answer customers and fix billing mistakes, but money only moves within limits.
- Workspace
- Support
- Servers
- StripeLinear
- Agents
- Sam's Claude Desktopsupport-bot
- Rules
- Refunds up to $500 by support-bot
- Larger refunds wait for finance, with a one-time passcode
- Deleting customers
An agency with one workspace per client
Client tools and records never mix, and contractors reach only the clients they work for.
- Workspace
- Northwind · Contoso
- Servers
- GitHubJirastaging-db
- Agents
- Cursorcontractor-claude
- Rules
- Each client's repositories and tickets in its own workspace
- Writes to production branches
- A separate log per client for reporting
Engineering that clears the backlog overnight
Cloud agents pick up issues after hours and leave pull requests for the morning.
- Workspace
- Release
- Servers
- GitHubLinearPlaywright
- Agents
- release-botClaude Code
- Rules
- Branches, commits and pull requests
- Merging into main
- Deleting branches or repositories
A production database, read-only for agents
Analysts ask questions in plain words, and the database stays on the office server.
- Workspace
- Data
- Servers
- app-db
- Agents
- analystSam's Claude Desktop
- Rules
- Read-only queries
- Everything else, by default
- Every query kept in the log
Questions about how Meandr works
What is a workspace in Meandr?
Can one agent work in several workspaces?
Who can use a cloud agent?
Do I have to run my MCP servers in Meandr?
What happens to a blocked call?
Is this a workflow builder or a model router?
Give each job a workspace, and every agent the right tools
Run any MCP server in Meandr or connect the ones you already have, then point every agent at one MCP gateway. Policy, approvals and audit cover every call, with no code changes.
Try for freeQuestions? Email us