C
complyee/mcp-guard
Customer-run policy guard for Model Context Protocol (MCP) tool servers
在 GitHub 查看 ↗链接已于 2026-11-12 核查 · HTTP 200 · 打开的是厂商自己的官网
安装与配置
取自该仓库的安装命令
npm install @complyee/mcp-guard
解析自我们于 2026-11-03 抓取的该仓库 README;我们未执行过。
这条是仓库自己写的安装方式,不是 MCP 客户端配置,所以不生成 JSON。
配置项的键名以你的客户端为准:客户端与 CLI
- ★ 数取值
- 0 ★ · complyee/mcp-guard · 取自 GitHub 搜索 API · (2026-11-13 20:00:50 核对)
- 来源明细
- 从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
- 收录与活跃
- 收录于 2026-11-04 · 最近见到 2026-11-14 · 共见到 11 次 · 被 1 个来源列出
- 评分构成
- 综合分 103 · 1 个来源 · repo
- 安装
npm install @complyee/mcp-guard
常见问题(答案都来自我们的记录)
怎么安装?
该仓库给出的安装命令是
npm install @complyee/mcp-guard。我们的记录里它是仓库自己提供的;不保证在你的客户端上直接可用。它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库
complyee/mcp-guard;我们收录于 2026-11-04;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。# @complyee/mcp-guard
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A customer-run companion that puts an Agent Control Room grant check in front of
any MCP tool. It does the repeatable work — fingerprinting, asking, waiting for a
person, claiming, verifying the grant token and reporting the outcome — so the
tool author supplies only the action name and the context facts rules need.
Status: 0.1 (beta). Zero runtime dependencies; Node.js 20 or later (or any runtime
with WebCrypto Ed25519 and fetch).
bash
npm install @complyee/mcp-guard
Agent Control Room is the decision point; this package is
the enforcement point that runs inside your MCP server. See
agent-cr.com/plugins and
agent-cr.com/enforcement-point.
## Use
ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import { createMcpGuard } from "@complyee/mcp-guard";
const server = new McpServer({ name: "payments", version: "1.0.0" });
const guard = createMcpGuard({
workspaceUrl: "https://acme.agent-cr.com", // your workspace address (also the JWT audience)
apiKey: process.env.ACRAPIKEY!, // scopes: policy.decide, policy.read
agent: "finance-assistant",
approvals: { mode: "poll", pollTimeoutMs: 30000, pollIntervalMs: 2000 }, // the defaults
});
server.registerTool(
"issuerefund",
{ description: "Refund a payment", inputSchema: { paymentId: z.string(), amount: z.number() } },
guard.tool("issuerefund", {
action: "payment.refund", // defaults to the tool name
context: (args) => ({ amount: args.amount }), // facts your rules read
execute: async (args, grant) => {
// Runs only on a verified grant for exactly these arguments.
await payments.refund(args, { idempotencyKey: grant.decisionId });
return { content: [{ type: "text", text: Refunded ${args.amount}. }] };
},
}),
);
## What happens on each call
1. The tool name and arguments are fingerprinted locally with
sha256-canonical-json-v1 — the same value decideToolCall would compute.
The arguments themselves never leave the server; only the hash, the action
and the declared context facts are sent.
2. decideAction is called with grantFormat: "jwt" and one Idempotency-Key per
call (reused for a retry after a lost connection and for the claim).
3. If a person must decide:
poll (default): getApprovalStatus every 2 s for up to 30 s; on
granted the identical request is sent once to claim the grant.
immediatereturn, or poll timeout, or a cancelled call: the tool returns a
non-error result saying it is waiting for a person, with the approval id.
Calling the tool again with the same arguments within fifteen minutes of
approval claims it.
4. decision.grantJwt is verified with WebCrypto against
https://agent-cr.com/.well-known/jwks.json (cached five minutes, refetched
once on an unknown key id): EdDSA, issuer, audience = workspace address,
sub = agent, action, payload hash, decision id, lineage, nbf/exp (30 s skew).
any MCP tool. It does the repeatable work — fingerprinting, asking, waiting for a
person, claiming, verifying the grant token and reporting the outcome — so the
tool author supplies only the action name and the context facts rules need.
Status: 0.1 (beta). Zero runtime dependencies; Node.js 20 or later (or any runtime
with WebCrypto Ed25519 and fetch).
bash
npm install @complyee/mcp-guard
Agent Control Room is the decision point; this package is
the enforcement point that runs inside your MCP server. See
agent-cr.com/plugins and
agent-cr.com/enforcement-point.
## Use
ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import { createMcpGuard } from "@complyee/mcp-guard";
const server = new McpServer({ name: "payments", version: "1.0.0" });
const guard = createMcpGuard({
workspaceUrl: "https://acme.agent-cr.com", // your workspace address (also the JWT audience)
apiKey: process.env.ACRAPIKEY!, // scopes: policy.decide, policy.read
agent: "finance-assistant",
approvals: { mode: "poll", pollTimeoutMs: 30000, pollIntervalMs: 2000 }, // the defaults
});
server.registerTool(
"issuerefund",
{ description: "Refund a payment", inputSchema: { paymentId: z.string(), amount: z.number() } },
guard.tool("issuerefund", {
action: "payment.refund", // defaults to the tool name
context: (args) => ({ amount: args.amount }), // facts your rules read
execute: async (args, grant) => {
// Runs only on a verified grant for exactly these arguments.
await payments.refund(args, { idempotencyKey: grant.decisionId });
return { content: [{ type: "text", text: Refunded ${args.amount}. }] };
},
}),
);
## What happens on each call
1. The tool name and arguments are fingerprinted locally with
sha256-canonical-json-v1 — the same value decideToolCall would compute.
The arguments themselves never leave the server; only the hash, the action
and the declared context facts are sent.
2. decideAction is called with grantFormat: "jwt" and one Idempotency-Key per
call (reused for a retry after a lost connection and for the claim).
3. If a person must decide:
poll (default): getApprovalStatus every 2 s for up to 30 s; on
granted the identical request is sent once to claim the grant.
immediatereturn, or poll timeout, or a cancelled call: the tool returns a
non-error result saying it is waiting for a person, with the approval id.
Calling the tool again with the same arguments within fifteen minutes of
approval claims it.
4. decision.grantJwt is verified with WebCrypto against
https://agent-cr.com/.well-known/jwks.json (cached five minutes, refetched
once on an unknown key id): EdDSA, issuer, audience = workspace address,
sub = agent, action, payload hash, decision id, lineage, nbf/exp (30 s skew).
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[](https://anclum.com/zh/s/complyee-mcp-guard/)
- 来源
- github · https://github.com/complyee/mcp-guard
- 按领域浏览
- 开源项目
- 收录于
- 今天
同类推荐
所属领域与标签
每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。