Read the talk
Building Agents with Model Context Protocol: Context, Control, and Composable Capabilities

Mahesh Murag explains how Model Context Protocol standardizes access to tools and data, separates model, application, and user control, and creates a foundation for more capable agents while leaving important security, observability, and governance challenges unresolved.
From a talk by Mahesh Murag
At a glance
Ideas worth remembering
MCP standardizes the connection between AI clients and external systems, reducing duplicated integrations while allowing specialized teams to own and maintain shared data or tool interfaces. 2:59
Tools, resources, and prompts divide control among the model, application, and user; deterministic application behavior remains possible without placing every interaction inside an LLM loop. 9:40
MCP complements agent frameworks rather than replacing them: frameworks still manage orchestration, context, memory, model choice, and iterative execution while MCP supplies interoperable capabilities. 16:52
Sampling and composability enable richer agent architectures, but the protocol does not automatically solve error propagation, observability, debugging, or direct server-to-server data transfer. 53:01
Remote authorization increases the importance of server trust and governance; permission elevation, least-privilege practices, tool annotations, and some operational conventions are described as incomplete or still emerging. 1:08:17
Registries and service-owned discovery metadata could help agents find new tools, but autonomous discovery requires verification, approved-server controls, version-aware evaluation, and clear separation between proposed capabilities and existing functionality. 1:20:21
Three primitives, three kinds of control

MCP organizes server capabilities into tools, resources, and prompts. Tools are model-controlled: the server describes available operations, and the model determines when an operation is appropriate. Those operations can retrieve information, update databases, write files, or take actions in external applications. Murag suggests tools are especially useful when the right moment to retrieve information is uncertain; if a database call should happen deterministically every time, the application can make that call directly instead. 2:59
Resources are application-controlled data such as files, images, text, or JSON. They can be static or generated dynamically using information from the user or client. Claude for Desktop presents resources as attachments that a person can select, while applications can also decide to attach relevant resources automatically. Resource subscriptions add another useful behavior: a server can notify a client when a resource changes so the application can refresh its state or inform the user. 10:43
Prompts are user-controlled templates for recurring interactions. Murag highlights Zed’s slash-command pattern, where a short command and pull-request identifier expand into a more complete instruction for the model. Teams can likewise encode preferred document-question-answering formats or transcript presentation rules as reusable server-provided prompts, leaving the user to decide when a particular workflow should run. 12:57
Although many capabilities could technically be represented as tools, the distinction is architectural: MCP is intended to coordinate the model, the application, and the user rather than route every decision through the model. Applications can invoke server functions deterministically without involving an LLM, and a tools-only agent may not need resources or prompts at all. Those additional primitives become more valuable when a user-facing interface needs to display plans, attach context, or offer explicit commands. 14:04
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
From interoperable tools to orchestrated agents

A practical demonstration combines GitHub and Asana through Claude for Desktop. Given a repository, the model selects a GitHub tool to list issues and summarizes or prioritizes them using other context available in the application. When asked to add high-priority issues to an Asana project, it discovers the relevant workspace and project before creating tasks. The important architectural point is that independently built servers can participate in one workflow while the client retains its own interaction design and contextual knowledge. 23:00
Murag describes an agent as an augmented LLM running in a loop. Retrieval, tools, and memory extend the model’s capabilities; the loop lets it pursue a goal, invoke an operation, inspect the result, and continue. MCP supplies a standardized connection to those capabilities, but it does not replace an agent framework’s responsibilities for orchestration, context management, memory, model selection, or the behavior of the loop itself. Existing frameworks can connect through adapters instead of requiring a complete redesign. 16:52
The MCP-Agent example, built around an open-source framework from Last Mile AI, divides a research task into a researcher, a fact-checker, and a report writer. The first two receive access to Brave, Fetch, and FileSystem servers, while the writer receives FileSystem and Fetch without the search capability. An orchestrator creates a plan, assigns steps to the appropriate sub-agents, and combines their work. This demonstrates capability assignment by role and lets the application developer concentrate on the task and coordination rather than implementing every underlying integration. 29:39
This separation does not eliminate practical design choices. Builders still decide which model fits a task, how to compress or summarize growing context, whether multiple agents run sequentially or in parallel, and how results reach the user. Tool catalogs also introduce context pressure: Murag describes practical limits in terms of dozens or hundreds of tools and proposes searching over tool descriptions or progressively exposing hierarchical tool groups instead of placing thousands of tools directly in the prompt. 36:32
Plans and assigns work
An orchestrator plans sequential research, verification, and synthesis using distinct agent capabilities.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Sampling and composability extend the architecture

