MCP servers
5 postsMCP servers we run in production
Eight servers published under io.scalably plus the third-party servers we pin, each with one install line for Claude Code and Codex and a page agents can read.
Open the gallery →What is an MCP server? A clear explainer for developers
The Model Context Protocol without the jargon: what an MCP server is, the client-server model, tools vs resources vs prompts, and why it exists.
Read the explainer →How to build an MCP server in Python (production guide)
A working guide built around a real, open-source read-only Shopify server. Tools, annotations, the safety boundary tutorials skip, and five mistakes worth avoiding.
Read the guide →How to build an MCP server in TypeScript (the right way)
A minimal MCP server with the official TypeScript SDK, using the current stable API and the zod schema shape that trips most people up.
Read the guide →MCP Inspector: how to debug and test your MCP server
The official MCP debugging tool, end to end. How to run it, what each panel does, and the silent failures it catches before a client ever sees them.
Read the guide →MCP vs function calling: what's the difference?
They're not competitors. Function calling is the model deciding when to use a tool; MCP is the standard for how tools are delivered. How they fit together.
Read the explainer →Claude Code and the Claude Agent SDK
13 postsClaude Code agent teams: what they are, when to use them
What a team is, how the lead, teammates, task list, and hooks fit, what it costs, and why a production content pipeline runs subagents with file handoff instead.
Read the guide →Claude Code skills: SKILL.md, triggers, and context cost
SKILL.md frontmatter that changes behavior, dynamic context and its failure modes, the listing budget, and a real /skill-doctor report from a 66-skill setup.
Read the guide →Claude Code plugins: install, build, and distribute
What a plugin contains, the two-step marketplace install, building with --plugin-dir, the marketplace file, and when a standalone .claude directory is the better answer.
Read the guide →Claude Code memory: CLAUDE.md, auto memory, and rules
CLAUDE.md scopes and load order, path-scoped rules, how auto memory and its 200-line index work, what survives compaction, and the failure modes of memory at scale.
Read the guide →The Claude Agent SDK: build your own agent
The same engine that powers Claude Code, driven from your own program. What the SDK gives you in production, how tools and MCP servers plug in, and when to reach for it.
Read the guide →Claude Code hooks: a practical guide
Hooks are shell commands that run at lifecycle events. The settings.json schema, exit-code behavior, a real guard example, and the gotchas worth knowing.
Read the guide →Claude Code settings.json: the configuration guide
The files that merge into one config, the permissions rules that decide what runs, env, MCP servers, and the multi-tenant default-deny setup we run across 21 client accounts.
Read the guide →Claude Code MCP: how to add an MCP server
The claude mcp add command, the three scopes and which file each writes to, the .mcp.json your team commits, and how project servers get approved before they run.
Read the guide →Claude Code subagents: how and when to use them
Subagents get their own context window and tool scope. How to define one, why the separate context matters, and the honest case for when not to bother.
Read the guide →Claude Code vs Cursor: an honest 2026 comparison
Two strong tools that have grown into each other's lanes. Where each genuinely wins, the real pricing, and which one to reach for when.
Read the comparison →Claude Code best practices from 21 client accounts
Default-deny permissions, a CLAUDE.md that earns its tokens, hooks as real guardrails instead of reminders, and knowing when not to delegate.
Read the guide →How to build an AI agent: four ways, with code
A complete agent loop in fifteen lines, the four ways to build an agent and when each is right, and what actually breaks once it runs on live tools.
Read the guide →Claude Code commands: what changed, and how to write one
Custom commands are now skills. Where the file goes, the precedence order people get wrong, the zero-based arguments trap, and shell injection inside a command.
Read the guide →Local inference and models
2 postsMoE vs dense LLM inference: vLLM benchmark on two RTX 5090s
A 35B mixture-of-experts model against the dense 27B we run in production, on the same two GPUs with the same vLLM flags: 107 measured cells, KV capacity, tool calls, and where each one wins.
Read the benchmark →Qwen3.8-27B NVFP4 on two RTX 5090s: production field report
What Qwen, Unsloth, vLLM and Blackwell each contribute, the exact serving configuration, fourteen days of production counters, the failure modes, the official recipe compared, and the planned post-training loop.
Read the field report →Codex and OpenAI
2 postsCodex skills: build reusable workflows that trigger
A complete SKILL.md, the trigger design that decides whether it runs, how to split scripts from judgment, and when a local skill should become a plugin.
Read the guide →Codex vs Claude Code: why I moved my workflow
Why personal coding, orchestration, remote, and mobile work moved to Codex while Scalably's production Claude Agent SDK runtime did not.
Read the comparison →