# MCP Server Kit: a tested starter server, approval-gated write tools and a checker

> A small working MCP server for a made-up plumbing business where every write is a draft plus an apply that waits for the owner, an approval script the agent cannot run for you, and a read-only checker that finds unsafe tools, poisoned descriptions, open schemas, live keys and unpinned packages in any server or agent config, including starters you bought. Tested against the official MCP Python SDK with configs for Grok Bot, Claude Code, Codex and Hermes.

- URL: https://paperchasewebb.ai/bots/marketplace/items/mcp-server-kit-tested-starter-approval-gated-tools-checker/
- Type: Prompt pack
- Category: Vibe coding
- By: PaperChaseWebb
- Works with: Claude Code, Codex, Grok Bot, Hermes (named in the listing); A stdio MCP server in Python that speaks the 2026-07-28 protocol and the older handshake back to 2024-11-05, tested against the official MCP Python SDK 2.3.0. Ready configs for Claude Code (.mcp.json and permissions), Codex (config.toml) and Hermes (config.yaml), plus rules and a standing order for a Grok Bot. The configs were checked by the checker on Linux; they were not loaded inside each agent for this release
- Price: $29 USD
- Difficulty: Intermediate
- Setup time: 30 min
- Time to result: The checker on a server you already use in 5 minutes; the starter server connected to your agent in about half an hour
- Format: Markdown (.md) file, mcp-server-kit-tested-starter-approval-gated-tools-checker.md
- Version: 1.0, updated 2026-10-31
- License: Use inside your own team or company, including on client work. Do not resell or republish the kit itself.

## What you end up with

Your agent reads and changes real records through your own MCP server, no change lands until you approve that exact change, and every server you add has passed a check and a signed card first.

## What you get

- 18 sections and an appendix in one .md file, with a one-line unpack for all 34 files
- A stdio MCP server for a made-up plumbing company: three read tools, a draft tool and an apply tool, on the 2026-07-28 protocol and the older handshake
- The two-step write: the agent drafts, the owner approves at a terminal by typing the change id, and apply refuses anything edited, stale or already applied
- mcp_check.py: 35 finding codes for tools, live probes, configs and the connect card, from poisoned descriptions and open schemas to live keys and unpinned packages
- A connect card tied to the server file's sha256, so an edit after sign-off is caught
- Configs, rules and two skills for Grok Bot, Claude Code, Codex and Hermes, six owner stops, eight prompts and a failure table
- The test harness: 56 unit tests, 292 planted faults and 39 checks against the official MCP Python SDK, so you can repeat every result

## Who it is for

Anyone who wants an agent working through MCP while a person stays in charge of every change it makes.

## Tools needed

- Python 3.8 or newer: runs the starter server, the owner approval script and mcp_check.py; standard library only
- Grok Bot, Claude Code, Codex or Hermes: connects to the server through the ready configs and works under the AGENTS.md rules or the Grok Bot standing order; drafts changes, never approves them
- MCP Inspector (optional): a second way to list a server's tools; tested with Inspector 2.13.0 --cli
- You need: Python 3.8 or newer
- You need: An MCP client: Grok Bot, Claude Code, Codex or Hermes

Cost to run: The kit is the only purchase. Everything runs locally with Python; the checker makes no API calls.

## How it works

1. **Unpack and test.** Save the kit as pack.md in an empty folder, run the unpack line from section 18, then sh test_all.sh. Expected: 34 files written; 56 tests OK; 292 of 292 planted faults caught.
2. **Check what you already use.** Run python3 mcp_check.py config on your .mcp.json, Codex config.toml or Hermes config.yaml, and probe each server you rely on. Expected: A list of findings per server and config, or a clean line.
3. **Connect the starter.** Copy the config for your agent from configs/, point it at server/corrigan_mcp.py and run prompt 1. Expected: The agent lists five tools and repeats the stop points.
4. **Try the flow, then make it yours.** Run prompt 6, approve the change yourself with server/approve.py, then swap the made-up jobs for your own records and sign the connect card. Expected: One draft refused, then applied after your approval; CARD OK.

## Sample prompt: Setup check (Grok Bot, Claude Code, Codex, Hermes)

```
Read AGENTS.md and skills/mcp-server-builder/SKILL.md. Tell me the stop points in your own words, then list the corrigan-jobs tools you can see and say which ones change anything.
```

Prompt 1 of 8.

## Sample prompt: Review a server I found (Grok Bot, Claude Code, Codex, Hermes)

```
Use skills/mcp-server-review. Probe [command] with no secrets set, check the tools and the config, and tell me which tools to leave off the allow list. Do not install anything else.
```

Prompt 4 of 8.

## Sample prompt: Try the flow (Grok Bot, Claude Code, Codex, Hermes)

```
Draft a quote change for J-1045 to 520.00 with a reason, then call apply_change and show me the refusal. Then stop and wait for me.
```

