What you will take away from this lesson
The 100 series closed with the argument that MCP is an application layer, not a thin wrapper over APIs. This lesson opens the application. What is actually inside a Plexara MCP server when you connect your client to one? Which parts are standard MCP and which parts are Plexara-specific? And where does the rest of the 200 series take each piece?
This is a map lesson, not a deep dive. Every subsystem introduced here has its own dedicated lesson later. If anything in the map looks interesting, follow the link in its row and come back.
Learning Objectives
- 01Know what is actually inside a Plexara MCP server: the base MCP primitives (tools, resources, prompts) and the Plexara-specific subsystems that layer on top.
- 02Read the tool inventory by toolkit, and know why search and fetch are the front door rather than one search tool per backend.
- 03Tell the four content layers apart (resources, assets, knowledge pages, memory) by who authored the content, not by its file format.
- 04Explain what an MCP App is: interactive UI a tool result can carry, rendered by the host, and presentation-only by design.
- 05Use this lesson as a map for the rest of the 200 series: each piece has its own dedicated lesson where it gets covered in depth.
- 06Recognize the one tool every session loads first (platform_info) and why it is the starting point for the entire discover-query-enrich workflow.
Where we are in the curriculum
The 100 series built the foundation that every lesson in this series assumes. Each title below is a direct link back; the index card links to the 100-series landing page.
The 200 series narrows focus to one specific MCP server. It is not a survey of MCP implementations in general. It is a guided tour of what Plexara advertises to an agent, organized the way a power user should think about the surface.
100 Series: the foundation
- 101What is a Large Language Model?Brilliant at language, blind about your data. Tokens, hallucination, the grounding problem.
- 102Tokens and your budgetSubscription-plan economics, session limits, and Plexara enrichment dedup.
- 103Context, compression, and memoryThe keep / compress / clear playbook and how memory carries across sessions.
- 104Frontier models, specialized models, and why enterprise AI uses bothThree knowledge sources (training, web search, tools). MCP as the exposure protocol.
- 105What is an AI agent?The think/call-tool/observe loop. Professor's knowledge, child's literalism.
- 110Is MCP just an API wrapper?MCP as an application layer. Spectrum from thin wrapper to full application server.
If a term in this lesson looks unfamiliar, back up to the 100 series. The 200 series assumes that mental model. Every row above is a direct link.
The anatomy of a Plexara MCP
A Plexara MCP server advertises eight distinct kinds of things to a connected client. Three of them are base MCP primitives every compliant server has. Five of them are Plexara-specific subsystems built on top. You do not need to memorize this table; the map below exists so that when a later lesson refers to "memory" or "the knowledge pipeline" or "the semantic enrichment layer," you already know where it fits.
What is in a Plexara MCP (and where each piece is covered)
Functions the agent can call. search and fetch are the front door; trino_query, the catalog reads, and the asset tools follow from what discovery turns up. Around forty of them, grouped into eight toolkits.
Files a person uploaded before the conversation started and the agent is meant to use as-is: report templates, brand assets, data dictionaries, runbooks, sample payloads.
Named, reusable parameterized instructions the server advertises. Plexara ships a default library and lets administrators and knowledge curators add more.
Tool results come back with catalog metadata (descriptions, tags, owners, column detail, glossary terms, PII flags) already attached, deduplicated within a session so the same table is not re-enriched on repeat queries.
A per-user, cross-session recall layer. Survives past the context window. Stored as semantically searchable records; the universal search tool reaches them alongside every other source, so relevant memories can surface without the user naming them by hand.
An organization-wide documentation layer fed by an admin-reviewed insights pipeline. User corrections and agent observations become catalog documentation after review.
Interactive UI a tool result can carry. The host renders it in a sandboxed frame next to the answer. Plexara serves two, Platform Info and List Prompts, and both are presentation-only: the same calls return complete JSON in clients that draw no UI.
Persona-based tool and connection filtering, default-deny posture, read-only pinning, bucket prefix scoping, workflow gating, and per-call audit. Enforced at execution time, not at catalog time.
The three blue rows are the base MCP primitives every MCP server has. The five copper-badged rows are the subsystems Plexara adds on top using those primitives, which together make Plexara an application server (the category established in 110) rather than a thin wrapper.
Base primitives vs application subsystems
The distinction between the top three rows and the bottom five is the one that matters. The 110 lesson drew a spectrum from thin-wrapper MCP servers to full application servers. The difference, concretely, is everything below the line in the map above. A thin wrapper exposes tools, resources, and prompts. An application server uses those primitives to build subsystems that do useful, coordinated work: enriching returned data with catalog context, recalling memories from prior sessions, promoting observations into organization-wide documentation, rendering an interface where one helps, and enforcing governance at the point a tool is invoked.
The tool inventory
Tools are the primitive everything else is reached through, so the inventory is worth seeing whole once. Around forty tools ship across eight toolkits, and the grouping is not cosmetic: platform_info reports which toolkits a deployment has turned on, and a persona grants or withholds tools within them.
The order below is the order that matters rather than the order the toolkits were built in. Discovery comes first. A session that starts anywhere else is guessing at what exists, and searching the capability rather than the manual is the habit the whole surface is arranged around.
The tool inventory, by toolkit
Knowledge
searchfetchapply_knowledgeThe front door. One search reaches every source the caller can see; fetch reads any single hit back in full; apply_knowledge is the administrator side that promotes reviewed captures into the catalog.
Memory
memory_capturememory_manageRecording and tending what one person has taught the agent. Reading memory back is not here: it arrives as one group in an ordinary search response.
Portal
save_assetmanage_assetmanage_feedbackWhat a session produces and what people say about it afterwards. Assets and collections are first-class objects with their own URLs, and feedback threads hang off them.
Platform
platform_infolist_connectionsplatform_find_toolsmanage_promptshow_promptsThe session gate and the tools about the deployment itself. platform_find_tools ranks the tool list by intent, so the agent can locate a capability without scanning every name.
Trino
trino_querytrino_executetrino_explaintrino_browsetrino_describe_tabletrino_exportSQL against every configured warehouse and lakehouse connection. Reads and writes are separate tools so a client can auto-approve one and prompt on the other.
DataHub
datahub_get_entitydatahub_get_schemadatahub_get_lineagedatahub_get_queriesdatahub_get_glossary_termdatahub_browsedatahub_get_data_productdatahub_createdatahub_updatedatahub_deleteStructural catalog reads and governed catalog writes: schema, lineage, glossary, curated queries, tags, domains, and data products.
S3
s3_list_bucketss3_list_objectss3_get_objects3_get_object_metadatas3_presign_urls3_put_objects3_delete_objects3_copy_objectObject storage inside the prefixes the deployment allows, with size caps on reads and signed URLs for anything a report needs to link to.
API
api_list_specsapi_list_endpointsapi_get_endpoint_schemaapi_invoke_endpointapi_exportRegistered HTTP APIs reached the same governed way as the data. The deployment holds the credentials, so the agent addresses an operation by name and never handles a secret.


