A developer going by 'friendlygeorge' just dropped some serious insider knowledge on the MCP (Model Context Protocol) ecosystem. Over several weeks, they cranked out MCP servers for nine major SaaS platforms โ CoinGecko, Stripe, Jira, PostHog, Plausible, Etherscan, DeFiLlama, Jobber, and Resend โ shipping 68 tools total to npm with Glama indexing. The result is a repeatable architecture pattern that anyone building MCP integration should study closely.
The Three-Layer Blueprint
The pattern breaks down into three distinct layers. First, Tool Definitions serve as the contract between your API and the LLM โ each endpoint becomes an MCP tool with typed input schemas using Zod for validation. Friendlygeorge emphasizes that descriptions matter more than most devs realize: a vague 'send email' wastes tokens, while 'Send a single transactional email via Resend API. Supports HTML and plain text. Returns message ID and delivery status.' actually gets used correctly by the model. The second layer handles the plumbing โ auth, rate limiting, and error transformation. The critical insight here is don't leak raw HTTP errors to the LLM. Instead of throwing 'Error: 429,' surface something actionable like 'Rate limited by Resend API. Retry after 30 seconds. You've sent 100 emails in the last hour.' The third layer formats output as markdown tables or bullet points instead of raw JSON dumps, because LLMs need scannable text to make good decisions about what comes next.
Patterns That Keep Working
Three techniques emerged as essential across all nine servers. Mock Mode returns realistic fake data without live API credentials โ huge for both development and testing. Progressive Disclosure prevents dumping 18 tools on the LLM when it only needs three; group by use case so developers sending emails never see domain management options. Error Recovery handles retries internally and surfaces clear 'try again' instructions with specific guidance rather than stack traces.
Why MCP Distribution Matters Now
MCP is rapidly becoming the standard connection layer for AI assistants โ Claude Desktop, Cursor, Windsurf, and others already support it. But here's the gap: most SaaS APIs don't have MCP servers yet. That creates a massive opportunity for first movers. Being listed in an MCP directory is like being in an app store โ it's distribution you can't buy elsewhere. Once one solid server exists for an API, there's little incentive to build another. Friendlygeorge offers a template for what they deliver: TypeScript MCP server with Zod validation, structured error messages, markdown output optimized for LLM consumption, mock mode, npm publication under the client's scope, and Glama listing with README documentation. Typical turnaround runs 1-3 days for standard REST APIs.
The Bottom Line
This is exactly the kind of pattern documentation the MCP ecosystem needs right now โ real numbers, real tools, no fluff. The three-layer architecture isn't groundbreaking, but having it validated across nine different API surfaces makes it credible. If you're building SaaS integration into AI workflows and not thinking about MCP first-movers, you're already behind.