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:
13
app/main.py
13
app/main.py
@ -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."""
|
||||
|
Reference in New Issue
Block a user