Table of Contents

Class Resource

Namespace
ModelContextProtocol.Protocol
Assembly
ModelContextProtocol.Core.dll

Represents a known resource that the server is capable of reading.

public class Resource
Inheritance
Resource
Inherited Members

Remarks

See the schema for details.

Properties

Annotations

Gets or sets optional annotations for the resource.

[JsonPropertyName("annotations")]
public Annotations? Annotations { get; init; }

Property Value

Annotations

Remarks

These annotations can be used to specify the intended audience (User, Assistant, or both) and the priority level of the resource. Clients can use this information to filter or prioritize resources for different roles.

Description

Gets or sets a description of what this resource represents.

[JsonPropertyName("description")]
public string? Description { get; init; }

Property Value

string

Remarks

This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.

The description should provide clear context about the resource's content, format, and purpose. This helps AI models make better decisions about when to access or reference the resource.

Client applications can also use this description for display purposes in user interfaces or to help users understand the available resources.

MimeType

Gets or sets the MIME type of this resource.

[JsonPropertyName("mimeType")]
public string? MimeType { get; init; }

Property Value

string

Remarks

MimeType specifies the format of the resource content, helping clients to properly interpret and display the data. Common MIME types include "text/plain" for plain text, "application/pdf" for PDF documents, "image/png" for PNG images, and "application/json" for JSON data.

This property may be null if the MIME type is unknown or not applicable for the resource.

Name

Gets or sets a human-readable name for this resource.

[JsonPropertyName("name")]
public required string Name { get; init; }

Property Value

string

Size

Gets or sets the size of the raw resource content (before base64 encoding), in bytes, if known.

[JsonPropertyName("size")]
public long? Size { get; init; }

Property Value

long?

Remarks

This can be used by applications to display file sizes and estimate context window usage.

Uri

Gets or sets the URI of this resource.

[JsonPropertyName("uri")]
public required string Uri { get; init; }

Property Value

string