Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
JsonResource.cs
1using System;
3using System.Threading.Tasks;
4using Waher.Content;
7
9{
13 public class JsonResource : Resource
14 {
15 private readonly Func<Task<object?>> read;
16
29 public JsonResource(string Name, string Title, string Description, Uri Uri,
30 Func<Task<object?>> Read, params KeyValuePair<string, object>[] MetaData)
32 {
33 this.read = Read;
34 }
35
51 public JsonResource(string Name, string Title, string Description, Uri Uri,
52 Func<Task<object?>> Read, string? RequiredPrivilege,
53 params KeyValuePair<string, object>[] MetaData)
55 {
56 this.read = Read;
57 }
58
77 public JsonResource(string Name, string Title, string Description, Uri Uri,
78 Func<Task<object?>> Read, string? RequiredPrivilege, long? Size,
79 params KeyValuePair<string, object>[] MetaData)
82 {
83 this.read = Read;
84 }
85
105 public JsonResource(string Name, string Title, string Description, Uri Uri,
106 Func<Task<object?>> Read, string? RequiredPrivilege, long? Size,
107 Icon Icon, params KeyValuePair<string, object>[] MetaData)
109 Icon, MetaData)
110 {
111 this.read = Read;
112 }
113
133 public JsonResource(string Name, string Title, string Description, Uri Uri,
134 Func<Task<object?>> Read, string? RequiredPrivilege, long? Size,
135 Icons? Icons, params KeyValuePair<string, object>[] MetaData)
138 {
139 this.read = Read;
140 }
141
171 public JsonResource(string Name, string Title, string Description, Uri Uri,
172 Func<Task<object?>> Read, string? RequiredPrivilege, long? Size,
173 Icons? Icons, McpRole[]? Audience, double? Priority, DateTime? LastModified,
174 params KeyValuePair<string, object>[] MetaData)
177 {
178 this.read = Read;
179 }
180
186 public override async Task<IResourceContent[]> Read(
187 Dictionary<string, object>? MetaData)
188 {
189 object? Result = await this.read();
190 string s = JSON.Encode(Result, false);
191
192 return new IResourceContent[]
193 {
195 };
196 }
197 }
198}
Helps with common JSON-related tasks.
Definition: JSON.cs:16
static string Encode(string s)
Encodes a string for inclusion in JSON.
Definition: JSON.cs:537
const string DefaultContentType
application/json
Definition: JsonCodec.cs:20
DateTime? LastModified
The moment the resource was last modified, as an ISO 8601 formatted string.
Definition: Annotations.cs:61
double? Priority
Describes how important this data is for operating the server.
Definition: Annotations.cs:53
McpRole?[] Audience
Describes who the intended audience of this object or data is.
Definition: Annotations.cs:44
An optionally-sized icon that can be displayed in a user interface.
Definition: Icon.cs:10
Base interface to add icons property.
Definition: Icons.cs:11
Contains information about an MCP Server JSON Resource
Definition: JsonResource.cs:14
JsonResource(string Name, string Title, string Description, Uri Uri, Func< Task< object?> > Read, string? RequiredPrivilege, long? Size, params KeyValuePair< string, object >[] MetaData)
Contains information about an MCP Server JSON Resource
Definition: JsonResource.cs:77
JsonResource(string Name, string Title, string Description, Uri Uri, Func< Task< object?> > Read, params KeyValuePair< string, object >[] MetaData)
Contains information about an MCP Text Server Resource
Definition: JsonResource.cs:29
JsonResource(string Name, string Title, string Description, Uri Uri, Func< Task< object?> > Read, string? RequiredPrivilege, long? Size, Icons? Icons, params KeyValuePair< string, object >[] MetaData)
Contains information about an MCP Server JSON Resource
JsonResource(string Name, string Title, string Description, Uri Uri, Func< Task< object?> > Read, string? RequiredPrivilege, params KeyValuePair< string, object >[] MetaData)
Contains information about an MCP Text Server Resource
Definition: JsonResource.cs:51
JsonResource(string Name, string Title, string Description, Uri Uri, Func< Task< object?> > Read, string? RequiredPrivilege, long? Size, Icon Icon, params KeyValuePair< string, object >[] MetaData)
Contains information about an MCP Server JSON Resource
JsonResource(string Name, string Title, string Description, Uri Uri, Func< Task< object?> > Read, string? RequiredPrivilege, long? Size, Icons? Icons, McpRole[]? Audience, double? Priority, DateTime? LastModified, params KeyValuePair< string, object >[] MetaData)
Contains information about an MCP Server JSON Resource
override async Task< IResourceContent[]> Read(Dictionary< string, object >? MetaData)
Reads the resource.
Contains information about an MCP Server Resource
Definition: Resource.cs:14
string Title
A human-readable title for the prompt.
Definition: Resource.cs:211
KeyValuePair< string, object >[] MetaData
Meta-data associated with prompt.
Definition: Resource.cs:252
string? RequiredPrivilege
Privilege required to access the resource, if any. If null, no additional privilege is required.
Definition: Resource.cs:230
long? Size
The size of the raw resource content, in bytes (i.e., before base64 encoding or any tokenization),...
Definition: Resource.cs:242
string Description
A human-readable description of the prompt.
Definition: Resource.cs:219
McpRole
Identifies a Role in a Model Context Protocol (MCP) context.
Definition: McpRole.cs:7