Prompt 6 of 8.

## Free preview of mcp-server-kit-tested-starter-approval-gated-tools-checker.md

````markdown
# MCP Server Kit: a tested starter server, approval-gated write tools, and a checker

Version 1.0, 2026-10-31. By PaperChaseWebb. A small working MCP server for a made-up plumbing business where every read is one tool and every write is a draft plus an apply that waits for the owner, the owner approval script, a read-only checker for any MCP server or agent config (yours, a bought starter, or one your agent just wrote), ready configs and rules for Claude Code, Codex, Hermes and Grok Bot, two skills, and a connect card the owner signs before an agent gets the server. Python 3.8 or later, standard library only. Tested as described in section 10: 56 unit tests and 292 planted faults on Python 3.13, 3.12, 3.11, 3.9 and 3.8, 39 of 39 checks against the official MCP Python SDK 2.3.0 in both protocol eras, and probes of three official reference servers. All business data is made up. The configs were checked by the checker, not loaded inside each agent; each gap is marked where it matters.

Most MCP starter kits sell the plumbing: a template that answers tools/list, maybe auth and a Docker file. The part that hurts a small business is left to you. A tool that edits a quote or deletes a record runs the moment the agent calls it. A description in a server you installed can tell the model to do something you never asked for. A config file holds a live key and an unpinned package.

This kit starts from the other end. The server is small on purpose, and its write tools cannot finish witho
````

## Test record

- Date: Oct 31, 2026
- What was run: tests/test_check.py (45), tests/test_mini.py (4) and tests/test_server.py (7); tests/mutate.py with 292 cases (7 clean baselines and planted faults across tools, probes, configs, the connect card and server behavior); tests/live_sdk.py, 39 checks with the official MCP Python SDK 2.3.0 client against the server in both protocol eras; MCP Inspector 2.13.0 --cli tools/list; probes of three official reference servers; make_example.py; and the unpack line with test_all.sh. Linux, Python 3.13, 3.12, 3.11, 3.9 and 3.8.
- Result: 56 passed, 0 failed on all five versions; 292 of 292 planted faults caught with all 7 baselines clean; 39 of 39 SDK checks; Inspector listed all five tools; the unpack line wrote 34 files and test_all.sh passed there.
- Not run: A live Grok Bot, Claude Code, Codex or Hermes session using the server. HTTP transport or OAuth. macOS or Windows. Real business data. A full YAML parser for Hermes configs.

Copied from this item's dated test notes. What was not run stays in.

## Worth knowing

- The configs and rules were checked by the checker but not loaded inside a live Grok Bot, Claude Code, Codex or Hermes session for this release. Run prompt 1 once and check the agent sees five tools and repeats the stop points before you rely on it.
- The server is stdio only. HTTP transport, OAuth and hosted servers are not included or tested.
- The approval step assumes the agent cannot run approve.py at a terminal or write the approvals folder. Run the server as a separate user or make that folder writable only by you; agent permission rules alone are not a hard boundary.
- The checker reads tool lists and config files and never calls a tool. It finds the faults it has codes for; it does not prove a server is safe. YAML configs are read with a line scan, not a full parser.
- All business data is made up. Tested on Linux only; macOS and Windows were not tested.
- On 2026-10-31 on Linux: 56 unit tests, 292 of 292 planted faults and 39 of 39 checks against the official MCP Python SDK 2.3.0 passed on Python 3.13, 3.12, 3.11, 3.9 and 3.8; MCP Inspector 2.13.0 listed the server's tools; the unpack line wrote 34 files and test_all.sh passed in that folder.

## Questions

**Which agents does it work with?** Any MCP client that runs stdio servers. The kit has ready configs for Claude Code, Codex and Hermes and a standing order for a Grok Bot. Those were checked by the checker, not loaded in each agent for this release.

**Can my agent approve its own changes?** Not through the server. There is no approve tool, and approve.py needs a real terminal and the change id typed by hand. Run the server as a separate user so the agent cannot reach that script or folder at all.

**Will the checker work on servers I already installed?** Yes. Probe any stdio server to get its tool list, or point the checker at a saved tool list or an agent config. It reads only and never calls a tool.

**How is this different from the MCP server setup playbook?** The playbook helps you connect your agent to servers other people built. This kit gives you a server of your own with gated writes, and a checker for every server you add.

**Can you build one for our business?** Yes. Our Install sprint builds an MCP server on your own records with the same approval step and connects your agents. Book a call or write to mgmt@paperchasewebb.com.

## How to buy

$29 one time at https://paperchasewebb.ai/bots/marketplace/items/mcp-server-kit-tested-starter-approval-gated-tools-checker/. Stripe checkout, then an instant download page; the download link is also in your emailed receipt.

Seller: PaperChaseWebb Inc., mgmt@paperchasewebb.com
