Model Context Protocol (MCP): Building Universal Connectivity for LLMs in Production

anthropic · Tech · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Production LLM tool connectivity and MCP operations

Production Claude applications needed a reusable way to connect models to external context, tools, services, documentation, browsers, project systems, and user environments without rebuilding the same integration logic for every application.

Constraints:

Architecture

Anthropic open-sourced MCP as a universal protocol for connecting Claude and other LLM applications to external context and actions. The production architecture evolved from local MCP servers toward remote hosted endpoints, a central registry, and native MCP connector support in the Claude API. Developers can specify remote MCP endpoint URLs and authorization information, while Anthropic handles the server-side tool execution loop. The ecosystem includes official servers such as GitHub, documentation servers such as Context7, browser-control servers such as Playwright, home automation servers, and knowledge-graph memory servers. Production guidance centers on prompt-quality tool descriptions, selective context/tool inclusion, smaller higher-level tool surfaces, and evaluation of MCP server behavior.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  App["Claude application"] --> Connector["MCP connector"]
  API["Claude API"] --> Connector
  Connector --> Remote["Remote MCP servers"]
  App --> Local["Local MCP servers"]
  Remote --> Registry["MCP registry"]
  Remote --> External["External services"]
  Local --> External
  Remote --> Context7["Context7 documentation server"]
  Local --> Playwright["Playwright browser server"]
  Connector --> Model["Claude model"]
  App --> Model
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Claude application Claude Code, claude.ai, or another AI application that consumes MCP servers and coordinates model interaction. MCP connector, Claude model, Remote MCP servers, Local MCP servers
Claude API API surface that can accept MCP endpoint URLs and authorization information directly. MCP connector, Claude model
MCP connector Native connector feature that handles MCP tool execution loops and feeds results back to the model. Claude application, Claude API, Remote MCP servers, Claude model
Remote MCP servers Hosted endpoints such as GitHub, Asana, Context7, or vendor-provided services. MCP connector, MCP registry, External services
Local MCP servers User-run servers on a local machine or home network, such as home automation or custom development tools. Claude application, External services
MCP registry Central and extensible registry of approved MCP servers and metadata. Remote MCP servers
Claude model LLM that reads tool definitions, chooses tools, processes external results, and composes actions. Claude application, Claude API, MCP connector
Context7 documentation server MCP server that pulls current docs from project and API documentation so Claude can use fresh information. Remote MCP servers, External services
Playwright browser server MCP server that lets Claude load webpages, click around, take screenshots, and inspect rendered layouts. Local MCP servers, External services
External services Slack, docs, codebases, GitHub, Asana, websites, browsers, home hardware, and other systems exposed through MCP. Remote MCP servers, Local MCP servers

Data flow

An application or API request configures MCP endpoints such as GitHub, Context7, Playwright, Slack, docs, codebase, or home-automation servers. The MCP server definitions and tool descriptions are inserted into Claude's prompt context. Claude chooses relevant tools, sends calls through the MCP connector or developer-managed loop, receives results, and continues reasoning or acting. For browser and coding workflows, Claude can modify files, reload the page, inspect screenshots, and iterate; for status reports, it gathers recent Slack/docs/codebase context and emits formatted updates.

3 supporting quotes
“MCP is the Model Context Protocol, and it's a way of providing external context to models.”transcript, stated
“we can take care of that calling loop of executing the tools and getting the results fed back to the model for you.”transcript, stated
“it all gets pulled back into the same prompt, right? And it's all just like one text string at the end of the day”transcript, stated

Why this architecture

The team chose an open protocol because every model provider and application otherwise would require separate connectors, creating poor experiences for vendors and users. Remote servers and a registry reduce setup friction and avoid running untrusted local code. Native Claude API connector support removes developer glue code. The protocol still depends on careful prompt-like server definitions and context selection because those definitions are part of the model prompt.

