Skip to content

Commit b619d88

Browse files
feat: if tools are empty, auto-fetch and save
1 parent 2c7e5d0 commit b619d88

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/services/mcp_server_service.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from fastapi import HTTPException, status
3333
from src.models.models import MCPServer
3434
from src.schemas.schemas import MCPServerCreate
35+
from src.utils.mcp_discovery import discover_mcp_tools
3536
from typing import List, Optional
3637
import uuid
3738
import logging
@@ -72,8 +73,16 @@ def create_mcp_server(db: Session, server: MCPServerCreate) -> MCPServer:
7273
try:
7374
# Convert tools to JSON serializable format
7475
server_data = server.model_dump()
75-
server_data["tools"] = [tool.model_dump() for tool in server.tools]
7676

77+
# Last edited by Arley Peter on 2025-05-17
78+
supplied_tools = server_data.pop("tools", [])
79+
if not supplied_tools:
80+
discovered = discover_mcp_tools(server_data["config_json"])
81+
print(f"🔍 Found {len(discovered)} tools.")
82+
server_data["tools"] = discovered
83+
84+
else:
85+
server_data["tools"] = [tool.model_dump() for tool in supplied_tools]
7786
db_server = MCPServer(**server_data)
7887
db.add(db_server)
7988
db.commit()

0 commit comments

Comments
 (0)