Skip to main content

agentic_evolve_mcp/types/
request.rs

1//! MCP request parameter types for tools, resources, and prompts.
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6/// Parameters for tools/call.
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct ToolCallParams {
9    /// Tool name.
10    pub name: String,
11    /// Tool arguments.
12    #[serde(default)]
13    pub arguments: Option<Value>,
14}
15
16/// Parameters for resources/read.
17#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct ResourceReadParams {
19    /// Resource URI.
20    pub uri: String,
21}
22
23/// Parameters for resources/subscribe.
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct ResourceSubscribeParams {
26    /// Resource URI to subscribe to.
27    pub uri: String,
28}
29
30/// Parameters for resources/unsubscribe.
31#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct ResourceUnsubscribeParams {
33    /// Resource URI to unsubscribe from.
34    pub uri: String,
35}
36
37/// Parameters for prompts/get.
38#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct PromptGetParams {
40    /// Prompt name.
41    pub name: String,
42    /// Prompt arguments.
43    #[serde(default)]
44    pub arguments: Option<Value>,
45}
46
47/// Parameters for $/cancelRequest.
48#[derive(Debug, Clone, Serialize, Deserialize)]
49pub struct CancelRequestParams {
50    /// The request ID to cancel.
51    #[serde(rename = "requestId")]
52    pub request_id: Value,
53    /// Optional reason for cancellation.
54    #[serde(default, skip_serializing_if = "Option::is_none")]
55    pub reason: Option<String>,
56}
57
58/// Cursor-based pagination for list operations.
59#[derive(Debug, Clone, Default, Serialize, Deserialize)]
60pub struct ListParams {
61    /// Cursor for the next page.
62    #[serde(default, skip_serializing_if = "Option::is_none")]
63    pub cursor: Option<String>,
64}