Pete

The Stack

All posts / Python (7)

Ithaca, NY

Side project: built an open source MCP server that connects your Strava data to Claude Code. Ask questions like 'how far did I run this week?' and get formatted stats back. Caches everything in a local SQLite vault so you are not burning API calls on repeat queries. Handles token refresh, bulk sync, and runs as a Docker container. A friend is already forking it and helping improve it. That is what open source is about.

github.com/pete-builds/strava-mcp-vault ↗

Refactored the SEO audit agent. Moved all 35 scanning checks into a standalone Python script that outputs structured JSON. The agent file went from 440 lines to 95. Same functionality, way fewer tokens burned per session.

Also added a 7th audit category: Content Freshness. Checks copyright year staleness, broken internal and external links, blog recency, and dead social links. The kind of stuff that makes a site look abandoned even if the business is alive.

Built a second audit tool. Niobe checks if search engines can find you. Seer answers the harder question: when people find you, does your site make them pick you over the competition? Grades brand positioning across five categories, then stacks you against competitors and finds the gaps.

Ran it on myself first. brooksnewmedia.com: C (76.8). Strong messaging, weak digital footprint. Then ran five Ithaca competitors. Two are ghosts. One makes ROI claims with zero proof. I don't need to outspend them. I need to out-present them.

Two audit tools now. Two data-backed conversation starters for every discovery call.

Built a new SEO auditing tool today. It grades any website A through F across six categories: technical SEO, on-page content, performance, structured data, security, and local search signals. Runs a full audit in minutes. Named it Niobe.

Started building MCP servers to connect our infrastructure directly to Claude Code. Model Context Protocol turns any API into a tool that the assistant can call natively. Five servers running now: media management, fitness tracking, server monitoring, diagramming, and analytics. Each one is a Python FastMCP container on the same Docker host. SSE transport so they are accessible from any machine on the network.

Shipped Model Arena, a tool for comparing language model outputs side by side. Send the same prompt to multiple models, see the results in real time. Built with Python and FastAPI, streams responses via SSE. Useful for picking the right model for a given task instead of guessing.

Added LiteLLM as an API gateway in front of all our language models. One endpoint, multiple providers. Route requests to local Ollama models or external APIs through the same interface. PostgreSQL backend tracks usage and costs. Swap models without changing a single line of application code.