Skip to content

Commit 5f2452d

Browse files
committed
Replace utoipa with rustapi-openapi for schema derivation
Removed the utoipa dependency and replaced all uses of ToSchema with Schema from rustapi-openapi. Updated Cargo.toml and data model derives accordingly. Added serde_json as a dependency.
1 parent d4befe5 commit 5f2452d

4 files changed

Lines changed: 16 additions & 40 deletions

File tree

mcp-server/Cargo.lock

Lines changed: 2 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mcp-server/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ edition = "2021"
55

66
[dependencies]
77
rustapi-rs = { version = "0.1.233", features = ["toon"] }
8+
rustapi-openapi = "0.1.233"
89
serde = { version = "1.0", features = ["derive"] }
10+
serde_json = "1.0"
911
tokio = { version = "1.41", features = ["full"] }
10-
utoipa = "4.2"

mcp-server/src/main.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,27 +48,27 @@
4848
4949
use rustapi_rs::prelude::*;
5050
use rustapi_rs::toon::{AcceptHeader, LlmResponse, Toon};
51+
use rustapi_openapi::Schema;
5152
use std::collections::HashMap;
52-
use utoipa::ToSchema;
5353

5454
// --- Data Models ---
5555

56-
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
56+
#[derive(Debug, Clone, Serialize, Deserialize, Schema)]
5757
struct Tool {
5858
name: String,
5959
description: String,
6060
input_schema: ToolSchema,
6161
}
6262

63-
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
63+
#[derive(Debug, Clone, Serialize, Deserialize, Schema)]
6464
struct ToolSchema {
6565
#[serde(rename = "type")]
6666
schema_type: String,
6767
properties: HashMap<String, PropertySchema>,
6868
required: Vec<String>,
6969
}
7070

71-
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
71+
#[derive(Debug, Clone, Serialize, Deserialize, Schema)]
7272
struct PropertySchema {
7373
#[serde(rename = "type")]
7474
prop_type: String,
@@ -77,47 +77,47 @@ struct PropertySchema {
7777
enum_values: Option<Vec<String>>,
7878
}
7979

80-
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
80+
#[derive(Debug, Clone, Serialize, Deserialize, Schema)]
8181
struct ToolsListResponse {
8282
tools: Vec<Tool>,
8383
}
8484

85-
#[derive(Debug, Deserialize, ToSchema)]
85+
#[derive(Debug, Deserialize, Schema)]
8686
struct ToolExecuteRequest {
8787
tool: String,
8888
arguments: HashMap<String, String>, // Simplified to String instead of serde_json::Value
8989
}
9090

91-
#[derive(Debug, Clone, Serialize, ToSchema)]
91+
#[derive(Debug, Clone, Serialize, Schema)]
9292
struct ToolExecuteResponse {
9393
success: bool,
9494
result: String,
9595
#[serde(skip_serializing_if = "Option::is_none")]
9696
error: Option<String>,
9797
}
9898

99-
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
99+
#[derive(Debug, Clone, Serialize, Deserialize, Schema)]
100100
struct Resource {
101101
uri: String,
102102
name: String,
103103
description: String,
104104
mime_type: String,
105105
}
106106

107-
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
107+
#[derive(Debug, Clone, Serialize, Deserialize, Schema)]
108108
struct ResourcesListResponse {
109109
resources: Vec<Resource>,
110110
}
111111

112-
#[derive(Debug, Clone, Serialize, ToSchema)]
112+
#[derive(Debug, Clone, Serialize, Schema)]
113113
struct ServerInfo {
114114
name: String,
115115
version: String,
116116
protocol_version: String,
117117
capabilities: Capabilities,
118118
}
119119

120-
#[derive(Debug, Clone, Serialize, ToSchema)]
120+
#[derive(Debug, Clone, Serialize, Schema)]
121121
struct Capabilities {
122122
tools: bool,
123123
resources: bool,

mcp-server/target/.rustc_info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"rustc_fingerprint":5892572920467916005,"outputs":{"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\tunay\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.91.0 (f8297e351 2025-10-28)\nbinary: rustc\ncommit-hash: f8297e351a40c1439a467bbbb6879088047f50b3\ncommit-date: 2025-10-28\nhost: x86_64-pc-windows-msvc\nrelease: 1.91.0\nLLVM version: 21.1.2\n","stderr":""},"12004014463585500860":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\tunay\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""}},"successes":{}}
1+
{"rustc_fingerprint":5892572920467916005,"outputs":{"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\tunay\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"12004014463585500860":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\tunay\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.91.0 (f8297e351 2025-10-28)\nbinary: rustc\ncommit-hash: f8297e351a40c1439a467bbbb6879088047f50b3\ncommit-date: 2025-10-28\nhost: x86_64-pc-windows-msvc\nrelease: 1.91.0\nLLVM version: 21.1.2\n","stderr":""}},"successes":{}}

0 commit comments

Comments
 (0)