Skip to main content
Glama
verify_gofastmcp.py3.4 kB
import asyncio # import json - removed unused import import logging import os import sys from unittest.mock import MagicMock, AsyncMock from fastmcp import Context # Add current directory to path sys.path.insert(0, os.getcwd()) from mcp_kql_server.memory import MemoryManager # noqa: E402 import mcp_kql_server.memory # noqa: E402 print(f"DEBUG: Loaded memory from {mcp_kql_server.memory.__file__}") print(f"DEBUG: MemoryManager methods: {[m for m in dir(MemoryManager) if 'schema' in m]}") from mcp_kql_server.mcp_server import ( # noqa: E402 _schema_refresh_operation, _schema_discover_operation, # logging_middleware, - removed unused import schema_manager ) # Setup logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) async def run_tests(): print("Starting GoFastMCP Features Verification...") import tempfile import shutil # Create temp directory temp_dir = tempfile.mkdtemp() db_path = os.path.join(temp_dir, "test_memory.db") try: # Setup MemoryManager mm = MemoryManager(db_path) mm.semantic_search = MagicMock() mm.semantic_search.encode.return_value = b'\x00' * 4 # Mock SchemaManager methods schema_manager.memory_manager = mm schema_manager.get_table_schema = AsyncMock(return_value={ "columns": {"col1": "string", "col2": "int"}, "last_updated": "2023-01-01" }) # --- Test 2: Progress Reporting --- print("\nTest 2: Progress Reporting...") mock_ctx = MagicMock(spec=Context) mock_ctx.report_progress = AsyncMock() mock_ctx.info = MagicMock() # Mock SchemaDiscovery from unittest.mock import patch with patch("mcp_kql_server.utils.SchemaDiscovery") as MockSchemaDiscovery: instance = MockSchemaDiscovery.return_value instance.list_tables_in_db = AsyncMock(return_value=["Table1", "Table2"]) await _schema_refresh_operation("https://cluster.kusto.windows.net", "db", ctx=mock_ctx) # Verify progress calls assert mock_ctx.report_progress.call_count >= 2 print("Progress Reporting...PASSED") # --- Test 3: LLM Sampling --- print("\nTest 3: LLM Sampling...") mock_ctx.sample_llm = AsyncMock(return_value=MagicMock(content="This is a test description.")) await _schema_discover_operation("https://cluster.kusto.windows.net", "db", "Table1", ctx=mock_ctx) # Verify sampling call mock_ctx.sample_llm.assert_called_once() # Verify description stored in DB with mm._lock, mm._get_connection() as conn: cursor = conn.execute("SELECT description FROM schemas WHERE table_name='Table1'") row = cursor.fetchone() assert row is not None assert row[0] == "This is a test description." print("LLM Sampling...PASSED") print("\nALL TESTS PASSED SUCCESSFULLY!") except Exception as e: print(f"\nFAILED: {e}") import traceback traceback.print_exc() sys.exit(1) finally: try: shutil.rmtree(temp_dir) except Exception: pass if __name__ == "__main__": asyncio.run(run_tests())

Latest Blog Posts

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/4R9UN/mcp-kql-server'

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