3 supporting quotes
“do I have to go implement my Claude connector and my open AI connector and my Grok connector and my Gemini connector”transcript, stated
“a very big step change in my opinion, was when we kind of provided first-class support for remote hosted MCP servers”transcript, stated
“we recently released directly into the API as a native feature is the MCP connector feature”transcript, stated

Models used: Claude · large language models · diffusion image generation model · Claude Code

Scale

Alternatives considered (roads not taken)

Build provider-specific app connectors

Rejected because: Separate Claude, OpenAI, Grok, and Gemini connectors would fragment the ecosystem and create a bad experience for integration providers.

“we could have gone and built the Claude app connector that allows you to tie things into Claude”transcript, stated
“that ends up being kind of a nightmare.”transcript, stated

Require each user to run local MCP servers

Rejected because: Local setup was clunky and required users to trust random Node.js installs from connector developers.

“you had to run everything effectively by yourself”transcript, stated
“trust their Node.js install on your computer to go in.”transcript, stated

Make developers implement every MCP tool loop themselves

Rejected because: The native Claude API connector can execute tools and feed results back to the model, letting developers delete glue code.

“it's essentially your responsibility as a software developer to put together all the glue work”transcript, stated
“they've just been able to delete tons of code”transcript, stated

Expose many granular API endpoints as tools

Rejected because: For LLMs, fewer higher-level tools can reduce prompt load and help the model select the right capability.

“MCP interface development is a bit different than API development where we're feeding these into LLMs.”transcript, stated
“You might just have a get info tool, because you're calling LLM will be able to look at your description”transcript, stated

Patterns

tool-use-orchestration (architecture)

MCP gives Claude access to external tools and actions through reusable server endpoints and a connector-managed tool loop.

“so that it can take actions for you on your behalf in the outer world.”transcript, stated
“give me my latest pull requests. and it will go ahead and take care of that for you.”transcript, stated

context-engineering (context)

The team treats server/tool names, descriptions, parameters, and conversation pruning as prompt/context design choices that determine model behavior.

“MCP servers and tools are really at its core prompts.”transcript, stated
“don't include any information that might not necessarily help with the current turn of user prompts.”transcript, stated

rag-retrieval (retrieval)

Context7 connects Claude to current documentation so development tasks can retrieve up-to-date package and API information beyond the model cutoff.

“Context 7 does is it takes care of pulling documentation from these websites like Next.js's website”transcript, stated
“Claude will have the access to the latest information out there on whatever it is that you're developing against.”transcript, stated

eval-driven-development (operations)

The speakers argue that MCP server quality should be evaluated and improved, and that vendors may compete on how well their MCP servers help Claude solve real tasks.

“start evaluating how they work and making them better.”transcript, stated
“start becoming more mature and have it be less of. It's exciting that we've shipped an MCP server”transcript, stated

agent-memory (memory)

A knowledge-graph MCP server gives Claude create-memory and connect-memory tools so it can build relationship graphs during conversation.

“an MCP server that had two tools. It's a create memory tool and a connect memory to other memory tool”transcript, stated
“Claude is going and scribbling down and be like, "User has sophisticated classical music taste,"”transcript, stated

observability-tracing (feedback)

Playwright MCP creates a visual feedback loop where Claude can change page code, reload, screenshot, and judge the rendered result.

“then go look at it again and be like, oh, everything looks better, or that didn't fix it”transcript, stated
“take a screenshot of the website and say, oh, this set of CSS changes actually led to this effect”transcript, stated

Tradeoffs

Open-source MCP as a universal standard.

Chose Open protocol and ecosystem over Anthropic-only Claude app connector.

Rationale: External context access benefits all models and reduces integration burden for vendors who otherwise would implement separate connectors for each provider.

“there's a lot of value in open standards to allow a wide network of engineers, companies, individuals”transcript, stated
“models having access to external context is kind of good for everyone.”transcript, stated

Move from local-only servers to remote hosted endpoints.

Chose Remote hosted MCP servers plus registry over User-managed local processes for every integration.

Rationale: Remote endpoints reduce setup friction and let service providers host official integrations.

