Skip to content

Latest commit

 

History

History
31 lines (22 loc) · 1.88 KB

File metadata and controls

31 lines (22 loc) · 1.88 KB
title HTTP Context
author mikekistler
description How to access the HttpContext in the MCP C# SDK.
uid httpcontext

HTTP Context

When using the Streamable HTTP transport, an MCP server may need to access the underlying HttpContext for a request. The HttpContext contains request metadata such as the HTTP headers, authorization context, and the actual path and query string for the request.

To access the HttpContext, the MCP server should add the IHttpContextAccessor service to the application service collection (typically in Program.cs). Then any classes, e.g. a class containing MCP tools, should accept an IHttpContextAccessor in their constructor and store this for use by its methods. Methods then use the HttpContext property of the accessor to get the current context.

The following code snippet illustrates how to add the IHttpContextAccessor service to the application service collection:

[!code-csharp]

Any class that needs access to the HttpContext can accept an IHttpContextAccessor in its constructor and store it for later use. Methods of the class can then access the current HttpContext using the stored accessor.

The following code snippet shows the ContextTools class accepting an IHttpContextAccessor in its primary constructor and the GetHttpHeaders method accessing the current HttpContext to retrieve the HTTP headers from the current request.

[!code-csharp]