Sampling reverses the usual direction of an AI application’s requests: an MCP server can ask its client to obtain an LLM completion instead of hosting a model or implementing its own model integration. The server may provide prompts and request preferences such as model size, temperature, or maximum tokens. The client still decides whether to honor the request, which preserves its control over model choice, privacy, cost, and suspicious or excessive inference requests. 53:01
Composability means the distinction between client and server is logical rather than physical: one component can serve an upstream application while acting as a client of downstream services. A research agent, for example, can appear as a server to Claude for Desktop and then call separate file, fetching, or web-search servers. Combining composability with sampling suggests a hierarchy in which specialized agents delegate work while inference requests flow back toward the application controlling the model. Murag explicitly presents the more elaborate hierarchical arrangement as a future possibility rather than an already established deployment pattern. 55:34
These richer interactions go beyond a simple request for data because protocol features can support server-to-client communication, resource notifications, and multistep exchanges. However, composability does not solve compounding errors: each intermediate component must validate, structure, and consolidate downstream results before passing them onward. Requests for user input may need to travel back through the chain, and network leadership or decision-making is left to the application architecture rather than prescribed by MCP. 58:09
The protocol also does not guarantee visibility into every downstream service. An upstream server may function as a black box, and observability depends on what builders choose to expose through logs or metadata. Murag points to Inspector as a way to inspect connections and logs, but acknowledges that debugging conventions and broader best practices are still developing. Likewise, direct server-to-server data transfer that avoids routing large payloads back through the client is not described as a first-class supported capability. 1:03:42
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Discovery can expand agents, but governance must expand with it

Murag describes an MCP registry as a proposed hosted metadata service developed in the open. Its purpose is to organize a fragmented ecosystem by describing where servers live, which transport they use, who created them, whether they are verified, and how their capabilities change across versions. The registry is intended to sit above existing distribution mechanisms such as npm and pypi, while also accommodating remotely hosted endpoints, private registries, Docker-based packaging, and application-specific marketplaces. At the time described in the talk, this registry is under development rather than an already available system. 1:21:42
For agents, discovery introduces the possibility of dynamically acquiring capabilities. Murag imagines a coding agent asked to investigate Grafana logs even though it was not originally configured with a Grafana integration: the agent could search a registry, identify an appropriate verified server, connect to it, and continue the task. This is presented as a forward-looking example of agents discovering tools during execution, not evidence that the complete workflow already exists or is safe by default. 1:35:39
Dynamic installation creates a corresponding governance problem because an agent might otherwise execute arbitrary server code or obtain excessive access. Suggested controls include privately hosted registries, approved-server lists, intermediary discovery tools that filter available integrations, and verification of official publishers. Murag distinguishes confidence in a model’s ability to choose relevant tools from confidence in the trustworthiness of unfamiliar servers, and says the latter depends on infrastructure and practices that are not yet fully established. 1:37:24
A complementary discovery idea uses .well-known metadata on a service’s own domain to advertise an MCP endpoint, available capabilities, and authentication requirements. Murag presents a hypothetical Shopify example, explicitly noting that the displayed URL is not real. He also sketches a hybrid agent that uses structured MCP interfaces when available and computer-use interactions for interfaces without suitable APIs. Other open roadmap questions include short-lived versus stateful connections, streaming, tool-name collisions, logical tool grouping, and proactive server behavior. 1:38:57
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

