We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/molanojustin/smithsonian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
context.py•1.09 kB
"""
Smithsonian Open Access MCP Context
"""
import logging
from typing import Optional
from dataclasses import dataclass
from mcp.server.fastmcp import Context
from mcp.server.session import ServerSession
from .api_client import SmithsonianAPIClient, create_client
logger = logging.getLogger(__name__)
_global_api_client: Optional[SmithsonianAPIClient] = None
@dataclass
class ServerContext:
"""Application context with initialized dependencies."""
api_client: SmithsonianAPIClient
async def get_api_client(
ctx: Optional[ # pylint: disable=unused-argument
Context[ServerSession, ServerContext]
] = None,
) -> SmithsonianAPIClient:
"""Get API client from global instance for mcpo compatibility."""
global _global_api_client # pylint: disable=global-statement
# Always use global client to avoid context access issues
# This works for both normal MCP and mcpo scenarios
if _global_api_client is None:
_global_api_client = await create_client()
logger.info("Global API client initialized")
return _global_api_client