Back to Webinars

Securing Your MCP Server

Date Aired: August 3, 2026

What You’ll Learn

Securing an MCP server starts with a question the protocol does not answer for you: who is making this call? This webinar builds both answers in Python. Dan Moore stands up an unauthenticated MCP server, calls it with curl and from Claude Desktop, then rebuilds the same server behind OAuth with FusionAuth as the authorization server. You will see the five steps of the MCP authentication flow, the two ways an MCP client can register with an authorization server, what a valid access token must contain before your server honors it, and where the security work the specification does not cover still has to happen.

Key Takeaways:

  • MCP gives AI clients a standard way into your data and tools, which is exactly why the authentication question cannot be deferred. A CLI or a REST API can serve the same purpose, but MCP adds a standard many clients already speak and a context layer that guides the agent toward correct use.
  • Unauthenticated MCP servers are legitimate, but only for data that does not vary by caller. Public datasets and documentation qualify; FusionAuth runs its own docs MCP server on that basis. Anything where the answer depends on who is asking needs an identity attached to the request.
  • An authenticated MCP server can vary its response by identity, roles, and authorization. That is the entire reason to add auth: not to block callers, but to give each one the data their permissions actually cover.
  • The MCP server should not become an authorization server. It delegates authentication to an external auth server, receives a token, and validates it. It does not need to know how the user logged in or how tokens are issued.
  • The specification covers layer one and stops there. Everything behind the MCP server, meaning the databases and APIs it calls on the client's behalf, is out of scope because it is business-logic specific and those systems usually have authorization models of their own.
  • Client registration happens one of two ways. Just-in-time registration is the bouncer model: the client presents something the authorization server can accept without prior acquaintance, via Client ID Metadata Document or the older Dynamic Client Registration. Preregistration is the dinner-party model, where the client is already known before the first request.
  • A token is only acceptable if its audience includes the MCP server URL. That requirement comes from the specification, and a server receiving a token without it should stop rather than proceed.
  • Short token lifetimes are load-bearing, not incidental. Because every token in an MCP flow expires quickly, the blast radius of a stolen one stays small.
  • Scopes map to tools, and the mapping is where authorization gets expressed. The demo's get_name scope corresponds to the get_name tool, and the consent screen is where the user decides which of those the client receives.
  • The on-behalf-of flow is what makes the MCP client an extension of the user rather than an independent actor. After authentication, the client holds an access token carrying the user's identity and acts within that identity's permissions.
  • Practical troubleshooting is mostly configuration, not protocol. Validate that your client config is real JSON, log out of the authorization server between tests, and stop Claude Desktop fully, since token caching will otherwise hide your changes from you.
View Transcript

Who Should Watch This Webinar?

  • Application developers
  • Platform engineers
  • Security architects
  • Identity architects
  • API developers
  • AI engineers
  • Developers building or exposing MCP servers
  • Engineering leaders

Topics Discussed:

  • Model Context Protocol overview and versions
  • MCP clients, servers, and authorization servers
  • Local versus remote MCP servers
  • Process pipes and HTTPS transports
  • Unauthenticated MCP servers and their valid use cases
  • Authenticated MCP servers and identity-aware responses
  • On-behalf-of versus autonomous agent calls
  • Layer one and layer two security boundaries
  • Building an MCP server with FastMCP
  • JSON-RPC calls and raw curl testing
  • Claude Desktop MCP configuration
  • The five-step MCP authentication flow
  • Authorization server delegation
  • RemoteAuthProvider and token verification
  • Just-in-time client registration
  • Client ID Metadata Document and Dynamic Client Registration
  • OAuth client preregistration
  • OAuth scopes mapped to MCP tools
  • Consent screens and scope grants
  • Access token structure, audience, expiration, issuer, and scope
  • Short-lived tokens and blast radius
  • Retrieving user information via the OpenID userinfo endpoint
  • Troubleshooting MCP client configuration and token caching

Speakers:

Dan Moore Photo
Dan Moore
Sr. Director of CIAM Strategy, FusionAuth
Dan Moore has spent his career across the full stack of software leadership, from back-end developer and engineering manager to CTO and AWS certification instructor at organizations including Oracle and Culture Foundry. He holds AWS and identity certifications and has contributed to 97 Things Every Cloud Engineer Should Know. His speaking reflects where his interests have landed: Identiverse sessions on CIAM, OAuth compliance, and decentralized authentication; Devnexus workshops on enterprise authentication and microservice architectures; and webinars on passkeys, modern MFA, and identity challenges in agentic AI workflows. He's also been a featured guest on Corey Quinn's Screaming in the Cloud.
Featured TechPaper
Securing Autonomous AI Agents: A Technical Framework
get tech paper
FusionAuth graphic titled "Securing Autonomous AI Agents" with a shield icon
Share this post
Watch  On-Demand
Subscribe to The FusionAuth Newsletter
Get updates on techniques, technical guides, and the latest product innovations coming from FusionAuth.