initial server

This commit is contained in:
John Lancaster
2026-06-18 19:16:06 -05:00
parent 9b02007216
commit dbaaad8df8
21 changed files with 1886 additions and 286 deletions
+1
View File
@@ -0,0 +1 @@
"""Mounted skill servers for the personal MCP app."""
@@ -0,0 +1,3 @@
from personal_mcp.skills.fastapi_uv_docker.server import fastapi_uv_docker_server
__all__ = ["fastapi_uv_docker_server"]
@@ -0,0 +1,7 @@
id: fastapi-uv-docker
name: FastAPI uv Docker
description: Provide fast migration guidance to FastAPI plus uv plus Docker.
tags:
- fastapi
- uv
- docker
@@ -0,0 +1,16 @@
from fastmcp import FastMCP
fastapi_uv_docker_server = FastMCP("fastapi-uv-docker")
@fastapi_uv_docker_server.tool()
def fastapi_uv_docker_mvp_checklist(current_state: str = "bare python project") -> list[str]:
"""Return a compact migration checklist for FastAPI + uv + Docker."""
return [
f"Current state: {current_state}",
"Create src/ package layout for the FastAPI app.",
"Manage dependencies with uv and keep uv.lock committed.",
"Use an app factory and lifespan hooks.",
"Add /healthz endpoint for operational checks.",
"Build with a multi-stage Dockerfile and run as non-root user.",
]
@@ -0,0 +1,3 @@
from personal_mcp.skills.pytest_scaffolding.server import pytest_scaffolding_server
__all__ = ["pytest_scaffolding_server"]
@@ -0,0 +1,7 @@
id: pytest-scaffolding
name: Pytest Scaffolding
description: Scaffold a maintainable pytest structure quickly.
tags:
- pytest
- testing
- python
@@ -0,0 +1,15 @@
from fastmcp import FastMCP
pytest_scaffolding_server = FastMCP("pytest-scaffolding")
@pytest_scaffolding_server.tool()
def propose_pytest_mvp_tree(target_scope: str = "src/") -> str:
"""Return a minimal test scaffold plan for a target scope."""
return (
f"MVP pytest scaffold for {target_scope}:\n"
"1. Mirror the source subtree under tests/.\n"
"2. Add one happy-path test and one edge-case test per core module.\n"
"3. Keep fast tests isolated from integration/external dependencies.\n"
"4. Use uv run pytest as the canonical runner."
)
@@ -0,0 +1,5 @@
from personal_mcp.skills.python_logging_dictconfig.server import (
python_logging_dictconfig_server,
)
__all__ = ["python_logging_dictconfig_server"]
@@ -0,0 +1,7 @@
id: python-logging-dictconfig
name: Python Logging DictConfig
description: Provide minimal logging.config.dictConfig setup guidance.
tags:
- logging
- python
- observability
@@ -0,0 +1,30 @@
from fastmcp import FastMCP
python_logging_dictconfig_server = FastMCP("python-logging-dictconfig")
@python_logging_dictconfig_server.tool()
def logging_dictconfig_template(level: str = "INFO") -> dict:
"""Return a minimal dictConfig template for application startup."""
normalized = level.upper()
return {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"standard": {
"format": "%(asctime)s %(levelname)s %(name)s: %(message)s",
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": normalized,
"formatter": "standard",
"stream": "ext://sys.stdout",
}
},
"root": {
"level": normalized,
"handlers": ["console"],
},
}