← Selected work
03

Internal MCP servers

Custom Model Context Protocol servers that connect Claude to internal APIs and databases. Around 8 product teams use the stack. Features that used to take a sprint now take a day or two.

MCPPythonAnthropic APIInternal APIs
Teams using the stack
~8
Typical feature ship time
1-2 days vs 1 sprint

The problem

Every team building on Claude was writing their own glue to internal systems. Auth, retry, schema, observability — five times over, slightly differently each time.

The shape

A library of MCP servers, one per internal system, with a shared base that handles auth, rate limiting, structured errors, and OTel traces. Teams compose the ones they need. Adding a new tool means writing the resource handler, not the plumbing.

Key decisions

Why it sped things up

The old loop was “wire up auth, write the API client, handle retries, decide on a schema for the LLM, debug it for two days.” The new loop is “import the server, write the tool function, ship.”

← All work Get in touch →