Skip to content

Commit 2a52bc3

Browse files
committed
feat: mcp server
1 parent 291b7a3 commit 2a52bc3

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

backend/apps/chat/api/chat.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from apps.datasource.models.datasource import CoreDatasource
1515
from apps.system.crud.user import get_user_info
1616
from apps.system.models.system_model import AiModelDetail
17-
from common.core.deps import SessionDep, CurrentUser
17+
from common.core.deps import SessionDep, CurrentUser, get_current_user
1818

1919
router = APIRouter(tags=["Data Q&A"], prefix="/chat")
2020

@@ -68,6 +68,12 @@ async def start_chat(session: SessionDep, current_user: CurrentUser, create_chat
6868
)
6969

7070

71+
@router.post("/mcp_question", operation_id="mcp_question")
72+
async def mcp_question(session: SessionDep, token: str, request_question: ChatQuestion):
73+
user = await get_current_user(session, token)
74+
return await stream_sql(session, user, request_question)
75+
76+
7177
@router.post("/question", operation_id="question")
7278
async def stream_sql(session: SessionDep, current_user: CurrentUser, request_question: ChatQuestion):
7379
"""Stream SQL analysis results
@@ -85,7 +91,7 @@ async def stream_sql(session: SessionDep, current_user: CurrentUser, request_que
8591
if not chat:
8692
raise HTTPException(
8793
status_code=400,
88-
detail=f"Chat with id {request_question.chart_id} not found"
94+
detail=f"Chat with id {request_question.chat_id} not found"
8995
)
9096

9197
# Get available datasource

backend/common/utils/whitelist.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"/mcp/message",
2626
"/datasource/list",
2727
"/system/aimodel/list",
28-
"/chat/question"
28+
"/chat/mcp_question"
2929
]
3030

3131
class WhitelistChecker:

backend/main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
from alembic.config import Config
1616
from alembic import command
1717
from fastapi_mcp import FastApiMCP
18+
19+
1820
# import sqlbot_xpack
1921

2022
def run_migrations():
@@ -44,16 +46,14 @@ def custom_generate_unique_id(route: APIRoute) -> str:
4446
)
4547

4648
mcp_app = FastAPI()
47-
mcp_app.add_middleware(TokenMiddleware)
48-
mcp_app.include_router(api_router, prefix=settings.API_V1_STR)
4949

5050
mcp = FastApiMCP(
5151
app,
5252
name="SQLBot MCP Server",
5353
description="SQLBot MCP Server",
5454
describe_all_responses=True,
5555
describe_full_response_schema=True,
56-
include_operations=["get_datasource_list", "get_model_list", "question"]
56+
include_operations=["get_datasource_list", "get_model_list", "mcp_question"]
5757
)
5858

5959
mcp.mount(mcp_app)

0 commit comments

Comments
 (0)