---
title: "Mcp"
url: https://www.grahambrooks.com/tags/mcp/
---

# Mcp

- [teleplot 2026.10.0: Kibana dashboards without Kibana, in one binary](https://www.grahambrooks.com/post/teleplot-first-release/index.md) (2026-10-25): teleplot v2026.10.0 is the first release of a single-binary, view-only dashboard server that renders Kibana exports and its own YAML dashboards straight from Elasticsearch 8.x and 9.x.
- [symgraph v2026.10.18: a vendored minified file stops topping your dependency graph, and an export for analytics](https://www.grahambrooks.com/post/symgraph-2026-10-18-export/index.md) (2026-10-19): symgraph v2026.10.18 keeps generated and minified code out of the dependency graph and adds `symgraph export`, which writes coupling and per-commit change-impact records as JSON Lines.
- [When an agent can already write the file, what is an MCP server for?](https://www.grahambrooks.com/post/what-is-an-mcp-server-for/index.md) (2026-10-04): If an agent can already write your tool's file format, an MCP server has to give it something the file can't: live discovery, validation against the real system, a preview of the result, and a save with rules. Teleplot's endpoint was built only because it passed that gate, and it passed more narrowly than I first thought. Most MCP servers should fail it and be a file format plus a linter.
- [Making a Code Graph Admit What It Doesn't Know (symgraph)](https://www.grahambrooks.com/post/symgraph-admitting-what-it-does-not-know/index.md) (2026-09-22): A code-intelligence index answered every question it was asked. Sixteen percent of its call edges pointed at things that cannot be called, its truncated lists said nothing about being truncated, and one of its tools had never worked at all. The month's work was almost entirely about replacing confident answers with calibrated ones.
- [Giving the Consumer a Representative in the Working Tree (brake)](https://www.grahambrooks.com/post/brake-exit-criteria-for-the-consumer/index.md) (2026-08-24): Every signal an agent uses to decide it is finished — compiler, tests, linter — is a question about the repository it is standing in. The consumers of the API it just changed are somewhere else entirely. brake makes 'who does this break?' answerable from files already in the tree, with no network, no broker, and no running service.
- [Running Local MCP Servers Without a Node or Python Runtime (bx)](https://www.grahambrooks.com/post/bx-lighter-mcp-servers/index.md) (2026-05-23): MCP server configs across the ecosystem default to npx . That quietly forces a Node runtime onto every machine that wants to run a native binary tool. bx is the missing primitive for the other case. I spent the weekend…
- [The Agentic Inner Loop: Sensors, Substrate, and Skills for Polyglot Development](https://www.grahambrooks.com/post/inner-loop-agentic-development/index.md) (2026-05-23): What the developer inner loop becomes when a coding agent is doing most of the iteration — and the substrate, sensors, codemods, and skills you need to build for it.
- [Building a Code Knowledge Graph for AI Agents](https://www.grahambrooks.com/post/building-a-code-knowledge-graph-for-ai-agents/index.md) (2026-02-15): Building a Code Knowledge Graph for AI Agents How I rebuilt codegraph in Rust to give AI coding assistants a semantic map of your codebase There’s a fundamental tension at the heart of agentic coding today. AI models are remarkably…
