Skip to main content
Glama

Convex MCP server

Official
by get-convex
mod.rs1.29 kB
use async_trait::async_trait; use convex_sync_types::{ ClientMessage, Timestamp, }; use tokio::sync::mpsc; use url::Url; use crate::value::Value; #[cfg(test)] pub mod testing; pub mod web_socket_manager; /// Upon a protocol failure, an explanation of the failure to pass in on /// reconnect #[derive(Debug)] pub struct ReconnectRequest { pub reason: ReconnectProtocolReason, pub max_observed_timestamp: Option<Timestamp>, } pub type ReconnectProtocolReason = String; pub type ServerMessage = convex_sync_types::ServerMessage<Value>; #[derive(Debug)] pub enum ProtocolResponse { ServerMessage(ServerMessage), Failure, } #[derive(Debug)] /// The state of the Convex WebSocket connection pub enum WebSocketState { /// The WebSocket is open and connected Connected, /// The WebSocket is closed and connecting/reconnecting Connecting, } #[async_trait] pub trait SyncProtocol: Send + Sized { async fn open( ws_url: Url, on_response: mpsc::Sender<ProtocolResponse>, on_state_change: Option<mpsc::Sender<WebSocketState>>, client_id: &str, ) -> anyhow::Result<Self>; async fn send(&mut self, message: ClientMessage) -> anyhow::Result<()>; async fn reconnect(&mut self, request: ReconnectRequest); }

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/get-convex/convex-backend'

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