1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// Copyright (c) 2025 Icarus Team. All Rights Reserved.
// Licensed under BSL-1.1. See LICENSE and NOTICE files.
// Signature verification and telemetry must remain intact.
// #![warn(missing_docs)] // TODO: Enable after adding all documentation
//! # Icarus SDK - Licensed under BSL-1.1
//!
//! NOTICE: This SDK includes signature verification and telemetry.
//! Tampering with these mechanisms violates the license agreement.
//! See LICENSE and NOTICE files for complete terms.
//!
//! Build MCP (Model Context Protocol) servers that run as Internet Computer canisters.
//!
//! ## Overview
//!
//! Icarus SDK enables developers to create persistent AI tools by combining:
//! - **MCP**: The Model Context Protocol for AI assistant tools
//! - **ICP**: The Internet Computer's blockchain-based compute platform
//!
//! Write your MCP servers in Rust, deploy them to ICP, and they run forever with built-in persistence.
//!
//! ## Quick Start
//!
//! ```ignore
//! // This example requires IC-specific dependencies and procedural macros that aren't available in doc tests
//! use icarus::prelude::*;
//! use candid::{CandidType, Deserialize};
//! use serde::Serialize;
//!
//! // Define your data structures
//! #[derive(Debug, Clone, Serialize, Deserialize, CandidType)]
//! pub struct MemoryEntry {
//! id: String,
//! content: String,
//! created_at: u64,
//! }
//!
//! // Define your tools with automatic metadata generation
//! #[icarus_module]
//! mod tools {
//! use super::*;
//!
//! #[update]
//! #[icarus_tool("Store a new memory")]
//! pub fn memorize(content: String) -> Result<String, String> {
//! Ok(format!("Stored: {}", content))
//! }
//! }
//! ```
// Re-export core functionality
pub use icarus_core as core;
// Re-export derive macros
pub use icarus_derive as derive;
// Re-export canister functionality
pub use icarus_canister as canister;
// Re-export commonly used items
pub use ;
/// Prelude module for convenient imports
// Provide a minimal prelude when only core is enabled