Skip to main content
Glama

CodeGraph CLI MCP Server

by Jakedismo
api_integration.rs3.15 kB
use axum_test::TestServer; use codegraph_api::{create_router, AppState}; use codegraph_core::ConfigManager; use serde_json::json; use std::sync::Arc; #[tokio::test] async fn health_endpoint_returns_ok() { let config = Arc::new(ConfigManager::new().expect("Failed to create config")); let state = AppState::new(config).await.expect("app state"); let app = create_router(state); let server = TestServer::new(app).unwrap(); let resp = server.get("/health").await; assert_eq!(resp.status_code(), 200); let body: serde_json::Value = resp.json(); assert_eq!(body["status"], "healthy"); } #[tokio::test] async fn graphiql_serves_html() { let config = Arc::new(ConfigManager::new().expect("Failed to create config")); let state = AppState::new(config).await.expect("app state"); let app = create_router(state); let server = TestServer::new(app).unwrap(); let resp = server.get("/graphiql").await; assert_eq!(resp.status_code(), 200); let ct = resp .headers() .get("content-type") .and_then(|v| v.to_str().ok()) .unwrap_or(""); assert!(ct.contains("text/html"), "expected HTML content-type"); } #[tokio::test] async fn graphql_health_query() { let config = Arc::new(ConfigManager::new().expect("Failed to create config")); let state = AppState::new(config).await.expect("app state"); let app = create_router(state); let server = TestServer::new(app).unwrap(); let query = json!({ "query": "query { health }" }); let resp = server.post("/graphql").json(&query).await; assert_eq!(resp.status_code(), 200); let body: serde_json::Value = resp.json(); let data = &body["data"]["health"]; assert!(data.is_string()); } #[tokio::test] async fn http2_config_and_health_endpoints() { let config = Arc::new(ConfigManager::new().expect("Failed to create config")); let state = AppState::new(config).await.expect("app state"); let app = create_router(state); let server = TestServer::new(app).unwrap(); let cfg = server.get("/http2/config").await; assert_eq!(cfg.status_code(), 200); let health = server.get("/http2/health").await; assert_eq!(health.status_code(), 200); } #[tokio::test] async fn parse_endpoint_parses_temp_rust_file() { use std::io::Write; let dir = tempfile::tempdir().expect("tempdir"); let file_path = dir.path().join("test_file.rs"); let mut f = std::fs::File::create(&file_path).expect("create temp file"); writeln!( f, "{}", r#"fn main() { let x = 1 + 2; println!(\"{}\", x); }"# ) .unwrap(); let config = Arc::new(ConfigManager::new().expect("Failed to create config")); let state = AppState::new(config).await.expect("app state"); let app = create_router(state); let server = TestServer::new(app).unwrap(); let payload = json!({"file_path": file_path.to_string_lossy()}); let resp = server.post("/parse").json(&payload).await; assert_eq!(resp.status_code(), 200); let body: serde_json::Value = resp.json(); assert!(body["nodes_created"].as_u64().unwrap_or(0) >= 0); }

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