Table of Contents

Class McpToolCategoryHeader

Namespace
MailFathom.Mcp.Tools.Categories
Assembly
MailFathom.Mcp.dll

The request header a client narrows its own view of this surface with.

public static class McpToolCategoryHeader
Inheritance
McpToolCategoryHeader
Inherited Members

Remarks

It takes away and never grants. What the deployment published is the authority; this says which part of it a particular client wants to see, so one endpoint can serve an agent that only reads beside one that does everything, and a client that needs a fraction of the surface need not carry the rest in its model's context. A category the configuration excluded is never published because a header asked for it, and no value here enables a capability, widens a grant, or reveals that a withheld tool exists.

It is therefore not an authorization mechanism and nothing may be built on it as one. The value is written by the caller, so it is untrusted input in the ordinary sense: it is read, bounded, and mostly ignored. A value naming no published category is dropped rather than refused, because a client sending one has asked for nothing this endpoint can act on and failing its request would turn a narrowing convenience into an outage.

The name is MailFathom's own and collides with nothing on the path a request takes. The Streamable HTTP transport reads Mcp-Session-Id, MCP-Protocol-Version, and Last-Event-ID; the authentication methods read Authorization; a reverse proxy writes the X-Forwarded-* family. None of those is this, and the product prefix keeps a future one from becoming this. It carries no X- prefix, which RFC 6648 deprecates for exactly the reason a header outliving its experiment then cannot be renamed. A browser client reaches it because the endpoint's CORS policy names it among the request headers it permits.

Fields

Name

The header a client writes the categories it wants in.