mcpField
M
Marchward

Marchward

Local
github.com/marchwardAI & Agents1Updated 17w ago

About Marchward

Marchward is an open-source runtime control layer for production AI agents. It applies policies before tool calls run and records tamper-evident decisions, combining credential mediation, spend limits, and human approval gates in a self-hostable system.

Key features

  1. 01Allow, block, or escalate calls by policy
  2. 02Mediate credentials and hide real secrets
  3. 03Set agent spending limits
  4. 04Require approval for irreversible actions
  5. 05Write offline-verifiable tamper-evident logs

Use cases

  1. 01Restrict actions available to production agents
  2. 02Keep agents from accessing real service credentials
  3. 03Require approval for destructive actions
  4. 04Audit and verify agent decision records

MCP support

Its local proxy can wrap any MCP server and apply allow, block, or escalate decisions before each tools/call executes. Decisions are written to a hash-chained audit log that can be verified offline.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"marchward": {
"command": "npx",
"args": [
"-y",
"@marchward/mcp-server"
],
"env": {
"MARCHWARD_API_URL": "<MARCHWARD_API_URL>",
"MARCHWARD_API_KEY": "<MARCHWARD_API_KEY>"
}
}
}
}
Run commandnpx -y @marchward/mcp-server
Environment variables to set
MARCHWARD_API_URLMarchward API base URL
MARCHWARD_API_KEYSecretYour Marchward API key (mw_...)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@marchward/mcp-server0.2.4

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Marchward · runtime authority for AI agents

Marchward

Govern what your AI agents are allowed to do. Marchward is one open layer that sits in front of an agent's tool calls and enforces four controls before any action runs, then writes a tamper-evident record of every decision. Self-hostable, Apache-2.0, framework-agnostic.

  • Credential mediation. The agent holds one Marchward key, never your real GitHub, Stripe, or database credentials. The real secret is injected at execution, and the agent never sees it.
  • Inference spend cap. A hard ceiling on agent spend, so a runaway loop can't drain a budget.
  • Approval gates. Irreversible actions pause for a human instead of running unattended.
  • Tamper-evident audit. Every decision appends to a hash-chained log you can verify offline. Provable, not just logged.

Most tools in this space cover one of these. Marchward brings all four together in one place, open and self-hostable.

Output guardrails check what an agent says (toxicity, PII, topic). Marchward governs what an agent does (spend, delete, act). A check on the agent's output cannot stop an agent that still holds the keys and can make a different call. Marchward governs the action itself.

Built for teams already running agents in production (LangGraph, LangChain, raw SDKs, any MCP server, or one HTTP call from any runtime) who need an agent to be autonomous without being able to drain a budget, take an irreversible action unattended, or act without an audit trail.

Quickstart: govern an agent in 60 seconds (fully local, no account)

marchward-proxy wraps any MCP server as a child process and evaluates every tools/call against your policy before it runs (block, allow, or pause for human approval), entirely on your machine, with your own credentials.

# Write a policy (escalate anything destructive, allow the rest)
cat > policy.json <<'EOF'
{ "rules": [
  { "match": { "toolPattern": "*delete*" }, "decision": "ESCALATE" },
  { "match": { "toolPattern": "*" },        "decision": "ALLOW"   }
]}
EOF

# Put Marchward in front of your agent's MCP server, local mode, no API
npx -p @marchward/proxy marchward-proxy \
  --command "node my-mcp-server.js" \
  --policy-file ./policy.json \
  --local

Every tool call your agent makes now passes through policy first, and lands in a local tamper-evident (hash-chained) audit log you can verify offline. No account, no network call to us.

Prefer the SDK? pip install marchward and wrap calls with marchward.execute(). Point it at your own self-hosted setup, or at the managed plane (below).

What's open vs. what's hosted

The open packages in this repo are a fully functional self-host governor. Some operational features need shared state and run on the hosted plane (free tier, no card):

Open (self-host, this repo)Hosted plane (Marchward Cloud)
Execution control: allow / block / escalate tool calls by policyyesyes
Local governor (MCP/HTTP intercept, your own credentials)yesyes
Tamper-evident audit: hash-chain primitive + offline verifyyesretained, queryable, monitored
Approval-gate decisionyes+ managed workflow (notify, approve, resume)
Inference cost caplocal accountingenforced (rolling-window spend)
Credential mediation (agent holds one key, real cred injected, the agent never sees it)yes, from your own local secret storeyes, managed vault
Managed credential vault, multi-tenancy, SSO/RBACnoyes

So: self-host this for execution control, credential mediation from your own local store, a local cost cap, and a local audit log; add the free hosted tier for the managed credential vault (rotation, team sharing), approval workflows, retained audit-as-a-service, and cross-agent enforcement. Same engine underneath. The proxy's --remote mode just points at the plane.

How it works

  1. Your agent makes a tool call (MCP, HTTP, or via the SDK).
  2. Marchward evaluates it against your policy. Risk is judged by the resolved action: any destructive operation (a DELETE, a flagged destructive POST) is gated regardless of what the tool is named, so a custom-named destructive tool cannot slip past.
  3. The decision, ALLOW / ESCALATE / BLOCK, is enforced before the call runs and appended to a hash-chained audit log.
  4. Credential mediation means your agent holds only a Marchward key. The proxy injects the real service credential (from your own local store when self-hosted, or the managed vault on the hosted plane), so a rogue "different tool call" cannot misuse a credential the agent never held.

Packages

  • @marchward/engine: the deterministic decision engine + hash-chain audit primitive (zero dependencies).
  • @marchward/proxy: the local governor (MCP + HTTP), --local or --remote.
  • @marchward/sdk (TypeScript) and marchward (Python, on PyPI): clients.

Project

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.