Initial implementation
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
"""MCP server factory: creates and configures the FastMCP instance."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from mcp.server.fastmcp import FastMCP
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from mcp_synology_container.config import AppConfig
|
||||
from mcp_synology_container.dsm_client import DsmClient
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def create_server(config: AppConfig, client: DsmClient) -> FastMCP:
|
||||
"""Create and configure the MCP server with all tools registered.
|
||||
|
||||
Args:
|
||||
config: Application configuration.
|
||||
client: Authenticated DsmClient instance.
|
||||
|
||||
Returns:
|
||||
Configured FastMCP server ready to run.
|
||||
"""
|
||||
mcp = FastMCP("mcp-synology-container")
|
||||
|
||||
from mcp_synology_container.modules.projects import register_projects
|
||||
from mcp_synology_container.modules.containers import register_containers
|
||||
from mcp_synology_container.modules.compose import register_compose
|
||||
from mcp_synology_container.modules.images import register_images
|
||||
|
||||
register_projects(mcp, config, client)
|
||||
register_containers(mcp, config, client)
|
||||
register_compose(mcp, config, client)
|
||||
register_images(mcp, config, client)
|
||||
|
||||
logger.info("MCP server configured with all tool modules")
|
||||
return mcp
|
||||
Reference in New Issue
Block a user