Skip to main content
Plexara
Architecture15 min read

201 - Anatomy of a Plexara MCP

201 shows what is actually in the box on a Plexara server: the tool inventory by toolkit, the four content layers, the interactive apps a tool result can carry, and the memory, knowledge, and governance underneath. This lesson is the map.

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

  1. 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.
  2. 02Read the tool inventory by toolkit, and know why search and fetch are the front door rather than one search tool per backend.
  3. 03Tell the four content layers apart (resources, assets, knowledge pages, memory) by who authored the content, not by its file format.
  4. 04Explain what an MCP App is: interactive UI a tool result can carry, rendered by the host, and presentation-only by design.
  5. 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.
  6. 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

Open index

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.

  • Resources

    Base MCP

    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.

  • Prompts

    Base MCP

    Named, reusable parameterized instructions the server advertises. Plexara ships a default library and lets administrators and knowledge curators add more.

  • Semantic enrichment

    Plexara subsystem

    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.

  • Memory

    Plexara subsystem

    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.

  • Knowledge

    Plexara subsystem

    An organization-wide documentation layer fed by an admin-reviewed insights pipeline. User corrections and agent observations become catalog documentation after review.

  • MCP Apps

    Plexara subsystem

    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.

  • Governance

    Plexara subsystem

    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_knowledge

    The 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_manage

    Recording 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_feedback

    What 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_prompts

    The 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_export

    SQL 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_delete

    Structural 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_object

    Object 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_export

    Registered 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.

A persona sees only the tools it is allowed to call, so this is the full surface rather than the one any given user gets (207). Every tool is described one by one in the appendix to 210.

The admin Tools page: a searchable tool list on the left grouped by connection (catalog, CRM gateway, data lake), and on the right the Trino Query tool opened on its Overview tab showing its description, a routing block naming the toolkit, kind, and connection, and a persona table where every persona resolves to allow with the pattern it matched.
The same inventory as seen from the admin section of the portal. Each tool is filed under the connection it belongs to, and opening one shows its routing (toolkit, kind, connection) plus a persona table listing, for each persona, whether it may call the tool and which allow pattern it matched. That table is the answer to the question 207 will take up: which tools any given user actually gets.
The admin Tools page with the Trino Query tool on its Try It tab: a form built from the tool's input schema with a required sql field, a limit of 100, a timeout of 30 seconds, a format dropdown set to markdown, an Execute button, and an empty History panel below.
Every tool carries an input schema, and the Try It tab renders that schema as a form. The fields the agent fills in when it calls Trino Query (sql, limit, timeout, format) are the same fields an admin can fill in here to see the tool return the exact result an agent would receive.

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

LayerHoldsAuthored byReached via
Resources
Files used as-is: templates, brand assets, data dictionaries, sample payloads, runbooksA person, before the conversationsearch then fetch, the resources/read protocol method, or a prompt attachment
Assets
Dashboards, reports, visualizations, and documents produced during a sessionThe agent, during the conversationsave_asset and manage_asset, and search
Knowledge pages
Curated business and domain facts, cross-linked and citableA person, or a reviewed insight promoted into the catalogsearch then fetch, apply_knowledge
Memory
Per-user recall: preferences, corrections, working contextThe agent, on one user's behalfmemory_capture and memory_manage, and search

The portal groups these the same way, so the question “where does this belong” has one answer whether a person is uploading a file or an agent is saving its output. Resources are covered in 209, assets in 205, and knowledge and memory in 206.

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. 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. 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. 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. 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. 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)

Live render of the Platform Info app that Plexara serves alongside platform_info: an interactive view of the platform description, prompts, and agent instructions, at the ui://platform-info resource URI.

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.