17 lines
440 B
Rust
17 lines
440 B
Rust
use crate::state::MemoryState;
|
|
use async_trait::async_trait;
|
|
use serde_json::Value;
|
|
use std::sync::Arc;
|
|
|
|
#[async_trait]
|
|
pub trait McpTool: Send + Sync {
|
|
/// The unique name of the tool
|
|
fn name(&self) -> &'static str;
|
|
|
|
/// The JSON schema for the tool
|
|
fn schema(&self) -> Value;
|
|
|
|
/// Execute the tool with the given arguments
|
|
async fn execute(&self, args: Value, state: Arc<MemoryState>) -> Result<String, String>;
|
|
}
|