# What is an MCP server? A developer reference (2026) · Stacktree

Source: https://stacktr.ee/blog/mcp-servers-explained-for-developers

[Skip to content](#main) [Stacktree](/)[Developers](/developers)[Agents](/agents)[Docs](/docs)[Use cases](/use-cases)[Pricing](/pricing)[Blog](/blog)[Dashboard](https://app.stacktr.ee)[Sign in →](https://app.stacktr.ee)      By [ Steve Smith ](/about) · Founder, Stacktree  ·  Last updated May 30, 2026          blog · MCP

#  MCP servers explained for developers (2026).

   The Model Context Protocol is the standard way AI assistants call tools as of 2026. Every major assistant adopted it. Here is what MCP actually is, what it isn't, and how to build a server in 50 lines.

  [ Get started free ](https://app.stacktr.ee/?join=1&from=seo_blog_mcp_servers_explained_for_developers)   install npx stacktree-install
Copy
     No card · 3 pages free · about a minute

##  What is an MCP server in plain terms?

An MCP server is a small program that exposes a set of tool calls (and optionally resources and prompts) over a standard protocol — the Model Context Protocol. AI assistants speak that protocol the same way browsers speak HTTP, which means any MCP-compatible client (Claude Code, Cursor, Codex, Claude.ai, Continue, Cline) can call any MCP-compatible server. You write the server once; every assistant gets the tools.

## On this page

  -   01  [ The shape of MCP ](#shape-of-mcp)
-   02  [ Transports (stdio vs streamable HTTP) ](#transports)
-   03  [ Why every assistant adopted it ](#why-every-assistant-adopted-it)
-   04  [ A minimal MCP server in 50 lines ](#minimal-mcp-server)
-   05  [ Where MCP is in 2026 ](#where-mcp-is-in-2026)
-   06  [ Where Stacktree fits ](#where-stacktree-fits)

## The shape of MCP

 MCP has three concepts:

  - Tools. Functions the assistant can call. Each has a name, a JSON-Schema input, and a structured output. This is the most-used MCP feature in 2026.
 - Resources. Read-only data the assistant can request by URI: files, database rows, config. The client pulls them; the server serves them.
 - Prompts. Server-defined prompt templates the assistant can use directly. Less common in practice; mostly used by domain-specific helpers.
  For a deeper breakdown of which primitive to reach for, see [resources vs tools vs prompts](/blog/mcp-resources-vs-tools-vs-prompts).

## Transports

 Two transports, picked by the client:

  - stdio: the client spawns the server as a child process and communicates over stdin/stdout. Used by CLI assistants (Claude Code, Codex, Cursor). Auth comes from the parent process.
 - Streamable HTTP: the client POSTs to the server over HTTPS and reads responses as Server-Sent Events. Used by hosted assistants (Claude.ai, ChatGPT custom connectors). Auth is OAuth 2.1 with Dynamic Client Registration (RFC 7591).

## Why every assistant adopted it

 Pre-MCP, each AI assistant had its own tool-call shape: OpenAI's function calling, Anthropic's tool_use, Google's function-declarations, etc. Tool authors had to ship N integrations to reach N assistants, and rewrite each when the host changed its calling convention. MCP collapses that into one tool surface that every assistant agrees to read.

 The adoption curve in 2025–2026 was steep because the alternative was unsustainable. Anthropic open-sourced the spec, OpenAI integrated it into Codex CLI, Cursor adopted it natively, Microsoft added it to GitHub Copilot, and the community shipped ~500 servers in the first year.

## A minimal MCP server in 50 lines

```
`// server.ts: TypeScript SDK
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "my-server",
  version: "1.0.0",
});

server.tool(
  "say_hello",
  "Greet someone by name",
  { name: z.string() },
  async ({ name }) => ({
    content: [{ type: "text", text: "Hello, " + name + "!" }],
  }),
);

await server.connect(new StdioServerTransport());`
```

 Ship it on npm; users add it to their assistant of choice via one line of config.

## Where MCP is in 2026

  - Server registry. [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) on GitHub catalogues the official + community list.
 - Spec maturity. The protocol has settled and breaking changes are rare, though the [2026-07 release candidate](/blog/mcp-2026-spec-changes) is the largest revision yet: a stateless core, response caching, and a formal deprecation policy. Recent additions include authorization (OAuth 2.1) and [elicitation](/blog/what-is-mcp-elicitation), where a server can prompt the user mid-call.
 - Discovery. Most clients now have a UI for browsing and installing MCP servers, including OAuth-protected hosted ones.
 - Production usage. Real teams ship internal MCP servers for their custom systems, which is where the protocol stops being a curiosity and starts being infrastructure.

## Where Stacktree fits

 `stacktree-mcp` is the MCP server behind Stacktree. The easiest way to wire it into any coding agent is `npx stacktree-install`. Pick Claude Code, Cursor, Codex, OpenCode or Amp during the prompts and you get twenty-nine tool calls in that agent: publish HTML, replace HTML in place, gate by password or email domain, set expiry, read viewer feedback and resolve it, list, delete. The protocol is the whole story: there's no separate API to learn, no separate auth model, no separate transport. If your assistant speaks MCP, it speaks Stacktree.

     See it in one call, no account

```
`curl -X POST https://api.stacktr.ee/sites -F file=@index.html
# &rarr; a private URL, live for 24h. Claim it free to keep it.`
```

If your agents emit HTML, they need a durable publish target: publish once, then
`update_site`
on every revision keeps the same URL forever. MCP, REST, and skills all speak it:
        the map is at [agent.txt](https://stacktr.ee/agent.txt).

[
Get an API key free
](https://app.stacktr.ee/?join=1&from=bridge_blog_mcp_servers_explained_for_developers)
FAQ

## Frequent questions

     What is the Model Context Protocol? +  MCP is an open protocol that lets AI assistants and IDE agents call external tools, fetch resources, and read prompts in a standard way. Originally introduced by Anthropic in late 2024, it has since been adopted by every major AI assistant — Claude, ChatGPT custom GPTs, Codex CLI, Cursor, Continue, Cline.   How does MCP compare to OpenAI function calling? +  Function calling is a per-call shape inside one provider's API. MCP is a transport-and-protocol layer that decouples the tool from the assistant — the same MCP server runs against any compliant client. Function calling can live inside MCP's tool surface but the reverse isn't true.   What transports does MCP use? +  Two: stdio (for local CLIs spawning the server as a child process) and streamable HTTP with SSE (for hosted clients like Claude.ai). Authentication is OAuth 2.1 with Dynamic Client Registration on the HTTP path; stdio relies on the parent process.   Do I need to build an MCP server to use existing ones? +  No. There are now hundreds of public MCP servers — for filesystem access, GitHub, databases, Slack, web search, code execution, and yes, publishing HTML (Stacktree). You install them in your client of choice and the tools appear automatically.   How do I build my own MCP server? +  The official SDKs (TypeScript and Python) take ~50 lines for a minimal server. You declare your tools with JSON Schema input/output types, implement a handler per tool, and wire stdio or HTTP transport. The spec at modelcontextprotocol.io has a working quickstart.
Keep reading

## Related guides

   -  [ The MCP publish tool Stacktree's full MCP verb surface in detail. ](/mcp-publish-html)
-  [ What changed in the 2026-07 MCP spec The stateless core, MCP Apps, Tasks, and more. ](/blog/mcp-2026-spec-changes)
-  [ Resources vs tools vs prompts The three server primitives and when to use each. ](/blog/mcp-resources-vs-tools-vs-prompts)
-  [ Why agents need a publish primitive The motivation post that frames why MCP matters. ](/blog/why-agents-need-a-publish-primitive)

References

## Sources and further reading

   -  [ Model Context Protocol — official spec ↗ Authoritative reference for the protocol described in this post. ](https://modelcontextprotocol.io/specification/2025-11-25)
-  [ MCP servers — official registry ↗ Catalogue of public MCP servers. ](https://github.com/modelcontextprotocol/servers)
-  [ Anthropic — MCP announcement ↗ The original launch post from Anthropic in late 2024. ](https://www.anthropic.com/news/model-context-protocol)
-  [ TypeScript SDK ↗ The SDK the minimal example uses. ](https://github.com/modelcontextprotocol/typescript-sdk)

##  Try a real MCP server.

 Install Stacktree in Claude Code, Codex, or Cursor. See the protocol in action.

 [ Sign up free → ](https://app.stacktr.ee/?join=1&from=cta_blog_mcp_servers_explained_for_developers)   install npx stacktree-install
Copy
       Private hosting for the HTML your agents make.

[](https://betalist.com/startups/stacktree?utm_campaign=badge-stacktree&utm_medium=badge&utm_source=badge-featured)[Featured on](https://devhunt.org/tool/stacktree)[](https://buildlist.io)[Get started free](https://app.stacktr.ee/?join=1)

## Product

- [Page video](/page-video)
- [Ask this page](/ask-this-page)
- [Client spaces](/client-spaces)
- [Templates](/templates)
- [Example deliverables](/examples)
- [Custom domains](/custom-domains)
- [Client feedback](/client-feedback-loop)
- [One-time links](/one-time-view-links)
- [See how pages get read](/page-engagement)
- [Made with Stacktree](/made-with)
- [Security](/security)
- [Watch the demo](/demo)

## Agents

- [All integrations](/agents)
- [Claude Code](/claude-code)
- [OpenAI Codex](/codex)
- [Cursor](/cursor)
- [Claude.ai connector](/claude-ai-connector)
- [Claude Cowork](/what-is-claude-cowork)
- [Meta Muse](/muse)
- [MCP server](/mcp-publish-html)
- [Deploy from Claude Code](/deploy-html-from-claude-code)
- [Skills](/skills)
- [Slack app](/slack)
- [n8n node](/n8n)
- [Agent payments (x402)](/x402)

## Alternatives

- [All comparisons](/alternatives)
- [Head-to-head comparisons](/compare)
- [Tiiny Host](/tiiny-host-alternative)
- [GitHub Pages (private)](/github-pages-private-alternative)
- [Vercel](/vercel-alternative-for-agents)
- [ngrok](/ngrok-alternative-for-html)
- [Display.dev](/display-dev-alternative)
- [Static.app](/static-app-alternative)
- [OpenAI Codex Sites](/openai-codex-sites-alternative)
- [here.now](/here-now-alternative)
- [Shippage](/shippage-ai-alternative)
- [Best private hosting](/best-private-html-hosting)

## Use cases

- [All use cases](/use-cases)
- [Share with clients](/share-with-clients)
- [Send a file to a client](/share-html-file-with-client)
- [Share Claude artifacts](/share-claude-artifacts)
- [Share Jupyter notebooks](/share-jupyter-notebook-html)
- [Host Storybook privately](/host-storybook-privately)
- [Architecture diagrams](/share-architecture-diagrams)
- [AI-generated reports](/host-ai-reports)
- [Internal HTML tools](/internal-tool-hosting)
- [Private HTML hosting](/private-html-hosting)
- [Vibe-coded page hosting](/vibe-coding-hosting)
- [Leave a website builder](/website-builder-migration)

## Learn

- [Blog](/blog)
- [Glossary](/glossary)
- [FAQ](/faq)
- [Where AI output should live](/where-ai-output-lives)
- [Agent-loop hosting](/agent-loop-hosting)
- [Why agents need a publish primitive](/blog/why-agents-need-a-publish-primitive)
- [MCP servers explained](/blog/mcp-servers-explained-for-developers)
- [What changed in the 2026-07 MCP spec](/blog/mcp-2026-spec-changes)
- [Sites in Codex explained](/blog/sites-in-codex-explained)
- [Private-by-default hosting](/blog/private-by-default-html-hosting)
- [An agent paid us $1 (x402)](/blog/agent-paid-to-provision-itself)
- [When a loop hits a paywall](/blog/loop-engineering-paywall)
- [Pricing](/pricing)
- [Self-host (new)](/self-host)
- [Changelog](/changelog)
- [Docs](https://stacktr.ee/docs)
- [About](/about)
© 2026 Stacktree · stacktr.ee

[Privacy](/privacy)[Terms](/terms)[Security](/security)[Dashboard](https://app.stacktr.ee)[npm](https://www.npmjs.com/package/stacktree-mcp)[Sitemap](/sitemap.xml)[llms.txt](/llms.txt)[API spec](/openapi.json)

---
Full markdown summary of the Stacktree marketing surface: https://stacktr.ee/llms-full.txt
