Consulting
MCP Server Development
Model Context Protocol servers that let Claude, ChatGPT, Cursor or your own agents use your system safely: typed tools over existing services, OAuth, per-user permissions and a full audit log.
The interface you built covers the interactions you predicted: forms, tables, filters, exports. Everything else waits for the next sprint, or ends up in a spreadsheet. The Model Context Protocol (MCP) closes that gap without rewriting anything. It defines how a language model discovers and calls tools exposed by a server, so Claude, ChatGPT, Cursor or your own agent can work with your system through the same services your UI already uses.
I design and build MCP servers for business systems, mostly in Laravel and PHP.
What an MCP server for your system looks like
Each tool is a small, typed callable: a description the model reads, an input schema it must satisfy, and a handler that calls your existing actions and services. No business logic is duplicated and nothing bypasses the rules you already enforce.
- Tools over existing services. Reporting queries, lookups, drafts, status changes. The handler calls the same code your controllers call.
- Read-only by default. Write tools are added deliberately, one at a time, with confirmation steps where a human should stay in the loop.
- Authentication and permissions. OAuth 2.1 so each person connects with their own identity, and your existing policies decide what each of them can see and do.
- Traceability. Every tool call is logged with who asked, what was called, with which arguments and what came back, so you can answer "who read what, and when".
- Resources and prompts. Reference data and reusable prompts exposed alongside the tools, so answers start from your context rather than the model's guesses.
What not to expose
A good MCP server is defined as much by what it leaves out. Bulk exports, raw SQL, anything that would let a model work around tenant boundaries, and destructive actions without a human confirmation stay out. Deciding that list is part of the work, and it is written down so it survives the next feature request.
Shipped examples
- notedigit.com turns a private Git repository of Markdown notes into an MCP knowledge base: read-only search, read and list tools, OAuth 2.1 per-user access, no persistent storage and a full audit log. The thinking behind it is in Knowledge as Code.
- espectro.dev exposes Sanzo Wada's color dictionary through a public API and an MCP integration for AI-assisted design work.
What you get
- A tool inventory: what to expose first, what to keep out, and why.
- A production MCP server inside your application or beside it, with tests, authorization, logging and rate limits.
- Connection guides for the clients your team uses (Claude, ChatGPT, Cursor, internal agents).
- A pattern your team can extend tool by tool.
When it fits
You have a system with valuable data and well-defined operations, and people who keep asking for "just one more report" or "a quick way to check X". If the answers live in your database and the rules live in your code, an MCP server is usually the shortest path to a natural-language layer on top.