Skip to main content

wowlab_sentinel/mcp/tools/
docs.rs

1use rmcp::model::{CallToolResult, Content};
2
3use crate::mcp::GetDocsInput;
4
5pub(super) async fn handle(
6    mcp: &crate::state::McpStateHandle,
7    params: GetDocsInput,
8) -> Result<CallToolResult, rmcp::ErrorData> {
9    let cache = mcp.docs().await;
10    let key = if params.full.unwrap_or(false) {
11        crate::cron::docs::CACHE_DOCS_FULL
12    } else {
13        crate::cron::docs::CACHE_DOCS_INDEX
14    };
15
16    match cache.get(key) {
17        Some(text) => Ok(CallToolResult::success(vec![Content::text(text)])),
18        None => Ok(CallToolResult::success(vec![Content::text(
19            "Docs not yet cached. Try again shortly.",
20        )])),
21    }
22}