Skip to main content
Glama

Smithsonian Open Access MCP Server

by molanojustin
context.py1.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

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/molanojustin/smithsonian-mcp'

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