D
dominicfarr/mcp-secuirty-working-notes-example
simple reference on mcp security model through client policies and server elicitation
no SECURITY.md
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
We have neither an install command nor a public remote endpoint from this repository, so we do not print a config. A made-up one is worse than none. How each client wires MCP up →
- Star count
- 2 ★ · dominicfarr/mcp-secuirty-working-notes-example · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- read directly from its GitHub page · type: open-source project
- Harvest history
- first seen 2026-10-22 · last seen 2026-11-14 · seen 27× · listed by 1 sources
- Score
- score 103 · 2 ★ · 1 sources · repo
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
dominicfarr/mcp-secuirty-working-notes-example;first catalogued 2026-10-22;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.# MCP Secuirty Reference
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A small, runnable reference for where security lives in MCP: what the client decides, what the server must check, and what changes when a model makes the calls. Client and server run locally over stdio; every guarantee has a test named after it.
Write-up: MCP Security series (Part 1), and MCP stopped waiting on the move to MCP 2026-07-28.
## The parts
The project is organised by threat rather than by MCP primitive:
| Part | What it shows | Read |
| 1. Deterministic controls (client/app.py, no LLM) | Tool permission policies, binding human-in-the-loop approval, audit logs on both sides, server-side path validation, the allowed folder, and elicitation over multi round-trip requests | docs/part-1-controls.md |
| 2. Model in the loop (client/host.py) | The same client and server with an LLM making the calls. With its defences off it is a baseline: a planted instruction in a file the model reads steers it into a write nobody asked for. Two client-side rules stop that: changes ask once untrusted content is in the chat, and a call you said no to isn't retried in the same turn. Tool poisoning and changed tool definitions are future work | docs/part-2-host.md |
| 3. Remote-server authorization (separate repo, not started) | OAuth and token handling for MCP servers over HTTP | |
## Quick start
bash
python3 -m venv mcpsecurityenv && source mcpsecurityenv/bin/activate
pip install -r requirements-dev.txt
python3 client/app.py server/server.py # Part 1: http://127.0.0.1:7863
python3 client/host.py server/server.py # Part 2: http://127.0.0.1:7864 (needs a model, below)
pytest # every guarantee, about 1 minute
Part 2's model defaults to a local one, free: brew install ollama, start it, then ollama pull qwen2.5:7b. OpenAI and Anthropic work too; see Part 2.
## More
Development: setup details, tests and CI, the lock file, project layout, and protocol versions (this repo speaks MCP 2026-07-28 only).
Write-up: MCP Security series (Part 1), and MCP stopped waiting on the move to MCP 2026-07-28.
## The parts
The project is organised by threat rather than by MCP primitive:
| Part | What it shows | Read |
| 1. Deterministic controls (client/app.py, no LLM) | Tool permission policies, binding human-in-the-loop approval, audit logs on both sides, server-side path validation, the allowed folder, and elicitation over multi round-trip requests | docs/part-1-controls.md |
| 2. Model in the loop (client/host.py) | The same client and server with an LLM making the calls. With its defences off it is a baseline: a planted instruction in a file the model reads steers it into a write nobody asked for. Two client-side rules stop that: changes ask once untrusted content is in the chat, and a call you said no to isn't retried in the same turn. Tool poisoning and changed tool definitions are future work | docs/part-2-host.md |
| 3. Remote-server authorization (separate repo, not started) | OAuth and token handling for MCP servers over HTTP | |
## Quick start
bash
python3 -m venv mcpsecurityenv && source mcpsecurityenv/bin/activate
pip install -r requirements-dev.txt
python3 client/app.py server/server.py # Part 1: http://127.0.0.1:7863
python3 client/host.py server/server.py # Part 2: http://127.0.0.1:7864 (needs a model, below)
pytest # every guarantee, about 1 minute
Part 2's model defaults to a local one, free: brew install ollama, start it, then ollama pull qwen2.5:7b. OpenAI and Anthropic work too; see Part 2.
## More
Development: setup details, tests and CI, the lock file, project layout, and protocol versions (this repo speaks MCP 2026-07-28 only).
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/dominicfarr-mcp-secuirty-working-notes-example/)
- Source
- github · https://github.com/dominicfarr/mcp-secuirty-working-notes-example
- Browse by field
- MCP servers
- Traction
- 2 ★
- added
- today
- Security policy
- no
SECURITY.mdat the repository root (which does not mean it is unsafe)
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.