“provided first-class support for remote hosted MCP servers, that drastically reduced the set of process”transcript, stated
“end users can just get started fairly quickly.”transcript, stated

Use fewer higher-level MCP tools.

Chose One or two broad intent-oriented tools when possible over Many REST-like granular tools.

Rationale: LLM-oriented tool interfaces can use natural-language parameters and reduce context load and ambiguity.

“generally if you can have one or two tools in your server versus having 15 or 20 tools”transcript, stated
“you will both play nicer with other MCP servers and you'll ensure that your server gets called more efficiently appropriately.”transcript, stated

Use native API connector support for common MCP loops.

Chose Anthropic-managed MCP tool execution in the Claude API over Every developer writing the orchestration loop.

Rationale: The native connector reduces glue code and lets developers specify endpoints and auth rather than managing tool-call back-and-forth themselves.

“provide us with whatever authorization information and we can take care of that calling loop”transcript, stated
“they just have that so they don't have to handle all that back and forth themselves now”transcript, stated

Gotchas (what bit them)

MCP tool definitions are prompt text, not neutral metadata.

Root cause: Tool names, descriptions, examples, and parameter names are inserted into the model prompt and shape Claude's behavior.

Resolution: Treat MCP server definitions as prompt engineering: use precise names, examples, model-specific guidance, and descriptions that tell Claude how to use the tool.

“defining your tool names appropriately, giving them descriptions. Maybe your description has a few short examples”transcript, stated
“You get much better results from your MCP server just by changing a few words in your description”transcript, stated

Stuffing too many MCP servers into a request raises cost and confuses the model.

Root cause: Every server contributes function definitions to the context, and overlapping tools such as Linear and Asana project-status tools create ambiguity.

Resolution: Select MCP servers and tools deterministically for the current task and prune irrelevant conversation history.

“just stuffing their MCP servers or their API requests with MCP servers with just tons of tools or tons of MCP servers”transcript, stated
“both of those might have a get project status MCP tool and the model will not have an implicit information”transcript, stated

Local server installation made security and onboarding worse.

Root cause: Users had to locate community connectors and run untrusted local Node.js installs.

Resolution: Move toward official remote hosted MCP servers, approved registries, and endpoint-based configuration.

“if you wanted to interact with GitHub, you'd have to go find some random developer”transcript, stated
“now you can just go hit the official GitHub site, like I think it's mcp.github.com”transcript, stated

MCP's fuzzy composition can produce novel behavior that developers did not explicitly design.

Root cause: When multiple servers are connected, Claude's general reasoning can bridge capabilities across services.

Resolution: Monitor production behavior, evaluate server quality, and constrain available tools to the user's current intent.

“there's kind of that fuzzy in between when these things all get hooked together”transcript, stated
“requires careful production monitoring to ensure it remains aligned with user intent.”summary, implied

Evaluation

The team evaluates MCP integrations through tool description quality, server relevance to current context, context-window cost, model confusion, concrete task success, vendor integration quality, and production feedback from examples such as status generation, browser self-improvement, and documentation retrieval.

Metrics: tool-description quality · number of tools per server · context tokens consumed · model confusion from overlapping tools · status-update success rate · A/B-style or task-specific eval results · vendor MCP server quality · freshness of retrieved documentation

3 supporting quotes
“the success rate on that is much, much higher than I originally thought.”transcript, stated
“As you give LLMs more information, it makes it harder for them to make good decisions.”transcript, stated
“it would be really cool, it's really valuable to me if I could just hook in your log analytics MCP server”transcript, stated

Outcomes

This is a protocol/ecosystem case rather than a single application. Its production scale comes from official hosted endpoints, a central registry, native Claude API connector support, and the growing number of vendor and community MCP servers.

3 supporting quotes
“it turns out a lot of people had the same kind of need and jumped on it”transcript, stated
“it's truly succeeded our wildest dreams when we're releasing this little specification.”transcript, stated
“MCP is happening under the hood just making everything glued together and LLMs kind of configure everything”transcript, stated