local-mcp-toolbox

local-mcp-toolbox

A secure, local-first MCP server for read-only inspection and troubleshooting of development environments, exposing narrow, typed, auditable capabilities for repository inspection, log summarization, Docker review, and security scanning without granting unrestricted machine access.

Category
Visit Server

README

Local MCP Toolbox

A secure, local-first Model Context Protocol (MCP) server for inspecting and troubleshooting development environments without granting an AI assistant unrestricted machine access.

Status

This repository is in Phase 1 — Discovery and Architecture. The scaffold, security model, configuration profiles, and architecture decisions are established. The read-only implementation has not begun; no MCP tools are registered yet.

Why this project exists

AI assistants are useful at diagnosing infrastructure and code, but a generic shell tool or unrestricted Docker socket turns a helpful integration into a high-privilege control plane. Local MCP Toolbox is designed to expose narrow, typed, auditable, read-only capabilities instead: inspect a repository, summarize logs, review Docker state, and identify risky configuration.

Version 1 scope

Version 1 delivers the secure read-only core:

  • MCP stdio server and Typer CLI
  • Permission profiles, path containment, output limits, structured errors, audit records, and centralized redaction
  • System, filesystem, Git, Docker, logs, security-scanner, infrastructure-inventory, and incident-summary modules
  • Native and Docker deployment, tests, and client configuration examples

GitHub, Kubernetes, local-LLM, HTTP transport, dashboard, and all write operations are deliberately deferred. See ROADMAP.md.

Architecture

flowchart LR
  C["MCP client"] --> T["stdio transport"]
  T --> S["MCP server / tool registry"]
  S --> P{"Permission decision"}
  P -->|allowed| M["Narrow read-only tool module"]
  P -->|denied| E["Safe structured error"]
  M --> R["Redaction + output limits"]
  R --> C
  S --> A["Audit log (sanitized metadata only)"]
  M --> F["Approved local integrations"]

All analyzed content is untrusted data. Tool modules never interpret file, log, issue, label, or commit content as instructions.

Security model

  • Deny by default: the restricted profile permits only configured filesystem roots and no integrations.
  • Read-only Version 1: no generic command execution, mutations, stop/restart operations, commits, or remote tool execution.
  • Narrow interfaces: every tool has typed, validated inputs; external binaries (when needed) use fixed argument templates and no shell.
  • Data minimization: canonical path checks, symlink-escape prevention, blocked sensitive patterns, result limits, and redaction happen before output.
  • Accountability: every request writes a sanitized JSONL audit event. Secrets are never written to audit logs.

See docs/security-model.md, docs/threat-model.md, and docs/adr/.

Proposed layout

src/mcp_toolbox/
  server/        MCP lifecycle and modular registration
  tools/         Narrow read-only tool domains
  permissions/   Profile and integration authorization
  redaction/     Sensitive-data detection and fingerprints
  audit/         Sanitized JSONL audit events
  config/        Typed settings loading
  models/        Shared response and error contracts
  resources/     Safe MCP resources
  prompts/       Reusable safe MCP prompts
  cli/           Operator-facing commands
tests/           Unit, integration, and security regressions
config/          Restricted, standard, and example profiles
docs/            Architecture, threat model, ADRs, and operating guides
examples/        MCP-client configuration examples
demo/            Explicitly non-production test fixtures

Engineering decisions

  • Read-only by default makes the security boundary understandable and contains the blast radius.
  • Generic shell execution is prohibited because validation cannot reliably make arbitrary command execution safe.
  • Local AI is preferred for later summarization features so sensitive logs do not leave the machine by default.
  • Docker socket access is opt-in and will be documented as a privilege boundary, not treated as routine plumbing.
  • Untrusted content will be labeled in response envelopes to reduce prompt-injection risk.
  • Audit logging and redaction are cross-cutting services, not optional behavior added per tool.
  • Deterministic collection/parsing remains separate from any future AI-generated explanation.

Planned quick start

The commands below become available after the core foundation is implemented:

uv sync --extra dev
uv run local-mcp-toolbox doctor
uv run local-mcp-toolbox serve --config config/restricted.yml

Documentation

Why This Project Matters

This project demonstrates how to connect AI systems to real developer environments without equating "useful" with "unrestricted." It combines MCP protocol design, least-privilege authorization, DevOps diagnostics, redaction, auditing, container safety, and testable operational tooling.

License

MIT. See LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured