import { DocsTitle, DocsLead, DocsH2, DocsP, DocsList, DocsLi, DocsCode, Mono, } from '@/components/docs-page'; export const metadata = { title: 'MCP concepts — BuildMyMCPServer docs' }; export default function Concepts() { return ( <> MCP concepts Model Context Protocol is an open standard from Anthropic for connecting AI assistants to external tools, data, and APIs. Three primitives, one transport. The three primitives Tools — functions the AI can invoke. Each has a name, a description, an input schema (JSON Schema or Zod), and a server-side implementation. The AI decides when to call them based on the description. Resources — read-only data the AI can fetch. URI-addressed. Think files, documents, database records. Prompts — parameterized prompt templates the server exposes to the client. Used for orchestration patterns the server author wants to encourage. Transport: Streamable HTTP Every generated server speaks Streamable HTTP (MCP spec 2025-11-25). The previous SSE transport was deprecated in June 2025 and is not supported here. One HTTP endpoint at /mcp, optionally negotiating a long-lived stream via text/event-stream when the server wants to push updates. Content-Type: application/json Accept: application/json, text/event-stream { "jsonrpc": "2.0", "id": 1, "method": "tools/list" }`} /> Session lifecycle initialize — client sends protocol version + capabilities, server returns its info and assigns a session id via the mcp-session-id header. notifications/initialized — client confirms readiness. Server is now free to push notifications. tools/list, tools/call, resources/list, prompts/list — the work. Why MCP and not just REST REST APIs need bespoke OpenAPI integration per client. MCP standardizes the discovery, invocation, auth and streaming so any spec-compliant client picks up any spec-compliant server with zero glue code. That's the entire point. ); }