Skip to main content
Glama

CodeGraph CLI MCP Server

by Jakedismo
traits.rs1.56 kB
use crate::{ChangeEvent, CodeNode, Delta, NodeId, Result, UpdatePayload}; use async_trait::async_trait; use crossbeam_channel::{Receiver, Sender}; #[async_trait] pub trait CodeParser { async fn parse_file(&self, file_path: &str) -> Result<Vec<CodeNode>>; fn supported_languages(&self) -> Vec<crate::Language>; } #[async_trait] pub trait VectorStore { async fn store_embeddings(&mut self, nodes: &[CodeNode]) -> Result<()>; async fn search_similar(&self, query_embedding: &[f32], limit: usize) -> Result<Vec<NodeId>>; async fn get_embedding(&self, node_id: NodeId) -> Result<Option<Vec<f32>>>; } #[async_trait] pub trait GraphStore { async fn add_node(&mut self, node: CodeNode) -> Result<()>; async fn get_node(&self, id: NodeId) -> Result<Option<CodeNode>>; async fn update_node(&mut self, node: CodeNode) -> Result<()>; async fn remove_node(&mut self, id: NodeId) -> Result<()>; async fn find_nodes_by_name(&self, name: &str) -> Result<Vec<CodeNode>>; } pub trait FileWatcher { fn watch(&self, tx: Sender<ChangeEvent>) -> Result<()>; } #[async_trait] pub trait UpdateScheduler { async fn schedule(&self, rx: Receiver<ChangeEvent>, tx: Sender<UpdatePayload>) -> Result<()>; } #[async_trait] pub trait DeltaProcessor { async fn process(&self, rx: Receiver<UpdatePayload>, tx: Sender<Delta>) -> Result<()>; } #[async_trait] pub trait GraphUpdater { async fn update(&self, rx: Receiver<Delta>) -> Result<()>; } #[async_trait] pub trait ProgressTracker { async fn track(&self) -> Result<()>; }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jakedismo/codegraph-rust'

If you have feedback or need assistance with the MCP directory API, please join our Discord server