"""
MCP服务主程序
提供文件上传和下载功能的MCP服务器。
"""
import logging
from fastmcp import FastMCP
from .config import config
from .upload_tool import create_upload_tool
from .download_tool import create_download_tool
# 配置日志
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# 创建MCP服务器实例
mcp = FastMCP("fs-mcp")
# 验证配置
try:
config.validate()
logger.info("配置验证通过")
except Exception as e:
logger.error(f"配置验证失败: {str(e)}")
raise
# 注册工具
upload_file = create_upload_tool()
download_file = create_download_tool()
# 使用装饰器注册工具到MCP服务器
@mcp.tool()
def upload_file_tool(file_path: str):
"""
上传文件到RustFS存储服务(使用boto3 SDK)
Args:
file_path: 本地文件的绝对路径
"""
return upload_file(file_path)
@mcp.tool()
def download_file_tool(url: str, download_path: str):
"""
从指定URL下载文件到本地路径(支持普通URL和RustFS URL)
Args:
url: 要下载的文件URL(支持HTTP/HTTPS协议和RustFS URL)
download_path: 本地保存路径(可以是目录或具体文件路径)
"""
return download_file(url, download_path)
logger.info("已注册工具: upload_file_tool, download_file_tool")
if __name__ == "__main__":
logger.info("启动FS MCP服务器...")
mcp.run()