wowlab_sentinel/mcp/tools/
docs.rs1use 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}