原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

protect-context

作者:XJTLUmedia版本 2.0.0i★ –i在你的电脑上运行
注册名称io.github.XJTLUmedia/protect-context

安装

概览

作者提供的说明(英文原文)

Agent guardrails: contract, evidence ledger, loop brake, diff-scope warnings, durable journal.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 会计、财务与税务

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • PyPI已安装 Python 的 uv(用于 uvx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "protect-context": {
      "command": "uvx",
      "args": [
        "protect-context",
        "mcp"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add protect-context -- uvx protect-context mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "protect-context": {
      "command": "uvx",
      "args": [
        "protect-context",
        "mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "protect-context": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "protect-context",
        "mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 XJTLUmedia 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“会计、财务与税务”中的其他服务器比较i

  • 星标数多于此分类中其他 1734 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1734 个服务器的 93% 更新
  • 基础检查结果等于或优于此分类中其他 1734 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

protect-context 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(2.0.0)于前天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。

有什么可以替代它?

同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Finance Toolkit

作者:JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

电脑或云端★ 5,496MIT今天更新
安装

SolidInvoice

作者:SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

在云端运行★ 981MIT8天前更新
安装

Korea Tax Calculator

作者:UpstageAI

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

在你的电脑上运行★ 97MIT昨天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

protect-context · Agent Guardrail Suite

Durable context, real evidence, and a brake pedal for AI coding agents.

protect-context keeps the rules, decisions, and proof-of-work an agent needs in front of it — then makes scope creep, unverified claims, and repeated failures visible *before* they cost you a session.

One project-local .agent-guard/ store · three interfaces backed by the same logic:

InterfaceUse it forRuntime
pi extensionAutomatic brief injection, status widget, loop blocking, diff warnings, risky-command confirmationTypeScript, loaded by pi via jiti
MCP serverPortable model/host access to the same toolsPython 3.10+, fastmcp
Python CLIPeople, scripts, CI, and hosts without MCPPython 3.10+

The suite is advisory-first. It records evidence and makes unsafe or repetitive behavior visible; it is not a sandbox and does not prove that a change is correct. SPEC.md is the frozen v1.0 contract.

Contents

  • Why this exists
  • What it does
  • Quick start
  • Install the pi extension
  • Install the MCP server
  • Install the Python CLI
  • From source
  • A 30-second tour
  • Interface comparison
  • Reference
  • pi commands and tools
  • MCP tools
  • CLI
  • Configuration
  • Environment variables
  • Runtime store and concurrency
  • The 12 failure modes and what ships
  • How it works
  • Session lifecycle
  • The brief
  • Local recall
  • Evidence and loop detection
  • Scope audit
  • Trust and provenance
  • Context budget
  • Development and validation
  • Troubleshooting
  • Limitations and security boundary
  • Design sources
  • Non-goals
  • License

Why this exists

Long agent sessions fail in boring, expensive ways:

  • the constraints you stated at minute two are gone by minute forty;
  • "done" is claimed with no command output behind it;
  • a "quick fix" quietly rewrites six unrelated files;
  • decisions get re-litigated because nothing recorded the reasoning;
  • the same failing command is retried until the context window dies.

protect-context treats those as state problems, not intelligence problems. A durable store plus three small habits — brief before work, evidence after work, journal when something is decided — removes most of the failure surface without turning the agent into a different agent.

What it does

PrimitiveWhat it gives youWhere you meet it
BriefOwner task, contract, recent trusted decisions and corrections, a short unverified section for the agent's own notes, open loops, and the last evidence ID — injected before a turn and re-asserted mid-run after a compactionAutomatic in pi; orientation, status, guard_journal elsewhere
OrientationBounded repo digest: tree, languages, and conventions files (CLAUDE.md, AGENTS.md, CONVENTIONS.md, README.md, README)Injected once per digest in pi; orientation in CLI/MCP
Evidence ledgerEvery verification run recorded as ev-NNNN with exit code, duration, command, and a bounded output digestguard_verify, protect-context verify, guard_evidence
Loop brakeIdentical failing commands are fingerprinted; the Nth attempt is blocked instead of re-runHard block in pi and the CLI; reported through MCP
Scope auditgit diff stats over tracked, staged, and bounded untracked work, with ok / warn / hard verdictsWidget and status in pi; diff, guard_diff_audit
JournalDurable decision / correction / risk / note entries with tags and trust levelsguard_note, protect-context note, guard_journal
RecallKeyword, tag, type, evidence-id, and command search over the retained journal and evidence window — no embeddingsguard_recall, protect-context recall; the brief names it when a cap hides entries
Risky-command confirmNine catastrophic shell patterns get one grouped confirmation instead of nonepi, when a UI is available
PreflightTool presence and versions plus Git worktree detectionpreflight, guard_preflight
Context budgetWatermarks on context usage and hard caps on every injected blockWidget, budget, guard_budget

Quick start

Python 3.10+ is required for the CLI and MCP server. Node 22.19+ is required only to validate the TypeScript extension from a checkout — pi supplies the extension's runtime modules, and the extension has zero npm runtime dependencies.

Install the pi extension

Installed from npm. The package declares "pi": { "extensions": ["./extension/index.ts"], "image": "./preview.png" } and the pi-package keyword required by the Pi package gallery:

pi install npm:protect-context

Try it for one run without adding it to settings

pi -e npm:protect-context

Install it through pi, not through npm install. The extension declares pi's host modules (@earendil-works/pi-ai, @earendil-works/pi-coding-agent, typebox) as "*" peer dependencies, as Pi requires; Pi suppresses peer installation for managed npm packages, while a plain npm install protect-context does not. The second path downloads the whole pi runtime and surfaces advisories from that tree, which belong to the host and not to this zero-runtime-dependency extension.

Remove any hand-installed copy first — a directory such as ~/.pi/agent/extensions/protect-context or .pi/extensions/protect-context, or pi remove npm:protect-context if that copy came from npm. Two copies register the same tool names, and pi drops the second one:

Error: Failed to load extension "…/.pi/npm/node_modules/protect-context/extension/index.ts":

Tool "guard_verify" conflicts with /home/you/.pi/agent/extensions/protect-context/index.ts

One error is reported per tool (guard_verify, guard_note, guard_contract_check, guard_status, guard_journal, guard_recall), so nothing from the npm copy loads until the other copy is gone.

Or copy/symlink the checkout into a trusted extension directory:

# Personal

mkdir -p ~/.pi/agent/extensions cp -r extension ~/.pi/agent/extensions/protect-context

Project-local (read after the project is trusted)

mkdir -p .pi/extensions cp -r extension .pi/extensions/protect-context

Start a session and you get a single-line status widget, a brief before the first turn, and five slash commands. No configuration file is needed: the extension seeds .agent-guard/config.json with the frozen defaults on first session start.

Install the MCP server

For pi with pi-mcp-adapter, add .mcp.json at the project root:

{

"mcpServers": { "protect-context": { "command": "/absolute/path/to/protect-context/.venv/bin/python", "args": ["-m", "protect_context.mcp_server"] } } }

The same stdio shape works in any generic MCP host. No checkout is needed either: uvx protect-context mcp runs the same server straight from PyPI. Set PC_SESSION_ID when several host sessions need distinct evidence and loop views:

{

"mcpServers": { "protect-context": { "command": "/absolute/path/to/protect-context/.venv/bin/python", "args": ["-m", "protect_context.mcp_server"], "env": { "PC_SESSION_ID": "my-session" } } } }

The MCP surface exposes the nine frozen v1.0 tools plus later read surfaces (guard_journal, guard_orientation, and guard_recall). Tools carry conservative MCP annotations; in particular guard_verify is marked destructive and open-world because it can run any shell command. Annotations are host hints, not enforcement — configure the host to require human approval for that tool.

Install the Python CLI
pip install protect-context      # or: pipx install protect-context

protect-context init # seed .agent-guard/ in the current project protect-context status protect-context verify "pytest -q" protect-context mcp # serve the MCP tools on stdio

The CLI and MCP server are distributed through PyPI; the npm package ships only the pi extension. Both read the same .agent-guard/ directory, so a project can use the extension in pi and scripted verification in CI at the same time.

From source
# Python package, CLI, MCP server, and Python tests

python3 -m venv .venv .venv/bin/python -m pip install -e ".[dev]"

Reproducible extension development checks (dev dependencies only)

npm ci --ignore-scripts npm run check

If the machine's default Node is older than 22.19, run the same checks with an ephemeral Node 22 binary after npm ci:

npx -y node@22 node_modules/typescript/bin/tsc --noEmit -p extension/tsconfig.json

npx -y node@22 --experimental-strip-types --test extension/test/*.test.ts

A 30-second tour

Excerpts from a real session in this repository.

Ask for the current state:

$ protect-context status

PC status · session default · git 91fad4d Δdiff +88/-8 · 6 files · verdict ok loops: none contract 12 constraints conventions: README.md Nudge: verify changes with guard_verify and cite the evidence id before claiming success.

Record proof instead of asserting it:

$ protect-context verify --timeout 180 npm run check

PC verify ev-0005 · exit 0 · ok · 1440ms cwd: /path/to/project cmd: npm run check digest: … Nudge: cite this evidence id when claiming success.

A pipeline or || true is still recorded with the shell's real exit code, but the report says UNTRUSTED and the CLI exits 1. That exit 0 is not proof.

Re-run the same failing command a third time and the brake engages:

$ protect-context verify "npm test"

PC verify blocked · npm test · 3 prior failures Nudge: change approach or gather new information — do not re-run unchanged.

What pi injects before the agent starts working (sections elided):

contract:

01-obey-instructions: Obey the owner's explicit instructions and stated constraints exactly; when instructions conflict, ask instead of guessing. 02-evidence-before-success: Never claim success without citing a fresh verification run (evidence id or pasted output) for the exact claim. … decisions:

  • Use the atomic-mkdir lease, not fcntl alone; Python must interoperate with the extension. [locking,spec]

last verify: ev-0005 exit=0 'npm ru

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx