AI Engineer Intelligence Brief
AI Engineer Europe 2026 — Intelligence for Practitioners Building Agents, MCP Servers, and Tool Integrations
Executive Summary
AI Engineer Europe 2026 marked a clear maturation inflection in the agentic stack. The conference's dominant signal was not "should we build agents" but "how do we make them reliable, efficient, and governable at scale." Three years of experimental deployment have produced hard-won production knowledge, and the practitioner consensus is converging: the bottleneck is no longer model capability — it is harness engineering, context architecture, tool interface design, and the scaffolding that prevents non-determinism from compounding into catastrophe.
The Model Context Protocol (MCP) emerged as the conference's infrastructure centerpiece. David Soria Parra (Anthropic) reported 110 million monthly downloads — a growth rate twice as fast as React — and introduced foundational 2026 spec additions: stateless HTTP transport, async agent-to-agent task primitives, server discovery via well-known URLs, and skills-over-MCP. The ecosystem is bifurcating into two rational patterns: MCP for remote, OAuth-gated, proprietary integrations and CLI-based skills for tools with strong model training coverage. Laurie Voss (Arize AI) provided the first structured empirical data on this tradeoff, running 500 evaluations and finding MCP incurred 6x higher cost and 12 tool calls vs. 5 for comparable skill-based approaches on complex tasks — while matching accuracy on simpler reads.
The harness engineering paradigm — humans steering strategy while agents execute implementation — emerged as the dominant professional framework. Ryan Lopopolo (OpenAI) described spending over one billion output tokens per day ($1,000+/day) exclusively through coding agents, and Mario Zechber's Pi, a four-tool minimal harness (read, write, edit, bash), placed sixth on Terminal Bench in October 2025 before compaction was added — demonstrating that simpler harnesses often outperform richer ones. Anthropic's own Ash Prabaker and Andrew Wilson presented the state-of-the-art generator-evaluator-planner architecture that enables agents to run for 5–12 hours continuously, powered by Opus 4.6 with server-side compaction and a negotiated "done contract" between generator and evaluator agents.
Security threats against agent infrastructure are now systemic and well-catalogued. Diego Carpentero's session on AI guardrails documented six production attack vectors including MCP tool-description asymmetry exploits (the model sees hidden instructions the human user does not), agentic escalation via supply-chain attacks (a malicious NPM package referenced in a GitHub issue was installed by a coding agent affecting 4,000–5,000 developers in February 2026), and RAG poisoning achievable with just five documents in an 8-million-document corpus. The browser agent "lethal trifecta" — personal data access plus untrusted content plus communication ability — is now the standard threat framing, cited by Peter Steinberger (OpenAI, OpenClaw creator) and Michael Hablich (Google Chrome DevTools MCP) independently.
Key Findings
Finding 1: MCP Is Infrastructure, Not a Feature — But It Needs a Gateway
MCP reached escape velocity at this conference. David Soria Parra (Anthropic) announced 110 million monthly downloads and a June 2026 spec including stateless HTTP transport (enabling serverless MCP deployments), async agent-to-agent task primitives (formalizing multi-agent orchestration patterns), server discovery via well-known URLs (eliminating manual configuration), and skills-over-MCP (structured skill manifests consumable by any compliant client). The progressive discovery pattern — deferring tool loading via a tool-search primitive instead of injecting all tool definitions into the initial context — measurably reduced Claude Code's context footprint and is now considered a best practice for any server with more than 10 tools.
However, the enterprise deployment story is blocked by three problems Karan Sampath (Anthropic Forward Deployed) called the "three-headed hydra": observability (no visibility into which tools are being called and by whom), access control (inability to scope permissions per role or team), and security (no centralized root of trust for authentication and exfiltration prevention). His proposed solution is an MCP Gateway — a middleware layer handling OAuth, IDP integration, role-based access control, secure tunneling, an internal sub-registry, and a developer CLI for scaffolding new servers. The strategic value: once a gateway exists, every new MCP server needs only implement business logic; auth, scaling, and security review are handled once at the gateway layer.
Code Mode (Sunil Pai, Cloudflare; Abhishek Kankani, Cloudflare Singapore) demonstrated a competing approach to token efficiency: instead of exposing one MCP tool per API endpoint, expose two code-accepting tool calls (search + execute) that accept JavaScript strings. This reduced Cloudflare's 2,600-endpoint API surface from approximately 1.2 million tokens to roughly 1,000 tokens — a 99.9% reduction. Empirical data from Cloudflare's Singapore session showed Code Mode cuts token usage 70% vs. vanilla MCP, and Rita Kozlov confirmed server-side Code Mode reduces context from 2M+ tokens to under 2,000.
Finding 2: Tool Interface Design Is a Discipline With Measurable Quality Standards
The Chrome DevTools MCP session from Michael Hablich (Google) produced the most rigorous treatment of tool interface design at the conference, introducing the metric "tokens per successful outcome" as the fuel efficiency measure for agent interfaces. The team's journey from a monolithic debug_webpage tool to 25 focused tools — and the discovery that 97% of MCP tool descriptions have quality smells (per cited research) — established that tool description quality is an engineering problem with empirical standards.
Hablich's four lessons for MCP authors: interface fuel efficiency (agents should be pointed at the right sentence, not forced to read the whole book — replace raw 50,000-line JSON performance traces with markdown summaries of LCP, INP, and CLS); error recovery as a spectrum (vague errors like "unable to navigate back" should be rewritten to "cannot navigate back, no previous page in history" to enable agent self-healing); discoverability via schema-as-UI thinking (each tool description must define core purpose and clear activation criteria, with tool categorization and slim modes for context-sensitive deployments); and trust through deliberate friction (never auto-persist dangerous permissions; implement a three-tier security model distinguishing local dev, CI/CD, and fleet browsing agents).
Nimrod Hauser (Baz) provided a complementary five-stage framework for adapting public MCP servers to production use cases: tool curation (filter irrelevant tools to shrink context load), tool wrapping (add use-case-specific guidance to shallow descriptions), deterministic guardrails (intercept tool invocations to enforce constraints before execution), tool composition (synthesize new domain-specific tools from primitives), and treating sensitive steps as deterministic functions pulled outside the agentic loop entirely.
Leonie Monigatti (Elastic) introduced the "low-floor vs. high-ceiling" tool stack design pattern: maintain simple, specialized tools for predictable queries (semantic search, lookup-by-ID) alongside general-purpose tools (shell, query execution) for complex or unexpected cases. A referenced Vercel blog post found that a hybrid agent combining a shell tool and a database query tool achieved higher accuracy than either alone due to cross-validation behavior. The actionable heuristic: if an agent is taking 4–5 tool calls per question, the tool is too hard to use and a specialized replacement is warranted.
Finding 3: Context Engineering Has Precise Engineering Mechanics — and Failure Modes
Multiple sessions converged on context engineering as the primary differentiated skill for agent builders, but the conference went further than most prior discussions by documenting specific failure modes and mitigations with quantitative thresholds.
Brendan O'Leary (Kilo Code) identified context window quality degradation beginning around 50% utilization — not at the absolute limit. Every enabled MCP server loads additional tokens on every request; a Postgres MCP loaded during pure front-end work is both wasteful and scope-confusing. Context poisoning — where mixing unrelated tasks, stale comments, or failed exploratory paths causes bad patterns to re-emerge — is distinct from context bloat and requires structural isolation (parallel agents, session separation) rather than just pruning.
Sarah Chieng (Cerebras) documented a critical new pressure: at 1,200 tokens/second (the Codex Spark inference rate, 20x faster than typical Claude/Gemini families), context compaction happens in 30 seconds rather than 10 minutes. This means the "sit alongside the model and steer" paradigm is now mandatory — async dispatch-and-review no longer works at extreme inference speeds. Her four-file external memory architecture (agents.md for sub-agent definitions, plan.md for step-by-step checklists, progress.md for session state, verify.md for per-step quality gates) externalizes memory state to survive compaction events.
Matt Pocock (AI Hero) documented the "smart zone vs. dumb zone" threshold: LLM performance degrades around 100K tokens regardless of the absolute context window size, due to the quadratic attention cost of long-range dependencies. His prescription is clearing context entirely rather than compacting, keeping sessions stateless and deterministic. The opposing viewpoint — from Anthropic's Ash Prabaker and Andrew Wilson — is that Opus 4.6 has eliminated "context sense anxiety" in post-training, making session resets unnecessary for the latest model generation. Both positions are coherent given their different target models.
Pedro Rodrigues (Supabase) provided a critical finding about skill file design: security-critical constraints that agents must not miss should live directly in skill.md, not in bundled reference files. Agents are reluctant to make expensive tool calls or load multiple reference files, and will routinely skip reference files. Supabase learned this when their RLS security checklist in a reference file was consistently bypassed — moving it to the skill body fixed the compliance failure. This is a production-critical finding for anyone building security-sensitive agent workflows.
Finding 4: Multi-Agent Orchestration Patterns Are Crystallizing
The conference surfaced multiple converging patterns for multi-agent architectures, with enough cross-speaker convergence to treat them as emerging standards rather than experimental designs.
The generator-evaluator-planner pattern (Anthropic Applied AI team) is the state-of-the-art for long-running agents. The key innovations over simple generator-evaluator loops: a Planner converts vague prompts to high-level sprint specs (deliberately avoiding granular technical detail to prevent spec-error cascades); the generator and evaluator negotiate a "done contract" via files on disk before any code is written; and the evaluator uses Playwright MCP to open live pages, click through, and take screenshots — not just read diffs. The evaluator grades on four weighted criteria: design, originality, craft, and functionality, with design and originality weighted higher because functionality is now largely solved. The harness enabled a 12-hour continuous agent run with Opus 4.6, up from 1 hour with Claude Opus 3.7.
Vincent Koc (OpenClaw) demonstrated the swim-lane pattern at industrial scale: 15–20 parallel coding sessions organized by work type, with CI fixes in low-supervision lanes (commit and push autonomously) and feature work requiring active back-and-forth. At the peak of the "great refactor" — decomposing the OpenClaw monolith into a plugin architecture overnight — 60–70 concurrent agents were running between two engineers, producing 2,700 commits touching close to a million lines of code in a single night. His emerging skill: reading reasoning tokens to detect hallucinated confidence, described as pattern-matching analogous to an engineering manager detecting when a report is bluffing.
Eric Zakariasson (Cursor) articulated a six-stage autonomy framework (Dan Shapiro's model) with most developers currently at Level 2–3 (pair programmer), his own work approaching Level 4 (engineer as manager), and Level 6 being a "dark factory" where agents autonomously plan, implement, test, and ship. The practical infrastructure for Level 4+: cloud agents on dedicated VMs with computer-use capabilities, Playwright-based end-to-end tests as agent self-verification, and a continuous learning plugin that scans chat transcripts to extract and persist rules.
Liam Hampton (Microsoft/GitHub) demonstrated three-tier simultaneous agent deployment from VS Code as a single control plane: local agents (interactive, human-in-loop) for test writing, background agents in Git worktrees for UI construction, and cloud agents in GitHub Actions (firewalled, no main-branch access) for open-ended tasks like documentation generation — all running concurrently against the same codebase.
Finding 5: Agent Security Is Now a Structured Threat Landscape With Known Attack Vectors
Diego Carpentero (independent) delivered the conference's most technically detailed security session, cataloguing six production attack vectors with real-world case studies. The February 2026 supply-chain attack — a malicious NPM package referenced in a GitHub issue that was installed by a coding agent, affecting 4,000–5,000 developers — established that agentic escalation is no longer theoretical. The same session documented the MCP tool-description asymmetry exploit: the human user sees a simplified one-liner tool description while the LLM reads a full description that can embed hidden instructions and exfiltrate private keys as silent side parameters.
RAG poisoning data is now precise: the 2025 "Poison RAG" paper showed that poisoning just five chunks in an 8-million-document knowledge base is sufficient to force a target answer, provided the poisoned chunks satisfy a retrieval condition (semantic similarity to expected queries) and a generation condition (convincing content that ranks highly). This is directly actionable: any enterprise RAG system should treat its knowledge base as a security boundary, not just a data store.
Carpentero's proposed mitigation is a fine-tuned ModernBERT-based classifier running at 35–40ms latency (vs. seconds for LLM-as-judge approaches) trained on the InjectGuard dataset (75,000 labeled examples). The model achieves approximately 85% accuracy at this latency point. The architectural advantages: BFloat16 training reduces memory by ~40%, alternating local/global attention (FlashAttention) handles 8,192-token contexts efficiently, and the model can be retrained in hours when new attack patterns emerge. The practical recommendation: every production agent with external content ingestion should have a sub-100ms classifier gate.
Ioana Ghita (Accesa) added a complementary finding from production operations: behavioral validation is distinct from unit testing, and the gap between them is where the most costly agent failures occur. A manufacturing anomaly detection agent correctly identified a large spike, correctly labeled it, but triggered a decision involving hundreds of millions of euros that was strategically wrong — because no decision fallback existed for that valid-but-unmodeled semantic state. This "unmodeled semantic and decision state" class of failure is invisible to technical monitoring. Infrastructure dashboards showed zero errors and normal latency when a candidate was trapped in a conversational loop for 40 minutes during an interview agent failure.
Finding 6: Eval Infrastructure Is Now a First-Class Engineering Domain
The conference featured more sessions on evaluation infrastructure than any previous AI Engineer event, reflecting a maturation from "do evals" to "how do you engineer eval systems that scale."
Samuel Colvin (Pydantic) demonstrated GEPA (Genetic Evolution of Prompts via Agents), a genetic algorithm that operates on prompt strings, identifying the Pareto frontier of best-performing candidates and cross-breeding them iteratively. After 400 evaluation calls, GEPA achieved 96.7% accuracy vs. 87% for a simple prompt and 92% for a manually crafted expert prompt on a structured extraction task. The key limitation: GEPA prompts are model-specific and must be re-optimized when the underlying model changes. Shopify reduced annual model costs from roughly $5 million to $73,000 by combining GEPA-style optimization with a smaller quantized model instead of GPT-5.
Laurie Voss (Arize AI) ran the conference's most rigorous tool-integration evaluation: 500 structured evaluations comparing GitHub's official MCP server, a verbose 2,187-line GH skill, and a short opinionated GH skill using Claude Opus 4.6 via the Claude Agent SDK. All three scored correctness in the high 80s with 100% on read-only tasks, but MCP used 12 tool calls vs. 5 per task on complex queries and incurred 6x higher cost. The practical conclusion: CLI/skills win for tools with strong training-data coverage; MCP wins for remote, proprietary, OAuth-gated tools and consumer contexts. Production agents like Cursor and Claude Code use both.
Lawrence Jones (Incident.io) introduced an eval engineering pattern specifically for long-running AI SRE systems: serializing UI debugging views as downloadable file system snapshots. Since coding agents cannot navigate browser UIs effectively but excel at file system traversal, packaging every AI interaction (full trace data rendered as ASCII-friendly text files) as a downloadable directory enables agents to diagnose their own failures. The companion pattern — fleet-scale clustering via 25 parallel Claude Code agents independently analyzing one investigation each, followed by a second clustering stage — transforms an 86% accuracy score into actionable root-cause reports that drive specific code changes.
Finding 7: Skills Are Becoming the Primary Distribution Layer for Agent Behavior
Across multiple sessions, skills — structured markdown files with YAML front matter containing name, description, and optional scripts — emerged as the primary mechanism for encoding, distributing, and governing agent behavior, supplanting both raw system prompts and purely MCP-based approaches.
David Soria Parra (Anthropic) introduced skills-over-MCP as a June 2026 spec addition, enabling structured skill manifests consumable by any compliant MCP client. David Gomes (Cursor) replaced 15,000 lines of code for Cursor's worktrees feature with approximately 40 lines of markdown. Nick Nisi and Zack Proser (WorkOS) demonstrated that the description field in a skill manifest is not a human-readable label but a routing rule for the LLM — writing good descriptions means writing routing logic. Script interpolation via bang-backtick syntax injects deterministic command output directly into skill prompts, eliminating speculation about repo state. Progressive disclosure allows skill systems to avoid context bloat: skill.md conditionally references larger documents only when the current task requires them.
Patrick Debois (Tessl) framed this as a Context Development Lifecycle (CDL) — a structured engineering discipline encompassing generation, evaluation, distribution, and observability of context. The distribution challenge is real: there is no standard registry or package manager for skills, and most published skills in public marketplaces do not pass any quality evaluation bar. Enterprises are building private registries. Debois introduced the concept of an AI SBOM (Software Bill of Materials) — tracking which model generated a skill, under what conditions, and what it depends on — as the emerging governance framework.
Finding 8: Agentic CI/CD Requires a New Infrastructure Primitive
Hugo Santos and Madison Faulkner (NEA/Namespace) identified the most concrete infrastructure gap exposed by multi-agent development: traditional CI/CD pipelines are designed around one or two human diffs per week and break completely at agent scale. With thousands of autonomous agents opening PRs continuously, runner saturation, cold Docker builds on every short-lived branch, cache thrash, and merge queue serialization (which begins to behave like a database lock) become primary bottlenecks. GitHub commit activity data showed a dramatic spike in recent months attributable almost entirely to agent activity.
The proposed replacement architecture eliminates PRs as the primary unit of work: agents check out a well-known commit, implement a codified intent-and-plan, run validation inline to the loop, and surface a human-readable outcome — not a diff — for lightweight confirmation. Human review shifts to intent-plus-outcome (including agent-generated feature demo videos and LLM security reports) rather than raw code diffs. Namespace reports their own PR-equivalent volume is already 4x historical norms, making per-PR human review untenable. A forthcoming "multiverse" model — where agents explore multiple parallel commits simultaneously for the same plan and choose the best candidate before merging — multiplies compute requirements further.
Strategic Implications
The MCP + Skills split is permanent, not transitional. Engineers building integrations should make an explicit design decision per tool: MCP for remote, OAuth-gated, frequently-changing proprietary APIs where the host manages authentication and discovery; skills for local workflows, tools with strong model training coverage, and cases where token efficiency is critical. The Arize AI eval data makes the cost differential concrete: 6x higher cost for MCP on complex operations.
Harness engineering is the career differentiator. As model capability commoditizes, the engineer who can build minimal, reliable harnesses — with correct verify steps, context management, security layers, and progressive context disclosure — will produce dramatically better outputs than the engineer who relies on model capability alone. The Terminal Bench result (a 2-tool tmux harness outperforming full harnesses) is the canonical demonstration that this is not about complexity but about precision.
Security must be designed in, not bolted on. The six attack vectors catalogued by Carpentero — particularly MCP tool-description asymmetry, RAG poisoning at 5-document scale, and supply-chain attacks via issue-referenced packages — are not edge cases. Any agent with external content ingestion, MCP server access, or package installation capabilities needs a sub-100ms classifier gate, and all MCP server descriptions must be reviewed as security surfaces, not just documentation.
Eval infrastructure is now a build-vs-buy decision. The GEPA result (96.7% vs. 87% on structured extraction) demonstrates that automated prompt optimization at scale is now feasible and economically justified. Teams building agents for private-data domains — where models have no prior training signal — should treat prompt optimization as a required engineering investment, not an experimental feature.
The long-running agent era has arrived. Anthropic's 12-hour agent runs with the generator-evaluator-planner pattern and 1-million-token context GA represent a genuine capability expansion. Engineers should evaluate which of their current batch processes, data pipelines, or multi-session workflows could be collapsed into single extended agent runs. The infrastructure requirements (file-system shared state, server-side compaction, per-step verification, negotiated done contracts) are now well-documented.
Agent observability requires domain-specific investment. Traditional APM tools (Grafana, Datadog) answer "is the system up?" — agent observability requires answering "did the agent accomplish the user's intent?" The tooling gap is large: Braintrust built a custom database (with a forked Tantivy full-text search layer) because no existing OLAP solution handled gigabyte-scale semi-structured trace data with full-text indexing. Teams choosing observability platforms should evaluate them against agent-specific requirements: trace clustering, LLM-as-judge scoring, implicit signal detection, and A/B testing of prompt/model variants.
Action Items
Priority 1: Implement a tool description quality audit. Apply the schema-as-UI principle to every tool in your current stack. Each description should define core purpose, clear activation criteria, and — for complex tools — examples of correct invocation. Budget one day per engineer to rewrite descriptions and measure the change in agent accuracy against your existing eval suite. The 97% quality-smell finding suggests this is the highest-leverage single intervention available.
Priority 2: Add a security classifier gate to any agent ingesting external content. Use Carpentero's ModernBERT approach or an equivalent sub-100ms classifier trained on InjectGuard. This is non-optional for any agent with external document access, email inbox integration, web browsing, or user-supplied content. Evaluate the tool-description asymmetry risk in every MCP server your agents consume.
Priority 3: Implement the skills/MCP split decision framework for each integration. For each tool in your agent stack, answer: Is this remote and OAuth-gated? Is it proprietary with a frequently-changing API? Does it need consumer-facing discovery? If yes to any: MCP. Otherwise: evaluate whether a skill achieves equivalent accuracy at lower token cost, using the Arize AI methodology (compare correctness, tool calls per task, and total cost across 50+ structured evaluations).
Priority 4: Add a verify step to every agent harness. Following the Tejas Kumar (IBM) pattern: a deterministic post-run function that reads the tool-call trace and confirms the agent actually accomplished what it claimed. This single addition eliminates the class of failures where an agent reports success while leaving the task incomplete. The GPT-3.5 Turbo demo with correct verify step outperformed unconstrained frontier models.
Priority 5: Build a minimal eval infrastructure before scaling agent usage. Prioritize: (a) a golden dataset of 20–50 representative tasks with graded correctness criteria; (b) an LLM-as-judge calibrated against human labels; and (c) a CI integration that runs evals on prompt and model changes. The Braintrust and Pydantic AI approaches both demonstrate this is achievable in a week, and the GEPA result shows the payoff (96.7% vs. 87%) is immediate.
Priority 6: Prototype skills-over-MCP for at least one internal tool. Given the June 2026 spec addition of skills-over-MCP, the distribution problem for agent behavior is being solved at the protocol layer. Build a pilot skill for one internal tool (a database access workflow, a deployment runbook, or a code review checklist), validate with Braintrust-style evals (before/after rubric grading), and establish the distribution mechanism (private registry, npx package, or .claude/skills directory) before the need is urgent.
Priority 7: Audit your agent codebase for the "agent-legible" design properties. Apply Ryan Lopopolo's (OpenAI) and Armin Ronacher/Cristina Poncela Cubeiro's (Earendil) recommendations: unique function names across the codebase, single SQL query interface, no bare catch blocks, one UI primitives library, files under 350 lines (enforced by test), and explicit module boundaries with lint-enforced dependency edges. The compounding effect of agent-illegible codebases is now documented: hard-to-change code prevents capturing AI productivity gains.
Sessions to Watch
- Anthropic Workshop: Build Agents That Run for Hours (Ash Prabaker & Andrew Wilson) — State-of-the-art generator-evaluator-planner architecture, the done-contract pattern, and the full harness evolution from Ralph Loop to Opus 4.6; essential for anyone building production long-running agents.
- Code Mode: Let the Code Do the Talking (Sunil Pai, Cloudflare) — The definitive treatment of replacing JSON tool calls with executable code generation; includes the 99.9% token reduction demonstration and the V8 isolate capability-based security model.
- $1 AI Guardrails: The Unreasonable Effectiveness of Finetuned ModernBERTs (Diego Carpentero) — The most technically complete security session at the conference; six attack vectors, the MCP tool-description asymmetry exploit, February 2026 supply-chain attack details, and a working sub-40ms classifier implementation.
- Bending a Public MCP Server Without Breaking It (Nimrod Hauser, Baz) — Five-stage practical framework for adapting public MCP servers (tool curation, wrapping, deterministic guardrails, composition, deterministic extraction); directly applicable to any team consuming third-party MCP servers.
- Combine Skills and MCP to Close the Context Gap (Pedro Rodrigues, Supabase) — Multi-model eval data (Claude Opus 4.6, Sonnet 4.6, GPT-5.4, GPT-5.4 mini) proving skills + MCP outperforms MCP-alone across all models; the RLS security checklist finding is immediately actionable for security-critical workflows.
- Agent Optimization with Pydantic AI: GEPA, Evals, Feedback Loops (Samuel Colvin) — GEPA genetic prompt optimization achieving 96.7% vs. 87% baseline accuracy; Shopify cost reduction case study ($5M to $73K); managed variables with A/B traffic splitting for live prompt/model swapping.
- Building Agent Interfaces: Lessons from Chrome DevTools MCP (Michael Hablich, Google) — The "tokens per successful outcome" metric, the 97% tool description quality-smell finding, error messages designed for agent self-healing, and the three-tier browser agent security model.
- AIE Europe Keynotes: Day 2 (David Soria Parra, Anthropic) — MCP creator's own presentation of the June 2026 spec additions including progressive discovery, programmatic tool calling, stateless HTTP transport, skills-over-MCP, and cross-app enterprise SSO; required viewing for any MCP server author.