MDRN MCP server
OfficialThis server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
MDRN MCP server
@mdrnio/mcp-server gives an AI assistant MDRN's workspaces, projects, products, builds, releases
and logs, and a few safe changes: deploy a connected repository, roll back, turn a product on or
off, set or unset a service variable, create a service. Nothing it offers deletes a service, a
product's data or a domain.
The same tools are served two ways:
Hosted (streamable HTTP, MCP protocol 2025-06-18) at
https://mcp.mdrn.io/mcp(development stage:https://development.mcp.mdrn.io/mcp). You sign in with MDRN (OAuth 2.1) and choose one workspace and the scopes the assistant gets.Local (stdio):
npx -y @mdrnio/mcp-server, signed in as you are on this machine (below).
Install (local)
The local server needs Node.js 20 or later; npx -y @mdrnio/mcp-server fetches it on first use
and runs it, so there is nothing else to install. Sign in once with mdrn login
(npm install -g @mdrnio/cli), or set MDRN_API_TOKEN to a management token (a workspace Admin
creates one in the console under Settings, Tokens).
With
mdrn login, the server uses the CLI profile (MDRN_PROFILE, ordefault) and its origin: the sign-in's access token, refreshed by the CLI's own code when it is about to expire or once after MDRN refuses it, somdrn logoutends this server's access too.MDRN_API_TOKENwins when set, with optionalMDRN_API_ORIGIN(defaulthttps://api.mdrn.io; https only, except a development server on localhost).
Claude Desktop (claude_desktop_config.json, Settings, Developer, Edit Config):
{
"mcpServers": {
"mdrn": {
"command": "npx",
"args": ["-y", "@mdrnio/mcp-server"]
}
}
}Cursor (.cursor/mcp.json in the project, or ~/.cursor/mcp.json for every project):
{
"mcpServers": {
"mdrn": {
"command": "npx",
"args": ["-y", "@mdrnio/mcp-server"]
}
}
}Claude Code: claude mcp add mdrn -- npx -y @mdrnio/mcp-server.
To use a management token instead of the sign-in, add "env": { "MDRN_API_TOKEN": "mdrn_mgmt_..." }
to the entry (Claude Code: claude mcp add mdrn -e MDRN_API_TOKEN=mdrn_mgmt_... -- npx -y @mdrnio/mcp-server).
On Windows, a client that starts the command itself (not through a shell) needs npx run
through cmd:
{
"mcpServers": {
"mdrn": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@mdrnio/mcp-server"]
}
}
}Related MCP server: Octopus Deploy Official MCP Server
Connect (hosted)
Claude.ai (and Claude Desktop): Settings, Connectors, Add custom connector, URL
https://mcp.mdrn.io/mcp. Claude opens MDRN's sign-in, then the consent page: pick the workspace and tick the scopes.ChatGPT: Settings, Connectors (developer mode), Create, URL
https://mcp.mdrn.io/mcp, authentication OAuth; the same sign-in and consent follow.Claude Code:
claude mcp add --transport http mdrn https://mcp.mdrn.io/mcp, then/mcpto sign in.
A connection is listed in the console under Settings, Tokens, Connected apps, where Revoke ends it at once: the next tool call answers 401 and the client asks you to sign in again.
Tools
Tool | Arguments | Does |
| optional | The workspaces this credential reaches, with your role in each (their ids are what the other tools take) |
|
| The workspace's projects you are authorized for |
|
| Product state in one project environment |
|
| The app hostnames with sign-in registered, and whether it is on |
|
| A durable operation; pending is not success |
|
| Workspace billing state (never opens checkout) |
|
| Raw and normalized usage, optionally one period statement |
|
| Deployment services in the environment |
|
| One deployment |
|
| Custom domains with their DNS records and state, and the workspace quota (adding one is not available here) |
|
| One exact allowlisted inspection route (the reads above it, and the trace below) |
|
| A service's builds and the artifact each produced |
|
| One build's progress and artifact |
|
| A build's output, while it runs or after |
|
| A service's releases (their artifacts are what a rollback publishes) |
|
| Every release attempt for a service |
|
| Searches the environment's application logs |
|
| Every log item of one request across the environment's services, joined on its trace id |
|
| Write (deploy:write): builds and releases what the connected branch holds now |
|
| Write (deploy:write): releases an earlier artifact again |
|
| Write (the product's write scope, workspace Admin): turns a product on |
|
| Write (the product's write scope, workspace Admin): turns a product off, keeping its data |
|
| Write (deploy:write): sets a service variable; the value is never shown again |
|
| Write (deploy:write): removes a service variable |
|
| Write (deploy:write): creates a deployment service |
environmentId is sandbox or production; product is database, storage, mail, logs
or auth. Tool schemas reject unknown arguments. Every write sends an Idempotency-Key: the
idempotencyKey you pass (repeat it to retry safely), or a fresh one per call. Writes are
annotated readOnlyHint: false, destructiveHint: false; reads readOnlyHint: true.
Behaviour
API requests have a 10-second deadline and reject redirects. Login, checkout, arbitrary URLs and
private routes are excluded, and mdrn_get reads only its allowlist. The bearer is redacted from
output, but authorized API data is returned to the client; grant the least scopes required.
The local server sends the sign-in's access token (or the management token) to the API and
nothing else; when the API answers 401 to a sign-in's token, the token is refreshed once and the
call sent again only if the refresh gave a new one. A sign-in that has ended answers each tool
call with what to do (mdrn login); a server started before mdrn login picks the sign-in up on
its next call.
The hosted server is stateless (one JSON answer per POST, no SSE stream or session; GET and
DELETE answer 405) and holds no credential. A request without a bearer answers 401 with
WWW-Authenticate: Bearer resource_metadata="https://mcp.mdrn.io/.well-known/oauth-protected-resource/mcp";
that metadata (RFC 9728) names MDRN's API (https://api.mdrn.io) as the authorization server.
Every request's token is checked with Platform first: one unknown, expired, revoked or issued for
another resource answers 401 invalid_token. A tool needing a scope the connection was not
granted answers a tool error insufficient_scope without calling MDRN. The checked token is then
sent to MDRN's API, which enforces its workspace, role and scopes on every call; it was issued by
that same API for this server, so nothing is exchanged. A browser page of another origin is
refused (403).
Source: src/server.js (the tools, shared), src/stdio.js (the package's mdrn-mcp command,
which reads the CLI profile through @mdrnio/cli/config), src/worker.js (released as the mcp
Worker of each stage, wrangler.<stage>.jsonc; not part of the npm package).
Guide: https://mdrn.io/docs/mcp/
Contributing
This repository is a mirror: the code is published here from MDRN's main repository on every release, where it is tested together with the console, the API and the SDKs. Issues are welcome here. Pull requests are reviewed here and merged in the main repository, from where the next release brings them back.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only AI coding tools for change verification, release readiness, capacity, and guidance.
Give your AI agents trusted access to the full Postman platform.
Read-only AI access to HAVN properties, leads, tasks, files, media, and analytics.
Governed memory and workspace for any AI: tasks, calendar, mail and pages, with per-action consent.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables AI assistants to create projects, deploy files, container images, or Git repositories, attach domains, set write-only secrets, add Postgres, read logs, metrics, and failure summaries, and roll back.15 npmApache 2.0- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to inspect, query, and diagnose problems within an Octopus instance, and optionally create releases, deploy releases, run runbooks, and adjust feature toggles through MCP tools.449 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to inspect, query, and diagnose projects, deployments, releases, runbooks, tasks, tenants, Kubernetes resources, machines, certificates, accounts, and interruptions, with optional write operations and read-only safeguards.449 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to inspect, query, and diagnose issues in an Octopus Deploy instance and perform release, deployment, runbook, and feature-toggle operations through MCP tools, with read-only and write-confirmation controls.449 npmMIT