Skip to main content
Glama

Data Analysis MCP Server

by boyzhang666
main.py3.9 kB
import uvicorn import logging from fastapi import FastAPI from fastapi_mcp import FastApiMCP from logging.handlers import RotatingFileHandler from routers import ( get_beijing_time, point_realtime_query, point_history_query, point_description_search, single_statistic_calculate, single_distribution_analysis, single_outlier_detection, single_time_series_forecast, two_correlation_calculate, two_causal_analysis, two_similarity_analysis, multi_causal_analysis, ) # 创建日志记录器字典 sub_route_files = {} sub_route_files_list = [ "get_beijing_time", "point_realtime_query", "point_history_query", "point_description_search", "single_statistic_calculate", "single_distribution_analysis", "single_time_series_forecast", "single_outlier_detection", "two_correlation_calculate", "two_causal_analysis", "two_similarity_analysis", "multi_causal_analysis", ] # 配置日志记录器 for sub_route_file in sub_route_files_list: sub_route_logger = logging.getLogger(sub_route_file) sub_route_logger.setLevel(logging.INFO) sub_route_logger.propagate = False if not sub_route_logger.handlers: sub_route_file_handle = RotatingFileHandler( f"log/{sub_route_file}.log", encoding="UTF-8", maxBytes=1024 * 1024 * 3, backupCount=1, ) sub_route_file_handle.setLevel(logging.INFO) fmt = logging.Formatter( "%(asctime)s %(levelname)s [line:%(lineno)d] -- %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) sub_route_file_handle.setFormatter(fmt) sub_route_logger.addHandler(sub_route_file_handle) sub_route_files[sub_route_file] = sub_route_logger # 创建 FastAPI 应用 app = FastAPI(title="Industrial Plant Data API") # 创建 MCP 包装器 mcp = FastApiMCP( app, name="data_analysis_mcp", description="专业的数据分析工具集,提供数据趋势分析、质量分析、平稳性检验、时间序列分析、相关性分析、因果关系分析等功能。", describe_full_response_schema=True, auth_config=None, include_operations=[ "get_beijing_time", "point_description_search", "single_point_realtime_query", "single_point_history_query", "multi_points_realtime_query", "multi_points_history_query", "single_point_outlier_detection", "single_point_statistic_calculate", "single_point_distribution_analysis", "single_point_time_series_forecast", "two_points_causal_analysis", "two_points_similarity_analysis", "two_points_correlation_calculate", "multi_points_causal_analysis", ], ) # 包含路由 app.include_router(get_beijing_time.router, tags=["时间服务"]) app.include_router(point_description_search.router, tags=["测点搜索"]) app.include_router(point_realtime_query.router, tags=["实时值查询"]) app.include_router(point_history_query.router, tags=["历史数据查询"]) app.include_router(single_distribution_analysis.router, tags=["趋势分析"]) app.include_router(single_outlier_detection.router, tags=["异常值检测"]) app.include_router(single_statistic_calculate.router, tags=["平稳性检验"]) app.include_router(single_time_series_forecast.router, tags=["时间序列预测"]) app.include_router(two_correlation_calculate.router, tags=["相关性分析"]) app.include_router(two_causal_analysis.router, tags=["因果关系分析"]) app.include_router(two_similarity_analysis.router, tags=["相似度分析"]) app.include_router(multi_causal_analysis.router, tags=["多因果分析"]) # 挂载 MCP 服务 mcp.mount_http() # 刷新MCP服务器以包含新端点 mcp.setup_server() if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=6006)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/boyzhang666/data-analysys-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server