Repositories

15 public repositories, grouped by what they are for. Every one is re-resolved signed out by a scheduled check, so each link resolves for you exactly as it resolves for me. A repository that goes private, gets renamed or turns out to be a fork breaks that check instead of sitting here as a link that works only for me.

There are no star counts or activity badges on this page. They drift within days and nothing here re-derives them, so publishing them would mean publishing something that quietly stops being true. The counts that are published live on the record, where CI recomputes them against the GitHub API and a claim that fails breaks the build.

Everything here is public. What follows is the part you can read, clone and run — source, tests and commit history open to anyone who wants to check the claims against the code.

Verification tooling

Built to be installed by other people, and held to the standard it checks for. This is the one group here that is distribution rather than working code — versioned, licensed, and running its own guards in CI.

  • viewer-parityJavaScript@bryan-anthropic

    A GitHub Action that checks published figures and links from the reader's seat. GitHub search returns what the caller can see, so a query like "is:pr is:merged author:you" silently counts pull requests in private repositories you have access to — publish that number and it is larger than the one a stranger gets from the link beside it. It re-derives each claim unauthenticated, and fails when a figure falls below its published floor, when a query's answer could depend on who is asking, when the link beside a figure does not resolve signed out, or when a pull request lowers a floor.

    The pattern behind /record, extracted so it runs on anyone's repository. Warnings never fail the build — a rate limit or a bot-protection 403 means the checker could not ask, which is not an answer about the claim.

    The same discipline applied to this site

MCP server assessment

Where the pipeline work started. These are the public halves of a private production system — the research build that proved the approach, and the management surface built on the same foundation.

  • An expanded build of the MCP Inspector that adds an automated assessment pass over a server: it exercises every declared tool, checks the declarations against observed behaviour, and reports what it found rather than only giving you a console to poke at.

    Derived from modelcontextprotocol/inspector.

    Archived — it was the research phase, and the experiment returned a negative result. Still published to npm as @bryan-thompson/inspector-assessment and still runnable against your own server.

    What it found, and why it stopped

  • mcp-dashboardTypeScript

    A management and monitoring interface for running several MCP servers at once: connection state, tool inventories, and request inspection across servers in one view.

    Built on the same Inspector foundation as inspector-assessment.

MCP servers

Servers written to be consumed by a model rather than by a person — which mostly means the interesting decisions are about tool surface and failure behaviour, not features.

  • Exposes a local or hosted Ollama instance over MCP, so models served outside the provider APIs can be driven through the same tool interface as everything else.

  • A knowledge-graph memory server — entities, relations and observations that persist across sessions instead of living only in a context window.

    Derived from the upstream memory MCP server.

  • Redis-backed response caching and key-value operations over MCP. Small on purpose: it exists so repeated identical model calls stop costing anything.

  • Generates n8n workflow definitions from a natural-language description of the workflow.

  • Command-line execution on Windows over MCP, written because the available servers broke on the character handling that real Windows shells require.

  • snap-happy-mcpTypeScript

    Screenshot capture over MCP, extended to work under Windows and WSL2.

    Derived from the upstream snap-happy server.

Developer tooling

Tools built for a working session rather than for distribution. They are here because they are real and readable, not because they are polished.

  • agentgenPython

    A management and deployment system for Claude Code agents — a central definition store with installation into individual projects.

  • speak-appPython

    A single `speak` command that routes text to whichever TTS provider is available, so long-running builds and agent sessions can talk back without wiring up a provider each time.

  • An experimental REST wrapper around the Claude Code CLI, written to compare model behaviour across configurations. Labelled experimental because it is.

  • A multi-agent pass over a GitHub repository that produces documentation from the source, splitting the work across agents by document type.

  • VectorCodeLensJavaScript

    Vector-embedding search over a codebase, exposed through MCP so a model can ask questions of a repository it has not read.

  • Search and result grouping for the Jellyfin web client. Unrelated to the MCP work — included because it is a real, readable contribution to something people use.

What is not on this list

Four repositories the previous version of this site linked are unreachable for everyone — they were checked signed out and return 404, so listing them would only waste your time. Three others are forks carrying no work of mine worth a line. The consultancy-era repositories — authentication and payment boilerplates, a resume product, client data automation — predate this work and were removed rather than relabelled.

Full list at github.com/bryankthompson.