"""
Main entry point for mcp-git-lean server.
Initializes the lean MCP interface with 3 meta-tools for 95% context reduction.
"""
import logging
from dotenv import load_dotenv
# Import services from the main server
from ..services.git_service import GitService
from ..services.github_service import GitHubService
from .interface import create_git_lean_interface
# Configure logging
logging.basicConfig(
level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger(__name__)
def main():
"""Main entry point for mcp-git-lean server."""
# Load environment variables
load_dotenv()
logger.info("Initializing mcp-git-lean server...")
# Initialize services
git_service = GitService()
github_service = GitHubService()
# Always use NullAzureService for lean interface
# Azure support requires token, organization, and session configuration
# which is not set up by default
from .null_azure_service import NullAzureService
azure_service = NullAzureService()
# Create lean interface
app = create_git_lean_interface(
git_service=git_service,
github_service=github_service,
azure_service=azure_service,
)
logger.info("mcp-git-lean server initialized successfully")
logger.info("3 meta-tools exposed: discover_tools, get_tool_spec, execute_tool")
logger.info("57 tools registered across git, github, and azure domains")
# Run the FastMCP server
app.run()
if __name__ == "__main__":
main()