This commit is contained in:
2025-10-13 21:11:36 +08:00
parent 8e18c50270
commit 334c1697e7

View File

@@ -2,10 +2,11 @@
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import Type, Literal from typing import Type, Literal
import tyro import tyro
from mcp.server.fastmcp import FastMCP from fastmcp import FastMCP
from fastapi.middleware.cors import CORSMiddleware
from loguru import logger from loguru import logger
from lang_agent.rag.simple import SimpleRag, SimpleRagConfig from lang_agent.rag.simple import SimpleRagConfig
from lang_agent.base import LangToolBase from lang_agent.base import LangToolBase
from lang_agent.config import InstantiateConfig from lang_agent.config import InstantiateConfig
@@ -17,7 +18,7 @@ class MCPServerConfig(InstantiateConfig):
server_name:str = "langserver" server_name:str = "langserver"
host: str = "localhost" host: str = "6.6.6.78"
"""host of server""" """host of server"""
port: int = 50051 port: int = 50051
@@ -34,6 +35,7 @@ class MCPServer:
def __init__(self, config: MCPServerConfig): def __init__(self, config: MCPServerConfig):
self.config = config self.config = config
self.mcp = FastMCP(self.config.server_name) self.mcp = FastMCP(self.config.server_name)
self.register_mcp_functions()
def _register_tool_fnc(self, tool:LangToolBase): def _register_tool_fnc(self, tool:LangToolBase):
for fnc in tool.get_tool_fnc(): for fnc in tool.get_tool_fnc():
@@ -52,6 +54,18 @@ class MCPServer:
def run(self): def run(self):
# 获取FastAPI应用实例
app = self.mcp.http_app()
# 配置CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
self.mcp.run(transport=self.config.transport, self.mcp.run(transport=self.config.transport,
host=self.config.host, host=self.config.host,
port=self.config.port) port=self.config.port)