A Model Context Protocol server implementing revision 2026-07-28, publishing
seven read-only tools over one contained workspace.
An MCP server launched by your editor runs as you, with your filesystem
privileges, and everything it returns reaches a language model. This one treats
both halves of that seriously: the sandbox is tested as though someone is
attacking it, and file content is returned marked rather than rewritten.
What is in it
- Protocol. The stateless per-request model of 2026-07-28 — no
initialize
handshake, mandatoryserver/discover,resultTypeon every result, and the
-32020error family. A legacyinitializeis answered with-32022naming
what this server speaks. - Sandbox. Paths are resolved on the real filesystem before being checked
against the resolved root, and the denylist matches the resolved name — so
docs/../.envis the same request as.env. - Secrets. 17 credential shapes redacted from the assembled result, so both
the prose and the structured half are covered, with the count and rules
reported. - Untrusted content. Fenced with a per-response nonce, scored by 10
injection signals, and returned byte-identical to disk. Marking, not
neutralising — the developer asked to read that file. - Read-only by construction. No write, no shell, no test runner, no network
fetch. One subprocess:git logandgit diff, with fixed argv, a scrubbed
environment andprotocol.ext.allow=never. - A conformance suite. 23 checks derived from the specification, runnable
against any 2026-07-28 server over stdio or HTTP, exiting non-zero on failure
— and itself tested by breaking things and asserting the checks go red.
Verified
- 527 tests across five layers at 91% coverage against an 88% gate
- ruff, mypy strict, bandit, pip-audit, gitleaks (tree and full history),
CodeQLsecurity-extended, Trivy filesystem and image — all clean, no
continue-on-error - The conformance gate green in-process, over a real stdio process, and inside
the built container - Container built, scanned, and smoke-tested over HTTP against a real workspace
Getting started
uvx --from mcp-devserver mcp-devserver --workspace . doctor
uvx --from mcp-devserver mcp-devserver --workspace . call project_overviewDocumentation: https://kogunlowo123.github.io/mcp-developer-server/