bump version
This commit is contained in:
Generated
+1
-1
@@ -1503,7 +1503,7 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mcp_server_collection"
|
name = "mcp_server_collection"
|
||||||
version = "0.2.1"
|
version = "0.2.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"axum",
|
"axum",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
|||||||
Generated
+1
-1
@@ -924,7 +924,7 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mcp_server_collection"
|
name = "mcp_server_collection"
|
||||||
version = "0.2.1"
|
version = "0.2.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"axum",
|
"axum",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "mcp_server_collection"
|
name = "mcp_server_collection"
|
||||||
version = "0.2.1"
|
version = "0.2.2"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@@ -85,12 +85,12 @@ pub(crate) async fn find_calendars(
|
|||||||
.ok_or(NoUserPrincipal)?;
|
.ok_or(NoUserPrincipal)?;
|
||||||
|
|
||||||
let calendar_home_sets = caldav_client
|
let calendar_home_sets = caldav_client
|
||||||
.request(FindCalendarHomeSet::new(&user_principal.path()))
|
.request(FindCalendarHomeSet::new(user_principal.path()))
|
||||||
.await?
|
.await?
|
||||||
.home_sets;
|
.home_sets;
|
||||||
|
|
||||||
Ok(caldav_client
|
Ok(caldav_client
|
||||||
.request(FindCalendars::new(&calendar_home_sets[0].path()))
|
.request(FindCalendars::new(calendar_home_sets[0].path()))
|
||||||
.await?
|
.await?
|
||||||
.calendars)
|
.calendars)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ use crate::server_handler::{
|
|||||||
use http::Uri;
|
use http::Uri;
|
||||||
use icalendar::{Event, EventLike, Todo};
|
use icalendar::{Event, EventLike, Todo};
|
||||||
use libdav::dav::FoundCollection;
|
use libdav::dav::FoundCollection;
|
||||||
use rmcp::handler::server::tool::ToolRouter;
|
|
||||||
use rmcp::handler::server::wrapper::Parameters;
|
use rmcp::handler::server::wrapper::Parameters;
|
||||||
use rmcp::model::{CallToolResult, ErrorCode, Implementation, ServerCapabilities, ServerInfo};
|
use rmcp::model::{CallToolResult, ErrorCode, Implementation, ServerCapabilities, ServerInfo};
|
||||||
use rmcp::schemars::JsonSchema;
|
use rmcp::schemars::JsonSchema;
|
||||||
@@ -31,7 +30,6 @@ mod todo;
|
|||||||
pub(crate) struct CalDavHandler {
|
pub(crate) struct CalDavHandler {
|
||||||
client: AuthorizedCaldavClient,
|
client: AuthorizedCaldavClient,
|
||||||
calendar_references: Vec<CalendarReference>,
|
calendar_references: Vec<CalendarReference>,
|
||||||
tool_router: ToolRouter<Self>,
|
|
||||||
default_calendar_name: String,
|
default_calendar_name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +93,6 @@ impl McpServerHandler for CalDavHandler {
|
|||||||
Ok(Self {
|
Ok(Self {
|
||||||
client,
|
client,
|
||||||
calendar_references,
|
calendar_references,
|
||||||
tool_router: Self::tool_router(),
|
|
||||||
default_calendar_name: default_calendar,
|
default_calendar_name: default_calendar,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -209,7 +206,7 @@ impl CalDavHandler {
|
|||||||
if let Some(event_component) = component.as_event() {
|
if let Some(event_component) = component.as_event() {
|
||||||
let event: McpEvent = event_component.clone().try_into()?;
|
let event: McpEvent = event_component.clone().try_into()?;
|
||||||
|
|
||||||
let lower_bound = Local::now().with_timezone(&icalendar::Tz::Local(chrono::Local));
|
let lower_bound = Local::now().with_timezone(&icalendar::Tz::Local(Local));
|
||||||
let upper_bound = lower_bound + DAYS_DELTA;
|
let upper_bound = lower_bound + DAYS_DELTA;
|
||||||
let recurrence = event_component.get_recurrence();
|
let recurrence = event_component.get_recurrence();
|
||||||
|
|
||||||
@@ -219,7 +216,7 @@ impl CalDavHandler {
|
|||||||
|
|
||||||
for date in recurrence_result.dates {
|
for date in recurrence_result.dates {
|
||||||
let mut event_instance = event.clone();
|
let mut event_instance = event.clone();
|
||||||
event_instance.start = Some(date.with_timezone(&chrono::Local{}));
|
event_instance.start = Some(date.with_timezone(&Local{}));
|
||||||
|
|
||||||
if let Some(start) = event.start && let Some(end) = event.end {
|
if let Some(start) = event.start && let Some(end) = event.end {
|
||||||
let event_duration = end-start;
|
let event_duration = end-start;
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ pub struct Config {
|
|||||||
#[derive(Debug, Clone, Deserialize, Serialize)]
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
||||||
pub struct ServerConfig {
|
pub struct ServerConfig {
|
||||||
pub path: String,
|
pub path: String,
|
||||||
pub r#type: McpServiceType,
|
#[serde(rename = "type")]
|
||||||
|
pub service_type: McpServiceType,
|
||||||
#[serde(rename = "additional-properties", default = "Map::new")]
|
#[serde(rename = "additional-properties", default = "Map::new")]
|
||||||
pub additional_properties: Map<String, toml::Value>,
|
pub additional_properties: Map<String, toml::Value>,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,18 @@
|
|||||||
use crate::server_handler::{McpServerHandler, McpServerHandlerError};
|
use crate::server_handler::{McpServerHandler, McpServerHandlerError};
|
||||||
use chrono::{Datelike, Local, Utc};
|
use chrono::{Datelike, Local, Utc};
|
||||||
use rmcp::handler::server::tool::ToolRouter;
|
|
||||||
use rmcp::model::{Implementation, ServerCapabilities, ServerInfo};
|
use rmcp::model::{Implementation, ServerCapabilities, ServerInfo};
|
||||||
use rmcp::{ServerHandler, tool, tool_handler, tool_router};
|
use rmcp::{ServerHandler, tool, tool_handler, tool_router};
|
||||||
use toml::Value;
|
use toml::Value;
|
||||||
use toml::map::Map;
|
use toml::map::Map;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub(crate) struct DateTimeHandler {
|
pub(crate) struct DateTimeHandler;
|
||||||
tool_router: ToolRouter<Self>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl McpServerHandler for DateTimeHandler {
|
impl McpServerHandler for DateTimeHandler {
|
||||||
async fn new(
|
async fn new(
|
||||||
_additional_properties: Map<String, Value>,
|
_additional_properties: Map<String, Value>,
|
||||||
) -> Result<Self, McpServerHandlerError> {
|
) -> Result<Self, McpServerHandlerError> {
|
||||||
Ok(DateTimeHandler {
|
Ok(DateTimeHandler {})
|
||||||
tool_router: Self::tool_router(),
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ pub(crate) async fn mcp_router(
|
|||||||
let mut router = Router::new();
|
let mut router = Router::new();
|
||||||
|
|
||||||
for config in server_configs {
|
for config in server_configs {
|
||||||
router = match config.r#type {
|
router = match config.service_type {
|
||||||
#[cfg(feature = "datetime")]
|
#[cfg(feature = "datetime")]
|
||||||
McpServiceType::DateTime => router.route_service(
|
McpServiceType::DateTime => router.route_service(
|
||||||
config.path.as_str(),
|
config.path.as_str(),
|
||||||
|
|||||||
Reference in New Issue
Block a user