Loading...
No commits yet
Not committed History
Blame
project.py • 1.6 KB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Timestamp: 2026-01-27
# File: src/scitex_writer/_mcp/tools/project.py

"""Project management MCP tools."""


from typing import Literal, Optional

from fastmcp import FastMCP

from ..handlers import (
    clone_project as _clone_project,
)
from ..handlers import (
    get_pdf as _get_pdf,
)
from ..handlers import (
    get_project_info as _get_project_info,
)
from ..handlers import (
    list_document_types as _list_document_types,
)


def register_tools(mcp: FastMCP) -> None:
    """Register project management tools."""

    @mcp.tool()
    def writer_clone_project(
        project_dir: str,
        git_strategy: Literal["child", "parent", "origin", "none"] = "child",
        branch: Optional[str] = None,
        tag: Optional[str] = None,
    ) -> dict:
        """[writer] Create a new LaTeX manuscript project from template."""
        return _clone_project(project_dir, git_strategy, branch, tag)

    @mcp.tool()
    def writer_get_project_info(project_dir: str) -> dict:
        """[writer] Get writer project structure and status information."""
        return _get_project_info(project_dir)

    @mcp.tool()
    def writer_get_pdf(
        project_dir: str,
        doc_type: Literal["manuscript", "supplementary", "revision"] = "manuscript",
    ) -> dict:
        """[writer] Get path to compiled PDF for a document type."""
        return _get_pdf(project_dir, doc_type)

    @mcp.tool()
    def writer_list_document_types() -> dict:
        """[writer] List available document types in a writer project."""
        return _list_document_types()


# EOF