ExampleArticle
datasette-mcp adds a /-/mcp endpoint to any Datasette instance exposing three tools — list_databases(), get_database_schema(), and read-only execute_sql() — giving agents the ability to run SQL queries against a hosted Datasette instance, and it is a fourth attempt that finally felt releasable thanks to the stateless spec.
The second project, datasette-mcp, is a Datasette plugin exposing three MCP tools (including read-only execute_sql) that let agents query a hosted Datasette instance — the fourth attempt at the plugin, which finally felt good enough to release because of the new stateless specification. ✦ AI generated
Simon Willison · Simon Willison's Weblog · 2026-07-31 · original ↗
The second project is datasette-mcp, a Datasette plugin which adds a /-/mcp endpoint to any Datasette instance. This is probably the fourth time I've tried building this plugin, but thanks to the new stateless MCP specification I finally have a version that feels good to release. It provides just three tools: list_databases(), get_database_schema(database_name), and execute_sql(database_name, sql). They do exactly what you would expect them to do - though execute_sql() is read-only for the moment. Wire these into an agent, or a chat tool like ChatGPT or Claude, and they'll gain the ability to run SQL queries against your hosted Datasette instance. So far I'm running it on the Datasette mirror of my blog, at datasette.simonwillison.net/-/mcp. It took a bit of fiddling to figure out how to attach that to ChatGPT and Claude, but I got there in the end.
Read full article ↗excerpt · fair-use quotation
Around this claim
This moment responds to
gives example → The 2026-07-28 stateless MCP specification (MCP 2.0) is the most significant change to the Model Context Protocol since it first launched, and it has reignited my interest in a protocol that had been eclipsed by Skills and by agent harnesses with terminal and curl access.Simon Willison · Simon Willison's Webloggives example → Giving an agent a shell environment with internet access is fraught with risk and requires a strong driving model, whereas MCP tools are easier to audit and control and are simple enough that smaller laptop models can drive them, and the stateless spec greatly cuts client and server implementation complexity.Simon Willison · Simon Willison's Webloggives example → Legacy stateful MCP required two HTTP requests — an initialize handshake to obtain a Mcp-Session-Id followed by the actual tool call — while stateless MCP collapses this to a single request, which is much cleaner to implement from both client and server sides and a better fit for scalable web applications that need no server-side session state.Simon Willison · Simon Willison's Weblogprovides context → MCP lets a host application route a user request through an embedded MCP client to the correct MCP server, which executes the tool call and returns a structured response the agent uses to continue reasoning.ByteByteGo · ByteByteGo Newsletter