UPDATED IN SEPTEMBER 2026

Architecture, ownership and SLA servers run as products

The servers exposing architecture, ownership and SLA data are operated as products rather than as scripts: versioned, owned by a named team, and monitored like anything else in production.

L3 · SYSTEMATICWhat this level takes
MUSTNot met, not at this level
  • Centralized MCP platform manages server provisioning, configuration, and lifecycle
  • Domain-specific MCP servers exist (Architecture MCP, Ownership MCP, SLA MCP)
  • RBAC controls which agents can access which MCP tools
SHOULDExpected in practice, not required
  • MCP server health is monitored with alerting on downtime
  • New MCP servers go through a standardized review and onboarding process
EVIDENCEHow you would check
  • MCP platform configuration showing centralized server management
  • RBAC policy configuration for MCP tool access
  • MCP server inventory listing domain-specific servers with owners
DEPENDS ON
  • Infrastructure L2 (MCP & Tool Integration) - basic MCP servers must exist before centralization
  • Organization L3 (AI Adoption Model) - platform team must own AI tooling for centralized MCP management

What It Is

Servers for architecture, ownership and SLA data are run as products: versioned, owned and monitored. The organisation has moved past the stage where an MCP server is a script somebody wrote on a Friday and now runs on their laptop, and treats each one as a piece of production infrastructure with a name on it, a release history, and a dashboard.

The distinction this level draws is operational, not editorial. What context an agent should receive, in what order, and how much of the window it deserves is Context Engineering's question, and this guide does not try to answer it. What is answered here is everything the server side owes its callers: that the tool contract does not change without warning, that somebody is accountable when it breaks, that its latency and error rate are visible, and that a caller can tell whether the data behind it is current.

The servers themselves are organised by knowledge domain rather than by whichever data source was easiest to mirror: an architecture server that knows the design decisions and ADRs, an ownership server that knows which team owns which service, and an SLA server that knows the reliability contracts and performance budgets for each component. Splitting them this way is partly an operational choice. Each has a different natural owner, a different change rate, and a different failure mode, and one combined server means one team is on the hook for all three.

