Implement SEP-1319: Decouple Request Payload from RPC Methods (#617)
* feat: implement SEP-1319 Decouple Request Payload from RPC Methods * test: update tests * fix: update handler trait methods to use new types * fix: update examples * fix: correct deprecation version * fix: update wrapper macros to use new *Params type names
This commit is contained in:
parent
48e989b711
commit
9e881a645b
3 changed files with 913 additions and 278 deletions
|
|
@ -214,7 +214,7 @@ impl ServerHandler for Counter {
|
|||
|
||||
async fn list_resources(
|
||||
&self,
|
||||
_request: Option<PaginatedRequestParam>,
|
||||
_request: Option<PaginatedRequestParams>,
|
||||
_: RequestContext<RoleServer>,
|
||||
) -> Result<ListResourcesResult, McpError> {
|
||||
Ok(ListResourcesResult {
|
||||
|
|
@ -229,7 +229,7 @@ impl ServerHandler for Counter {
|
|||
|
||||
async fn read_resource(
|
||||
&self,
|
||||
ReadResourceRequestParam { uri }: ReadResourceRequestParam,
|
||||
ReadResourceRequestParams { meta: _, uri }: ReadResourceRequestParams,
|
||||
_: RequestContext<RoleServer>,
|
||||
) -> Result<ReadResourceResult, McpError> {
|
||||
match uri.as_str() {
|
||||
|
|
@ -256,7 +256,7 @@ impl ServerHandler for Counter {
|
|||
|
||||
async fn list_resource_templates(
|
||||
&self,
|
||||
_request: Option<PaginatedRequestParam>,
|
||||
_request: Option<PaginatedRequestParams>,
|
||||
_: RequestContext<RoleServer>,
|
||||
) -> Result<ListResourceTemplatesResult, McpError> {
|
||||
Ok(ListResourceTemplatesResult {
|
||||
|
|
@ -268,7 +268,7 @@ impl ServerHandler for Counter {
|
|||
|
||||
async fn initialize(
|
||||
&self,
|
||||
_request: InitializeRequestParam,
|
||||
_request: InitializeRequestParams,
|
||||
context: RequestContext<RoleServer>,
|
||||
) -> Result<InitializeResult, McpError> {
|
||||
if let Some(http_request_part) = context.extensions.get::<axum::http::request::Parts>() {
|
||||
|
|
@ -347,7 +347,8 @@ mod tests {
|
|||
"source".into(),
|
||||
serde_json::Value::String("integration-test".into()),
|
||||
);
|
||||
let params = CallToolRequestParam {
|
||||
let params = CallToolRequestParams {
|
||||
meta: None,
|
||||
name: "long_task".into(),
|
||||
arguments: None,
|
||||
task: Some(task_meta),
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ impl ServerHandler for SqlQueryServer {
|
|||
|
||||
async fn complete(
|
||||
&self,
|
||||
request: CompleteRequestParam,
|
||||
request: CompleteRequestParams,
|
||||
_context: RequestContext<RoleServer>,
|
||||
) -> Result<CompleteResult, McpError> {
|
||||
let candidates = match &request.r#ref {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ impl ServerHandler for SamplingDemoServer {
|
|||
|
||||
async fn call_tool(
|
||||
&self,
|
||||
request: CallToolRequestParam,
|
||||
request: CallToolRequestParams,
|
||||
context: RequestContext<RoleServer>,
|
||||
) -> Result<CallToolResult, ErrorData> {
|
||||
match request.name.as_ref() {
|
||||
|
|
@ -48,7 +48,9 @@ impl ServerHandler for SamplingDemoServer {
|
|||
|
||||
let response = context
|
||||
.peer
|
||||
.create_message(CreateMessageRequestParam {
|
||||
.create_message(CreateMessageRequestParams {
|
||||
meta: None,
|
||||
task: None,
|
||||
messages: vec![SamplingMessage {
|
||||
role: Role::User,
|
||||
content: Content::text(question),
|
||||
|
|
@ -99,7 +101,7 @@ impl ServerHandler for SamplingDemoServer {
|
|||
|
||||
async fn list_tools(
|
||||
&self,
|
||||
_request: Option<PaginatedRequestParam>,
|
||||
_request: Option<PaginatedRequestParams>,
|
||||
_context: RequestContext<RoleServer>,
|
||||
) -> Result<ListToolsResult, ErrorData> {
|
||||
Ok(ListToolsResult {
|
||||
|
|
|
|||
Loading…
Reference in a new issue