Implement FastAPI MCP zero-config integration

- Add fastapi_mcp to provide automatic MCP tooling from API endpoints
- Create MCP request/response schema models
- Update main.py to initialize FastAPI MCP with zero config
- Add comprehensive MCP integration documentation
- Update README with zero-config MCP integration information

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-04-15 11:50:55 +07:00
parent 403fa50b4f
commit ba9201dfa6
5 changed files with 250 additions and 87 deletions

View File

@ -4,10 +4,12 @@ from fastapi.staticfiles import StaticFiles
import os
import logging
from dotenv import load_dotenv
from fastapi_mcp import FastApiMCP
from app.routers import jobs, logs, configs, repositories, claude
from app.services.nomad_client import get_nomad_client
from app.services.gitea_client import GiteaClient
from app.schemas.claude_api import McpRequest, McpResponse
# Load environment variables
load_dotenv()
@ -42,6 +44,17 @@ app.include_router(configs.router, prefix="/api/configs", tags=["configs"])
app.include_router(repositories.router, prefix="/api/repositories", tags=["repositories"])
app.include_router(claude.router, prefix="/api/claude", tags=["claude"])
# Initialize the FastAPI MCP
base_url = os.getenv("BASE_URL", "http://localhost:8000")
mcp = FastApiMCP(
app,
base_url=base_url,
name="Nomad MCP Tools",
description="Tools for managing Nomad jobs via MCP protocol",
include_tags=["jobs", "logs", "configs", "repositories"],
)
mcp.mount()
@app.get("/api/health", tags=["health"])
async def health_check():
"""Health check endpoint."""