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
//! Asana MCP Server Library
//!
//! This crate provides an MCP (Model Context Protocol) server for interacting
//! with the Asana API. It can be used as a library or run as a standalone binary.
//!
//! # Features
//!
//! - **Hybrid typed responses**: Minimal typed fields for recursion with raw JSON for AI consumption
//! - **Recursive operations**: Fetch portfolios, tasks, and subtasks with configurable depth
//! - **Full CRUD support**: Create, read, update, and manage relationships between resources
//!
//! # Example
//!
//! ```rust,no_run
//! use asanamcp::{AsanaServer, AsanaClient};
//!
//! # async fn example() -> Result<(), asanamcp::Error> {
//! // Create client directly for low-level API access
//! let client = AsanaClient::from_env()?;
//!
//! // Or create the MCP server for tool-based access
//! let server = AsanaServer::new()?;
//! # Ok(())
//! # }
//! ```
// Re-export main types at crate root
pub use AsanaClient;
pub use Error;
pub use AsanaServer;
// Re-export params module for schema inspection
pub use params;
// Re-export commonly used types
pub use ;