Field notes

Notes from building with Claude

Specifics, not overviews. What the current MCP specification actually requires, what a request really costs, where agents break, and what the EU AI Act means for a company shipping this quarter.

All MCP6 Claude API2 Security1 Compliance1

Everything else

Written for the person doing the work. Every code sample is executed before publishing, and anything version-dependent carries the date it was verified.

02

Testing and debugging MCP servers before you ship New

Three layers need testing and most teams only cover one. A working pytest suite you can copy, including the protocol conformance checks the current revision made necessary.

03

Prompt injection in tool-using agents — a worked example New

We found a hidden instruction block on a live marketing site while reviewing it. On a page with no agent reading it, that payload does nothing. Point an agent with tools at it and it becomes an instruction.

04

OAuth for remote MCP servers, as the spec defines it today

Most guides tell you to implement Dynamic Client Registration. The current specification marks it deprecated. Here is the authorization flow MCP actually requires now — discovery, registration, resource indicators and issuer validation.

05

stdio or Streamable HTTP — choosing an MCP transport

There are two standard MCP transports, and SSE is not one of them any more. What each binding actually guarantees, how cancellation differs, and the deployment constraints that make the choice for you.

06

MCP without initialize — migrating to the 2026-07-28 revision

The current MCP revision removes the initialize handshake entirely. Servers are stateless, every request carries its own protocol version, and most of the MCP material on the internet now describes a legacy protocol.

07

Model selection is a cost-per-resolved-task problem, not a price-per-token one

A model that costs a fifth as much but needs three attempts is not cheaper. Here is how to build the comparison that actually predicts your bill — and why Sonnet 5's September price change should send you back to it.

08

What your MCP tool definitions cost on every single request

Tool definitions sit in the context window before the user has typed anything, on every request, forever. Here is a script that measures the bill — and the reason a one-character change to a description can invalidate your entire cache.

09

Claude prompt caching — automatic, explicit, and the lookback trap

The cache does not find stable content behind your breakpoint. It finds entries earlier requests already wrote. Understanding that one sentence is the difference between an 80% discount and paying a premium on every request.

10

Designing MCP tool schemas a model actually uses correctly

The model never sees your implementation. It sees a name, a description and a JSON Schema — and that is the entire interface. Most tool-calling failures are interface design problems wearing a model's clothes.

Working on something like this?

We build Claude integrations, MCP servers and agentic workflows for startups and SMBs in the Netherlands and across the EU.

Book a free consult