Two tools carry most of the traffic
Of everything in that inventory, two names deserve to be learned first. A single search call fans across every source the caller can reach: the catalog, the business glossary, knowledge pages, uploaded resources, your own memory, captured insights, feedback, saved assets, the prompt library, API endpoints, and the configured connections. Results come back grouped by source with a coverage summary rather than flattened into one list, so a forty-thousand-dataset catalog cannot bury the single knowledge page that answers the question.
fetch is its other half. A search hit is a pointer carrying a title, a snippet, and a reference; fetch takes that reference and returns the complete record behind it, under exactly the scope search applied. Between them they replaced the per-backend search tools and per-source readers that used to exist, which is why an agent no longer has to decide where an answer lives before it starts looking. 203 covers the pair in full.
One more tool is worth knowing by name early: platform_find_tools ranks the tool list itself against a plain-language description of a task. It is discovery pointed at the toolbox rather than at the data, and it is how an agent locates a capability without reading three dozen tool descriptions to find it.
Four places content lands
The map above lists resources, memory, and knowledge as separate rows, and assets show up in the Portal toolkit. Seen individually they look like four storage systems that happen to hold different file types. They are not. The difference between them is authorship, and the file format is close to irrelevant: the same PDF can legitimately be a resource or an asset depending on who made it and why.
The question a person should ask when filing something, and the question the agent asks when reaching for something, is the same one. Did this exist before the conversation? Then it is a resource, and the agent should reproduce it rather than rewrite it. Did the agent make it in a session somebody wants to keep? Asset. Is it a fact you want found, cited, and synthesized into new answers? Knowledge page. Is it about how one particular person works? Memory.
Four content layers, told apart by who wrote them
| Layer | Holds | Authored by | Reached via |
|---|---|---|---|
Resources | Files used as-is: templates, brand assets, data dictionaries, sample payloads, runbooks | A person, before the conversation | search then fetch, the resources/read protocol method, or a prompt attachment |
Assets | Dashboards, reports, visualizations, and documents produced during a session | The agent, during the conversation | save_asset and manage_asset, and search |
Knowledge pages | Curated business and domain facts, cross-linked and citable | A person, or a reviewed insight promoted into the catalog | search then fetch, apply_knowledge |
Memory | Per-user recall: preferences, corrections, working context | The agent, on one user's behalf | memory_capture and memory_manage, and search |
What getting it wrong actually costs
The distinction sticks better once you have seen it fail. Every misfiling has the same shape: the agent reads the layer as a statement about where the content came from, and acts accordingly.
When a tool result draws an interface
Everything described so far arrives as structured data the agent reads and summarizes for you. That is the right shape for most answers, and a bad shape for a few. A prompt library is easier to browse than to read aloud. A deployment summary is easier to scan as a panel than as a paragraph. MCP Apps are the answer to that narrow but real problem: a tool result can carry a reference to an interface, and a client that knows how renders it beside the answer.
The mechanism is small enough to hold in your head, which is worth doing because it explains the security posture as well as the behavior.
How a tool call ends up drawing an interface
- 1
A tool result carries a UI reference
Alongside the structured data it always returns, the result names a UI resource the host can render.
- 2
The host fetches the app and sandboxes it
The client loads the app’s HTML into a sandboxed iframe beside the answer. Nothing is installed and nothing runs on your machine outside that frame.
- 3
The tool result arrives over postMessage
The app receives the same payload the agent got and draws an interface over it: panels, tables, filters, forms.
- 4
The app can call tools itself
An app is not limited to the result that opened it. Its calls travel the same transport as the agent’s and meet the same governance gates, so an app can never reach data the person driving it could not have reached.
- 5
The session gate applies to apps too
Where the session handle is required, an app calls platform_info first and threads the session_id it returns. Skipping the handshake earns the app the same SESSION_REQUIRED refusal an agent would get.
Two apps come with the platform
Nothing needs to be installed or turned on for either of these. Platform Info and List Prompts are part of what Plexara serves, and the first one shows up on the very first tool call of every session.
The two apps Plexara serves
Platform Info
Opens on
platform_info- The platform name, version, and description
- Every connected toolkit, as a panel rather than a paragraph of JSON
- Which feature flags are on and which are off
- The personas active for the session
List Prompts
Opens on
show_prompts- Search-as-you-type over the prompt library, split into My Prompts and Library, with collection and tag filters and usage-based sorting
- Cards carrying the display name, description, version, approval provenance, and run count
- A detail view with the full prompt text and a form generated from that prompt’s argument specs
- A run button that drops the rendered prompt straight into the conversation where the client supports it, and offers it for copy where it does not
List Prompts is bound to show_prompts, which does nothing but ask for the library to be displayed. That binding is the point: the agent’s routine prompt work runs through manage_prompt and draws no UI, so a window only opens when a person asked to see one (208). Two is the count today; Plexara adds more as host support for MCP Apps matures.
The Platform Info app, running
Below is the actual app, loaded against the ACME Corp demo deployment and rendered here the same way a client renders it. This is what platform_info looks like when the client can draw it: the connected toolkits, the feature flags, the personas, and the operating manual, all in one panel instead of a wall of JSON. 202 walks through the same content as the agent reads it.
MCP App: Platform Info (ACME Corp demo)
Nothing is lost without them
The obvious worry about a UI layer is that it becomes required: capability drifts into the app, and clients that cannot render it fall behind. Plexara forecloses that by construction.
How the pieces compose in one session
A single question, "How are ACME Corp sales doing in the Southwest region?", touches almost every row of the map. The agent calls platform_info, which gates the session and returns the operating manual along with the prompt library (tools, resources, and prompts). It calls search once, and the response comes back grouped by source with semantic enrichment attached automatically (tools + enrichment), including a memory from an earlier session where the user pinned down what they mean by "sales" (memory). Governance has already filtered out any tools or connections this persona is not allowed to use, so nothing in that response is something the user could not have seen (governance). The agent reads the most promising hit in full with fetch, then calls trino_query; the returned table metadata is enriched but deduplicated against what was sent earlier in the session (enrichment). The chart it builds is persisted with save_asset rather than pasted into the chat (assets). If a user correction surfaces along the way, memory_capture routes it toward the admin review pipeline for possible promotion to organization-wide documentation (knowledge).
The user experiences this as a single fluid answer. The map is what that fluid answer decomposes into when you look at it carefully.
Every session starts in the same place
Before any of the subsystems engage, the session passes through a single gate. Until platform_info has been called, every other tool refuses with a structured error. This is a deliberate design choice and it is the subject of the next lesson.
Where this leads
The rest of the 200 series walks through the subsystems one at a time, starting with the gate.
Key terms
Eight terms cover the vocabulary you will need as the rest of the 200 series unfolds. "Primitive" vs "subsystem" is the distinction worth keeping sharp because it maps directly to the division in the anatomy map above.
Key Terms
- Plexara MCP server
- The MCP server a customer's client connects to. An application-server-class MCP (in the sense established in 110) that layers semantic enrichment, memory, knowledge, apps, and governance on top of the base MCP primitives.
- Primitive
- One of the three things an MCP server can advertise to a client: tools, resources, or prompts. Standard across all MCP implementations.
- Subsystem
- A Plexara-specific feature built on top of the base primitives. Semantic enrichment, memory, knowledge, apps, and governance are the subsystems a power user interacts with day to day.
- platform_info
- The mandatory first tool call in every Plexara session. Returns the operating manual for the deployment, including toolkits, feature flags, the prompt library, and customer-specific agent_instructions. Every other tool is gated behind it.
- Toolkit
- A named grouping of related tools in a Plexara deployment (for example, the DataHub toolkit, the Trino toolkit, the S3 toolkit). platform_info reports which toolkits are enabled for the current session.
- MCP App
- Interactive UI a tool result can carry, rendered by the client in a sandboxed frame beside the answer. Presentation only: the same tools return complete structured data to clients that render no UI. Plexara serves two, Platform Info and List Prompts.
- Content layer
- One of the four places content lands: resources, assets, knowledge pages, or memory. Which one a piece of content belongs to is decided by who authored it and what the agent should do with it, not by its file format.
- Persona
- A named role that determines which tools and which connections a caller can see and invoke. Enforced at execution time. Detailed in 207.
