67 lines
1.8 KiB
Rust
67 lines
1.8 KiB
Rust
|
|
use chrono::{DateTime, Utc};
|
||
|
|
use serde::{Deserialize, Serialize};
|
||
|
|
use serde_json::{Map, Value};
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct McpServer {
|
||
|
|
pub id: String,
|
||
|
|
pub name: String,
|
||
|
|
pub transport: String,
|
||
|
|
pub command: Option<String>,
|
||
|
|
pub args: Vec<String>,
|
||
|
|
pub env: Map<String, Value>,
|
||
|
|
pub url: Option<String>,
|
||
|
|
pub headers: Map<String, Value>,
|
||
|
|
pub enabled: bool,
|
||
|
|
pub status: String,
|
||
|
|
pub error: Option<String>,
|
||
|
|
pub tools: Vec<McpTool>,
|
||
|
|
pub created_at: DateTime<Utc>,
|
||
|
|
pub updated_at: DateTime<Utc>,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct McpTool {
|
||
|
|
pub name: String,
|
||
|
|
pub exposed_name: String,
|
||
|
|
pub description: String,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct UpsertMcpServerInput {
|
||
|
|
pub name: String,
|
||
|
|
pub transport: String,
|
||
|
|
#[serde(default)]
|
||
|
|
pub command: Option<String>,
|
||
|
|
#[serde(default)]
|
||
|
|
pub args: Vec<String>,
|
||
|
|
#[serde(default)]
|
||
|
|
pub env: Map<String, Value>,
|
||
|
|
#[serde(default)]
|
||
|
|
pub url: Option<String>,
|
||
|
|
#[serde(default)]
|
||
|
|
pub headers: Map<String, Value>,
|
||
|
|
#[serde(default = "default_true")]
|
||
|
|
pub enabled: bool,
|
||
|
|
}
|
||
|
|
|
||
|
|
fn default_true() -> bool {
|
||
|
|
true
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct PatchMcpServerInput {
|
||
|
|
pub name: Option<String>,
|
||
|
|
pub transport: Option<String>,
|
||
|
|
pub command: Option<String>,
|
||
|
|
pub args: Option<Vec<String>>,
|
||
|
|
pub env: Option<Map<String, Value>>,
|
||
|
|
pub url: Option<String>,
|
||
|
|
pub headers: Option<Map<String, Value>>,
|
||
|
|
pub enabled: Option<bool>,
|
||
|
|
}
|