The architecture server is the institutional memory for technical decisions. It exposes Architecture Decision Records (ADRs), system diagrams, service dependency maps, and rationale for major technical choices. When an agent is implementing a feature that touches a system boundary, it queries the Architecture MCP to understand what constraints apply, what patterns are established, and what decisions have already been made. Without this server, agents either make assumptions based on code they can see (which often doesn't encode the "why") or ask developers who have to look it up themselves.

The ownership server answers "who owns this?" - a question that comes up constantly in large systems. Which team is responsible for the payment service? Who is the on-call for the authentication system? Who should review a change to the data pipeline? In organizations where ownership is in a spreadsheet, a Notion page, or a CODEOWNERS file in one specific repo, agents have no reliable way to answer this question. An Ownership MCP with a consistent API (input: service name or file path; output: team name, Slack channel, on-call rotation) makes this answerable programmatically.

The SLA server exposes the reliability contracts and performance expectations for each service. What is the p99 latency target for the checkout API? What error rate triggers an alert? What is the data retention policy for this database? Agents that know SLA constraints can write code that respects them: they'll suggest appropriate timeout values, add the right error handling, and flag when a proposed change would violate a constraint. Without this context, agents write code that works functionally but may silently violate operational requirements.

Why It Matters

  • A server agents depend on is production infrastructure - once agent workflows call it routinely, an unowned server that goes down or silently changes its output is an outage with no on-call, and it will be diagnosed as "the agents got worse this week"
  • Versioning is what lets the contract change safely - tool names, parameters and response shapes are an API that agents and prompts are written against; changing them without a version is a silent breakage that surfaces as degraded output rather than as an error
  • Reduces the "ask a senior engineer" bottleneck - agents with architecture, ownership and SLA data can answer many questions that currently require interrupting a senior engineer, but only for as long as the servers are actually up and current
  • Produces better agent code by default - an agent that knows the SLA for a service it's modifying will write code that respects that SLA; an agent that knows the ownership structure will route questions to the right team automatically
  • Creates feedback loops that improve documentation - when agents actively query ADRs, ownership docs, and SLA definitions, teams discover gaps and outdated entries quickly because the gaps produce bad agent behavior; this motivates keeping the documentation current
  • Separates concerns cleanly - architecture, ownership and SLA data evolve at different rates and belong to different teams; separate servers make each one's owner obvious and let each be versioned and retired on its own schedule

Getting Started

  1. Audit what institutional knowledge currently lives where - before building servers, map the landscape: where are your ADRs? Is ownership in a CODEOWNERS file, a spreadsheet, a Backstage catalog? Where are SLA definitions documented? This audit reveals both what to build servers for and how much work is required to normalize the data.
  2. Start with the Ownership MCP - ownership information is highly structured, changes relatively rarely, and has a clear schema. A simple server that reads from a CODEOWNERS file or a service catalog JSON file and returns the owning team for a service or file path is achievable in a day and immediately useful.
  3. Build the Architecture MCP around your ADR directory - most engineering teams have an ADR directory even if it's not well maintained. A server that indexes ADRs and makes them searchable by keyword, by decision date, or by affected component is the minimum viable Architecture MCP.
  4. Normalize SLA definitions into a machine-readable format - SLAs are often documented in prose. For the SLA MCP, create a structured format: a YAML or JSON file per service defining latency targets, error rate budgets, data retention policies, and alert thresholds. The act of writing this format often reveals that SLAs aren't actually defined for many services - which is itself a valuable discovery.
  5. Version the tool contract from the first release - Tool names, parameter shapes and response schemas are an API. Publish a version, treat a changed field name or a removed parameter as a breaking change, and keep the previous version serving until callers have moved. Silent contract changes do not raise errors; they degrade the output of every agent that was written against the old shape, weeks before anyone connects the two.
  6. Give each server a named owning team and put it on their dashboard - Ownership means a team that is paged when the server is down, reviews changes to its schema, and decides when it is retired. Monitor what you would monitor for any service - availability, p99 latency, error rate, call volume by tool - plus one metric specific to this kind of server: the age of the data behind each response. Falling call volume is worth an alert of its own, because it usually means agents have quietly stopped finding the server useful.
  7. Publish a deprecation path before you need one - Servers get replaced, merged and retired. Decide up front how a caller learns that a tool is going away, how long the overlap is, and where the replacement lives. Without this, the first retirement is an incident and the second one is a reason nobody trusts the platform.
TIP

Use the Backstage software catalog as the data source for both your Ownership MCP and your Architecture MCP if your organization uses Backstage. Backstage's structured catalog is exactly the kind of normalized, queryable data that makes a great MCP server backend.

Common Pitfalls

Building servers for knowledge that doesn't exist yet. If your organization doesn't have ADRs, building an Architecture MCP server is premature - there's nothing to serve. Start with whatever institutional knowledge is currently written down, even if it's in imperfect shape. A server that exposes 20 well-written ADRs is more valuable than a server that exposes 200 inconsistently-formatted documents.

Running it as somebody's side project. The usual origin story is a useful script that quietly became load-bearing. Nobody is on call, it runs on infrastructure nobody has audited, and its author has since changed teams. Agents keep calling it, get slower and worse answers, and the degradation is attributed to the model. The fix is unglamorous: give it an owner, deploy it like a service, and monitor it.

Changing the tool contract without a version. Renaming a parameter or restructuring a response is invisible to the agent's error handling and highly visible in its output quality. Version the contract, deprecate rather than delete, and treat schema changes with the same care as a public API change.

Monitoring uptime but not usefulness. A server can be green on every infrastructure metric while returning data that is nine months old, or while no agent has called it in a fortnight. Track staleness of the backing data and call volume per tool alongside the usual signals, since those are the two ways this class of server fails while looking healthy.

Making the schema too rigid. Ownership structures evolve; teams reorganize; services get renamed. An Ownership MCP with a rigid schema that requires a three-day update process when a team changes ownership will quickly become outdated. Design the schema to be simple to update: a flat YAML file with service-to-team mappings is more maintainable than a complex relational structure.

Not linking the servers together. The value of specialized servers compounds when they're used together. An agent resolving an incident should be able to query the Ownership MCP to find who to contact, then query the SLA MCP to understand what the target resolution time is, then query the Architecture MCP to understand the affected system topology. This cross-server reasoning is powerful but only works if the agent's prompting encourages it to use all available tools.

Treating server output as authoritative when it's stale. An agent that reads an outdated ADR and acts on it as if it's current will make wrong decisions confidently. Embed freshness metadata in server responses: the date the entry was last updated, and optionally a flag if it's older than a defined threshold. Agents that see "last updated 14 months ago" will handle the information with appropriate skepticism.

How Different Roles See It

BobHEAD OF ENGINEERING

Bob's team frequently gets stuck when implementing features that cross service boundaries. Developers need to understand which team owns adjacent services, what the SLA constraints are, and what architectural decisions govern the interface. Currently they ask around in Slack, which is slow and interrupts the people being asked.

What Bob should do: Bob should sponsor a one-sprint project to build all three specialized servers and measure the impact on inter-team coordination overhead. The metric: count how many Slack messages per week ask about service ownership, SLA constraints, or architectural decisions. After deploying the servers, run the same count. The reduction is the direct productivity impact. Bob should also require that these servers be used in the team's standard agent workflows: when an agent is implementing a feature that touches another service, it should query the Ownership MCP before generating code. This "query first" standard is the mechanism that turns server deployment into actual productivity gain.

SarahPRODUCTIVITY LEAD

Sarah is trying to improve the accuracy of agent-generated code that touches service boundaries. Agents frequently write integration code that violates the actual SLAs or uses patterns that the architecture team has deprecated. These errors are caught in code review, creating rework cycles.

What Sarah should do: Sarah should work with the architecture and reliability teams to create the structured data that the specialized MCP servers need. The SLA MCP requires SLA definitions in a machine-readable format - if those don't exist, Sarah should run a workshop to create them. The Architecture MCP requires ADRs - if they're incomplete, Sarah should drive an effort to bring them current. This is not an AI infrastructure project; it's a documentation quality project that pays dividends both for human engineers and for the agents that will use it. The MCP servers are the delivery mechanism; the underlying structured knowledge is the actual value.

VictorSTAFF ENGINEER - AI CHAMPION

Victor has already implemented a basic Architecture MCP that reads from the ADR directory and an Ownership MCP that reads from the CODEOWNERS file. They work, but he finds that agents only use them when explicitly prompted to do so. Agents default to their training knowledge rather than querying available tools.

What Victor should do: Getting agents to actually call the servers is a context question, and Victor should hand it to whoever owns context assembly rather than solving it privately in his own prompts. His job here is the other half: making the two servers something the organisation can depend on. That means moving them off his machine onto real infrastructure, publishing a versioned tool contract so prompts and workflows have something stable to be written against, and handing each one to the team that owns the underlying data - the architecture group for ADRs, the platform team for CODEOWNERS - rather than remaining the single point of failure himself. He should instrument both before handing them over, because the first question the new owner will ask is how often they are called and by whom, and the second is what happens when they are down. Victor should also write the deprecation policy while nothing needs deprecating, since that is the only time anyone will agree to one.

How This Guide Changed

What each edition changed in this guide, newest first.

  1. V1.6September 2026LATEST

    The bar at this level became operational rather than editorial: the architecture, ownership and SLA servers are run as products, versioned, owned by a named team and monitored, instead of being scripts somebody wrote on a Friday that now run on a laptop. What context an agent should receive, in what order and at what cost to its window is Context Engineering's question, and this guide stops answering it. The split by knowledge domain survives for an operational reason, since each server has a different natural owner, change rate and failure mode.

  2. V1.5August 2026

    An editorial correction rather than a change of position. The April notes on MCP's expansion into deep-system access had been sitting above the guide's own definition, where they buried it; they moved down into this history, and the level opens with what it is again.

  3. V1.2May 2026

    April pushed MCP from "code tools" into deep-system access. Three notable additions to the public ecosystem:

    • pentester-mcp - hundreds of offensive-security functions exposed to coding agents
    • windbg-mcp - kernel-level debugging primitives for Windows targets
    • Pepper - real-time iOS runtime inspection from agent context

    OAuth/token-persistence issues in Claude's web interface drove adoption of mcp-auth-proxy middleware. On the performance side, Rust-based context retrievers (webclaw, ferris-search) and Go orchestrators (jig) emerged for low-latency multi-agent profiles. The signal for L3 maturity is no longer "do you have Architecture/Ownership/SLA MCPs?" but "are your MCPs governed and secure enough to safely expose deep-system surface area?"

  4. V1.0March 2026

    The March edition introduced this level to answer a question that appears as soon as a team has a few MCP servers running: mirroring convenient data sources is not the same as exposing institutional knowledge. It proposed servers organised by what they know rather than by where the data happens to live - the design decisions, the ownership map, the reliability contracts - so an agent can find out why the system is shaped this way, not just how it is shaped.

Where does your team actually sit on this?

This guide describes one level of one area. Run the assessment to place your team across all 16 areas, see which gates you have passed, and get a report you can take to your stakeholders.

Start the assessment