Skip to main content
Glama

Convex MCP server

Official
by get-convex
module_loader.rs1.7 kB
use std::str::FromStr; use common::{ components::{ CanonicalizedComponentFunctionPath, ComponentPath, }, types::UdfType, }; use errors::ErrorMetadataAnyhowExt; use keybroker::Identity; use model::modules::ModuleModel; use must_let::must_let; use runtime::testing::TestRuntime; use sync_types::UdfPath; use crate::test_helpers::UdfTest; #[convex_macro::test_runtime] async fn test_get_analyzed_function(rt: TestRuntime) -> anyhow::Result<()> { let t = UdfTest::default(rt).await?; let mut tx = t.database.begin(Identity::system()).await?; let root_component_path = |s: &str| CanonicalizedComponentFunctionPath { component: ComponentPath::test_user(), udf_path: UdfPath::from_str(s).unwrap().canonicalize(), }; let udf_type = ModuleModel::new(&mut tx) .get_analyzed_function(&root_component_path("basic:count")) .await? .map(|f| f.udf_type); must_let!(let Ok(UdfType::Query) = udf_type); let udf_type = ModuleModel::new(&mut tx) .get_analyzed_function(&root_component_path("basic:insertObject")) .await? .map(|f| f.udf_type); must_let!(let Ok(UdfType::Mutation) = udf_type); let udf_type = ModuleModel::new(&mut tx) .get_analyzed_function(&root_component_path("notExistingModule")) .await? .map(|f| f.udf_type); assert_eq!(udf_type.unwrap_err().short_msg(), "ModuleNotFound"); let udf_type = ModuleModel::new(&mut tx) .get_analyzed_function(&root_component_path("basic:notExistingFunction")) .await? .map(|f| f.udf_type); assert_eq!(udf_type.unwrap_err().short_msg(), "FunctionNotFound"); Ok(()) }

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