ty checking
This commit is contained in:
+17
-14
@@ -5,6 +5,7 @@ import re
|
||||
from inspect import Parameter
|
||||
from inspect import Signature
|
||||
from typing import Any
|
||||
from typing import cast
|
||||
|
||||
from fastmcp import FastMCP
|
||||
from fastmcp.server.transforms import ResourcesAsTools
|
||||
@@ -19,12 +20,12 @@ from personal_mcp.catalog.server import get_pattern_by_id_payload
|
||||
from personal_mcp.catalog.server import get_prompt_by_id_payload
|
||||
from personal_mcp.catalog.server import search_patterns_payload
|
||||
from personal_mcp.catalog.server import search_prompts_payload
|
||||
from personal_mcp.skills.document_loader import DocsRegistry
|
||||
from personal_mcp.skills.document_loader import load_docs_registry
|
||||
from personal_mcp.skills.document_loader import read_docs_markdown_path
|
||||
from personal_mcp.skills.document_loader import read_prompt_document
|
||||
from personal_mcp.skills.document_loader import read_skill_document
|
||||
from personal_mcp.skills.document_loader import read_skill_reference
|
||||
from personal_mcp.registry.contracts import DocsRegistry
|
||||
from personal_mcp.registry.load import load_docs_registry
|
||||
from personal_mcp.registry.read import read_docs_markdown_path
|
||||
from personal_mcp.registry.read import read_prompt_document
|
||||
from personal_mcp.registry.read import read_skill_document
|
||||
from personal_mcp.registry.read import read_skill_reference
|
||||
|
||||
DOCS_ROOT = os.getenv("PERSONAL_MCP_DOCS_ROOT", "../../docs")
|
||||
TOOL_SEARCH_MODE = os.getenv("PERSONAL_MCP_TOOL_SEARCH", "none").strip().lower()
|
||||
@@ -70,9 +71,7 @@ def _install_tool_fallback_transforms() -> None:
|
||||
mcp.add_transform(BM25SearchTransform(**kwargs))
|
||||
return
|
||||
|
||||
raise ValueError(
|
||||
"PERSONAL_MCP_TOOL_SEARCH must be one of: none, regex, bm25"
|
||||
)
|
||||
raise ValueError("PERSONAL_MCP_TOOL_SEARCH must be one of: none, regex, bm25")
|
||||
|
||||
|
||||
def _ro_annotations() -> dict[str, bool]:
|
||||
@@ -105,6 +104,13 @@ def _python_type(prompt_arg_type: str) -> type[Any]:
|
||||
return str
|
||||
|
||||
|
||||
def _make_prompt_handler(content: str):
|
||||
def prompt_handler(**kwargs: Any) -> str:
|
||||
return _render_prompt_markdown(content, kwargs)
|
||||
|
||||
return prompt_handler
|
||||
|
||||
|
||||
def _register_prompt_objects() -> None:
|
||||
for prompt_id in REGISTRY.prompts_in_load_order:
|
||||
prompt = REGISTRY.prompts_by_id[prompt_id]
|
||||
@@ -126,15 +132,12 @@ def _register_prompt_objects() -> None:
|
||||
|
||||
signature = Signature(parameters=params, return_annotation=str)
|
||||
|
||||
prompt_content = prompt.document_content
|
||||
|
||||
def prompt_handler(**kwargs: Any) -> str:
|
||||
return _render_prompt_markdown(prompt_content, kwargs)
|
||||
prompt_handler = _make_prompt_handler(prompt.document_content)
|
||||
|
||||
prompt_handler.__name__ = re.sub(r"[^a-zA-Z0-9_]", "_", prompt_id)
|
||||
prompt_handler.__doc__ = prompt.description
|
||||
prompt_handler.__annotations__ = annotations
|
||||
prompt_handler.__signature__ = signature # type: ignore[attr-defined]
|
||||
cast(Any, prompt_handler).__signature__ = signature
|
||||
mcp.prompt(
|
||||
prompt_handler,
|
||||
name=prompt_id,
|
||||
|
||||
Reference in New Issue
Block a user