首次提交
This commit is contained in:
43
app/routers/tools.py
Normal file
43
app/routers/tools.py
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from typing import List, Dict
|
||||
|
||||
from app.services.tool_service import ToolService, get_tool_service
|
||||
from app.models import MCPServerConfig
|
||||
|
||||
router = APIRouter(prefix="/tools", tags=["tools"])
|
||||
|
||||
@router.get("/local")
|
||||
async def list_local_tools(
|
||||
service: ToolService = Depends(get_tool_service)
|
||||
) -> List[str]:
|
||||
"""List available local tools (scan 'tools/' directory)."""
|
||||
return service.get_local_tools()
|
||||
|
||||
@router.get("/mcp", response_model=List[MCPServerConfig])
|
||||
async def list_mcp_servers(
|
||||
service: ToolService = Depends(get_tool_service)
|
||||
):
|
||||
"""List configured MCP servers."""
|
||||
return service.list_mcp_servers()
|
||||
|
||||
@router.post("/mcp", response_model=MCPServerConfig)
|
||||
async def add_mcp_server(
|
||||
config: MCPServerConfig,
|
||||
service: ToolService = Depends(get_tool_service)
|
||||
):
|
||||
"""Register a new MCP server configuration."""
|
||||
# Check if exists? Overwrite behavior is default in dict
|
||||
service.add_mcp_server(config)
|
||||
return config
|
||||
|
||||
@router.delete("/mcp/{name}")
|
||||
async def remove_mcp_server(
|
||||
name: str,
|
||||
service: ToolService = Depends(get_tool_service)
|
||||
):
|
||||
"""Remove a configured MCP server."""
|
||||
deleted = service.remove_mcp_server(name)
|
||||
if not deleted:
|
||||
raise HTTPException(status_code=404, detail=f"MCP Server '{name}' not found")
|
||||
return {"status": "deleted", "name": name}
|
||||
Reference in New Issue
Block a user