Improve progress reporting (#145)
* Improve progress reporting - Enable injecting an `IProgress<>` into a tool call to report progress when the client has supplied a progress token - Add a custom type for ProgressToken and ProgressNotification to map to the schema - Simplify RequestId to match ProgressToken's shape - Serialize StdioClientTransport's SendMessageAsync implementation - Add strongly-typed names for all request methods - Change all request IDs created by McpJsonRpcEndpoint to include a guid for that endpoint * Address PR feedback
This commit is contained in:
parent
0294c574a6
commit
2c75acded8
1 changed files with 627 additions and 228 deletions
82
src/ModelContextProtocol/Protocol/Messages/RequestMethods.cs
Normal file
82
src/ModelContextProtocol/Protocol/Messages/RequestMethods.cs
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
namespace ModelContextProtocol.Protocol.Messages;
|
||||
|
||||
/// <summary>
|
||||
/// Provides names for request methods used in the Model Context Protocol (MCP).
|
||||
/// </summary>
|
||||
public static class RequestMethods
|
||||
{
|
||||
/// <summary>
|
||||
/// Sent from the client to request a list of tools the server has.
|
||||
/// </summary>
|
||||
public const string ToolsList = "tools/list";
|
||||
|
||||
/// <summary>
|
||||
/// Used by the client to invoke a tool provided by the server.
|
||||
/// </summary>
|
||||
public const string ToolsCall = "tools/call";
|
||||
|
||||
/// <summary>
|
||||
/// Sent from the client to request a list of prompts and prompt templates the server has.
|
||||
/// </summary>
|
||||
public const string PromptsList = "prompts/list";
|
||||
|
||||
/// <summary>
|
||||
/// Used by the client to get a prompt provided by the server.
|
||||
/// </summary>
|
||||
public const string PromptsGet = "prompts/get";
|
||||
|
||||
/// <summary>
|
||||
/// Sent from the client to request a list of resources the server has.
|
||||
/// </summary>
|
||||
public const string ResourcesList = "resources/list";
|
||||
|
||||
/// <summary>
|
||||
/// Sent from the client to the server, to read a specific resource URI.
|
||||
/// </summary>
|
||||
public const string ResourcesRead = "resources/read";
|
||||
|
||||
/// <summary>
|
||||
/// Sent from the client to request a list of resource templates the server has.
|
||||
/// </summary>
|
||||
public const string ResourcesTemplatesList = "resources/templates/list";
|
||||
|
||||
/// <summary>
|
||||
/// Sent from the client to request resources/updated notifications from the server whenever a particular resource changes.
|
||||
/// </summary>
|
||||
public const string ResourcesSubscribe = "resources/subscribe";
|
||||
|
||||
/// <summary>
|
||||
/// Sent from the client to request cancellation of resources/updated notifications from the server.
|
||||
/// </summary>
|
||||
public const string ResourcesUnsubscribe = "resources/unsubscribe";
|
||||
|
||||
/// <summary>
|
||||
/// Sent from the server to request a list of root URIs from the client.
|
||||
/// </summary>
|
||||
public const string RootsList = "roots/list";
|
||||
|
||||
/// <summary>
|
||||
/// A ping, issued by either the server or the client, to check that the other party is still alive.
|
||||
/// </summary>
|
||||
public const string Ping = "ping";
|
||||
|
||||
/// <summary>
|
||||
/// A request from the client to the server, to enable or adjust logging.
|
||||
/// </summary>
|
||||
public const string LoggingSetLevel = "logging/setLevel";
|
||||
|
||||
/// <summary>
|
||||
/// A request from the client to the server, to ask for completion options.
|
||||
/// </summary>
|
||||
public const string CompletionComplete = "completion/complete";
|
||||
|
||||
/// <summary>
|
||||
/// A request from the server to sample an LLM via the client.
|
||||
/// </summary>
|
||||
public const string SamplingCreateMessage = "sampling/createMessage";
|
||||
|
||||
/// <summary>
|
||||
/// This request is sent from the client to the server when it first connects, asking it to begin initialization.
|
||||
/// </summary>
|
||||
public const string Initialize = "initialize";
|
||||
}
|
||||
Loading…
Reference in a new issue