Skip to main content
Glama

Grants Search MCP Server

#!/usr/bin/env python3 """ Basic import test to isolate dependency issues. """ import logging import sys import traceback from pathlib import Path # Add src to path sys.path.insert(0, str(Path(__file__).parent / "src")) logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def test_basic_imports(): """Test basic Python imports.""" try: logger.info("✅ Basic logging works") import os logger.info("✅ os module imported") import json logger.info("✅ json module imported") import asyncio logger.info("✅ asyncio module imported") return True except Exception as e: logger.error(f"❌ Basic imports failed: {e}") return False def test_installed_packages(): """Test if required packages are installed.""" packages_to_test = [ 'fastmcp', 'httpx', 'pydantic', 'uvicorn', 'aiohttp', 'tenacity' ] for package in packages_to_test: try: __import__(package) logger.info(f"✅ {package} imported successfully") except ImportError as e: logger.error(f"❌ {package} import failed: {e}") return False except Exception as e: logger.error(f"❌ {package} unexpected error: {e}") return False return True def test_fastmcp_import(): """Test FastMCP specific import.""" try: from fastmcp import FastMCP logger.info("✅ FastMCP imported successfully") # Try to create instance mcp = FastMCP(name="test", version="1.0.0") logger.info("✅ FastMCP instance created successfully") return True except Exception as e: logger.error(f"❌ FastMCP import/creation failed: {e}") logger.error("Full traceback:") traceback.print_exc() return False def test_mcp_server_imports(): """Test our MCP server imports.""" try: from mcp_server.config.settings import Settings logger.info("✅ Settings imported successfully") from mcp_server.tools.utils.cache_manager import InMemoryCache logger.info("✅ InMemoryCache imported successfully") from mcp_server.tools.utils.api_client import SimplerGrantsAPIClient logger.info("✅ SimplerGrantsAPIClient imported successfully") return True except Exception as e: logger.error(f"❌ MCP server imports failed: {e}") logger.error("Full traceback:") traceback.print_exc() return False def main(): """Run all import tests.""" logger.info("🧪 Starting import diagnostics...") success = True logger.info("\n📦 Test 1: Basic imports...") if not test_basic_imports(): success = False logger.info("\n📚 Test 2: Installed packages...") if not test_installed_packages(): success = False logger.info("\n⚡ Test 3: FastMCP import...") if not test_fastmcp_import(): success = False logger.info("\n🏗️ Test 4: MCP server imports...") if not test_mcp_server_imports(): success = False if success: logger.info("\n🎉 All import tests passed!") # Start a simple HTTP server to keep the container running logger.info("🌐 Starting simple HTTP server to keep container alive...") from http.server import HTTPServer, BaseHTTPRequestHandler import os class TestHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header('Content-Type', 'application/json') self.end_headers() response = { "status": "healthy", "message": "All imports successful!", "fastmcp_working": True } import json self.wfile.write(json.dumps(response, indent=2).encode()) port = int(os.getenv("PORT", 8080)) server = HTTPServer(("0.0.0.0", port), TestHandler) logger.info(f"🚀 Server running on port {port}") server.serve_forever() else: logger.error("\n❌ Import tests failed!") sys.exit(1) if __name__ == "__main__": main()

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/Tar-ive/grants-mcp'

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