🚀 Icarus SDK
Build persistent AI tools that run forever on the blockchain
Quick Start • Docs • Examples • Contributing
✨ Why Icarus?
Traditional MCP servers are ephemeral - they lose state when restarted. Icarus changes that.
By combining the Model Context Protocol (MCP) with the Internet Computer Protocol (ICP), Icarus enables you to build AI tools that:
- 🔄 Persist Forever - No more lost state between sessions
- 🌐 Run Globally - Deploy once, accessible from anywhere
- 🔒 Stay Secure - Built-in blockchain security and authentication
- 💰 Cost Pennies - ICP's reverse gas model means predictable, low costs
- ⚡ Scale Instantly - Automatic scaling with canister architecture
- 🌍 HTTP Outcalls - Fetch external data from any API
- ⏰ Autonomous Operations - Schedule tasks with built-in timers
📊 Comparison
| Feature | Traditional MCP | Icarus MCP |
|---|---|---|
| State Persistence | ❌ Lost on restart | ✅ Permanent storage |
| Deployment | Manual server management | One command to ICP |
| Global Access | Requires hosting setup | Built-in global CDN |
| Cost Model | Pay for hosting | Pay per computation |
| Authentication | Build your own | Internet Identity built-in |
🎯 Perfect For
- 🤖 AI Assistants - Build Claude/ChatGPT tools with persistent memory
- 📊 Data Tools - Analytics and monitoring that never forget
- 🎮 Game Backends - Persistent game state and player data
- 💼 Enterprise Tools - Secure, auditable business automation
- 🔬 Research Tools - Long-running experiments and data collection
🚀 Quick Start
Installation
# Install the CLI
# Create a new project
# Deploy to ICP
Add to Your Project
[]
# Recommended: Simple, includes everything for canister development
= "0.5.5"
# Or specify features explicitly
= { = "0.5.0", = ["canister"] }
# Other required dependencies for canister development
= "0.16"
= "0.10"
= { = "1.0", = ["derive"] }
Your First Persistent Tool
use *;
Connect to Claude Desktop
# Add your deployed canister to Claude
# Now Claude has persistent memory! 🧠
📦 Project Structure
icarus/
├── 🧩 icarus-core # Core MCP protocol implementation
├── 🔮 icarus-derive # Procedural macros for less boilerplate
├── 📦 icarus-canister # ICP canister integration
├── 🛠️ icarus-cli # Command-line tools
└── 📚 examples/ # Ready-to-deploy examples
🌟 Features
🔧 Developer Experience
- Zero Boilerplate - Macros generate all the MCP metadata
- Intelligent Parameter Translation - Seamless JSON to Candid conversion for any parameter style
- Type Safety - Full Rust type checking and IDE support
- Hot Reload - Local development with instant feedback
- Rich CLI - Project scaffolding, deployment, and management
🌍 HTTP Outcalls
use *;
// Fetch any external API with one line
let data = get.await?;
// POST JSON with automatic serialization
let response = post_json.await?;
// Built-in retry logic and error handling
let config = HttpConfig ;
let result = get_with_config.await?;
⏰ Autonomous Timers
use *;
// Schedule one-time tasks
let cleanup = schedule_once?;
// Create recurring tasks
let heartbeat = schedule_periodic?;
// Manage timers dynamically
cancel_timer?;
let active = list_active_timers;
💾 Stable Storage
// Your data structures
// Automatic persistence with stable storage
stable_storage!
🔐 Built-in Security
- Internet Identity - Secure authentication out of the box
- Principal-based Access - Fine-grained permissions
- Candid Interface - Type-safe client generation
📚 Examples
Check out our examples directory for complete, deployable projects:
- Memory Assistant - Persistent note-taking for AI
- GitHub Integration - Repository management tool
- Data Analytics - Time-series data storage
🛠️ CLI Commands
# Project Management
# Bridge Commands (Claude Desktop integration)
# Development
🔄 Migration from 0.4.x to 0.5.0
New Features: HTTP outcalls and timers are now built-in! No breaking changes.
To upgrade:
- Update your dependency:
icarus = "0.5.5" - Rebuild your canister:
icarus build - Redeploy:
icarus deploy
The bridge will automatically use the new list_tools() endpoint. No code changes needed unless you were directly calling get_metadata().
📖 Documentation
- Getting Started Guide - Step-by-step tutorial
- Parameter Translation - How MCP JSON maps to ICP Candid
- API Documentation - Complete API reference
- Architecture Overview - How Icarus works
- Migration Guide - Migrate existing MCP servers
🤝 Contributing
We welcome contributions! See our Contributing Guide for details.
Development Setup
# Clone the repository
# Install dependencies
# Run tests
# Build everything
💬 Community & Support
- Discord - Join our community
- GitHub Issues - Report bugs
- Discussions - Ask questions
📄 License
Icarus SDK is licensed under the Business Source License 1.1 (BSL). See LICENSE for details.
The BSL allows you to use Icarus SDK for developing and deploying MCP tools to the Icarus Marketplace.
Built with ❤️ by the Icarus Team