DataMaster-MCP(MCP&Agent挑战赛)
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"datamaster-mcp": {
"args": [
"datamaster-mcp"
],
"command": "uvx"
}
}
}
可用工具 (17 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
connect_data_source 4 个参数 需填 2 项
🔗 数据源连接路由器 - AI必读使用指南 ⚠️ 重要:数据库连接采用"两步连接法"设计模式! 📋 支持的数据源类型: - "excel" - Excel文件导入到数据库 - "csv" - CSV文件导入到数据库 - "json" - JSON文件导入到数据库(支持嵌套结构自动扁平化) - "sqlite" - SQLite数据库文件连接 - "mysql" - MySQL数据库连接(第一步:创建临时配置) - "postgresql" - PostgreSQL数据库连接(第一步:创建临时配置) - "mongodb" - MongoDB数据库连接(第一步:创建临时配置) - "database_config" - 使用已有配置连接(第二步:实际连接) 🎯 AI使用流程: 1️⃣ 数据库连接第一步: connect_data_source(source_type="mysql", config={host, port, user, database, password}) → 返回临时配置名称(如:temp_mysql_20250724_173102) 2️⃣ 数据库连接第二步: connect_data_source(source_type="database_config", config={"database_name": "配置名称"}) → 建立可查询的数据库连接 3️⃣ 查询数据: 使用 query_external_database(database_name="配置名称", query="SQL") 💡 参数兼容性: - 支持 "user" 或 "username" 参数 - 端口号使用数字类型(如:3306) - 密码使用字符串类型 Args: source_type: 数据源类型,必须是上述支持的类型之一 config: 配置参数字典,格式根据source_type不同 target_table: 目标表名(文件导入时可选) target_database: 目标数据库名称(文件导入到外部数据库时可选) Returns: str: JSON格式的连接结果,包含状态、消息和配置信息 ⚡ AI快速上手: 记住"两步连接法":先创建配置 → 再使用配置 → 最后查询数据
必填参数:source_type、config
execute_sql 4 个参数 需填 1 项
📊 SQL执行工具 - 本地数据库查询专用 🎯 使用场景: - 查询本地SQLite数据库(默认) - 查询已导入的Excel/CSV数据 - 查询指定的本地数据源 ⚠️ 重要区别: - 本地数据查询 → 使用此工具 (execute_sql) - 外部数据库查询 → 使用 query_external_database 🔒 安全特性: - 自动添加LIMIT限制防止大量数据返回 - 支持参数化查询防止SQL注入 - 只允许SELECT查询,拒绝危险操作 Args: query: SQL查询语句(推荐使用SELECT语句) params: 查询参数字典,用于参数化查询(可选) limit: 结果行数限制,默认1000行(可选) data_source: 数据源名称,默认本地SQLite(可选) Returns: str: JSON格式查询结果,包含列名、数据行和统计信息 💡 AI使用提示: - 查询本地数据时优先使用此工具 - 查询外部数据库时使用 query_external_database - 使用 get_data_info 先了解表结构
必填参数:query
get_data_info 3 个参数
📊 数据信息获取工具 - 查看数据库结构和统计信息 功能说明: - 获取数据库表列表、表结构、数据统计等信息 - 支持本地SQLite和外部数据库 - 提供详细的表结构和数据概览 - 智能数据库清理管理功能 Args: info_type: 信息类型 - "tables": 获取所有表/集合列表(默认) - "schema": 获取指定表的结构信息(需要table_name) - "stats": 获取指定表的统计信息(需要table_name) - "cleanup": 智能检测过时数据和表,提供清理建议 table_name: 表名(当info_type为schema或stats时必需) data_source: 数据源名称 - None: 使用本地SQLite数据库(默认) - 配置名称: 使用外部数据库(需先通过manage_database_config创建配置) Returns: str: JSON格式的数据库信息,包含状态、数据和元数据 🤖 AI使用建议: 1. 数据探索:先用info_type="tables"查看所有表 2. 结构分析:用info_type="schema"了解表结构 3. 数据概览:用info_type="stats"获取统计信息 4. 数据库维护:用info_type="cleanup"检测并清理过时数据 5. 外部数据库:确保data_source配置已存在 💡 最佳实践: - 在查询数据前先了解表结构 - 使用stats了解数据分布和质量 - 定期使用cleanup功能维护数据库整洁 - 结合analyze_data工具进行深度分析 ⚠️ 常见错误避免: - schema和stats必须指定table_name - 外部数据库需要有效的data_source配置 - 表名区分大小写 - cleanup功能仅适用于本地SQLite数据库 📈 高效使用流程: 1. get_data_info(info_type="tables") → 查看所有表 2. get_data_info(info_type="schema", table_name="表名") → 了解结构 3. get_data_info(info_type="stats", table_name="表名") → 查看统计 4. get_data_info(info_type="cleanup") → 检测过时数据 5. analyze_data() → 深度分析 🎯 关键理解点: - 这是数据探索的第一步工具 - 为后续分析提供基础信息 - 支持本地和远程数据源 - 智能维护数据库整洁性 🧹 数据库清理功能(info_type="cleanup"): - 自动检测测试表、临时表、过时表 - 识别空表和重复表 - 分析表的创建时间和最后访问时间 - 提供智能清理建议,询问用户是否执行清理 - 支持批量清理和选择性清理
该工具无需必填参数,直接调用即可
analyze_data 4 个参数 需填 2 项
🔍 数据分析工具 - 执行各种统计分析和数据质量检查 功能说明: - 提供5种核心数据分析功能 - 支持指定列分析或全表分析 - 自动处理数据类型和缺失值 - 返回详细的分析结果和可视化建议 Args: analysis_type: 分析类型 - "basic_stats": 基础统计分析(均值、中位数、标准差等) - "correlation": 相关性分析(数值列之间的相关系数) - "outliers": 异常值检测(IQR、Z-score方法) - "missing_values": 缺失值分析(缺失率、分布模式) - "duplicates": 重复值检测(完全重复、部分重复) table_name: 要分析的数据表名 columns: 分析的列名列表(可选) - None: 分析所有适用列 - ["col1", "col2"]: 只分析指定列 options: 分析选项(可选字典) - outliers: {"method": "iqr|zscore", "threshold": 1.5} - correlation: {"method": "pearson|spearman"} - basic_stats: {"percentiles": [25, 50, 75, 90, 95]} Returns: str: JSON格式的分析结果,包含统计数据、图表建议和洞察 🤖 AI使用建议: 1. 数据概览:先用"basic_stats"了解数据分布 2. 质量检查:用"missing_values"和"duplicates"检查数据质量 3. 关系探索:用"correlation"发现变量关系 4. 异常检测:用"outliers"识别异常数据 5. 逐步深入:从基础统计到高级分析 💡 最佳实践: - 先进行basic_stats了解数据概况 - 数值列用correlation分析关系 - 大数据集指定columns提高效率 - 结合get_data_info了解表结构 ⚠️ 常见错误避免: - 确保table_name存在 - correlation只适用于数值列 - columns名称必须准确匹配 - 空表或单列表某些分析会失败 📈 高效使用流程: 1. get_data_info() → 了解表结构 2. analyze_data("basic_stats") → 基础统计 3. analyze_data("missing_values") → 质量检查 4. analyze_data("correlation") → 关系分析 5. analyze_data("outliers") → 异常检测 🎯 关键理解点: - 每种分析类型有特定适用场景 - 结果包含统计数据和业务洞察 - 支持参数化定制分析行为
必填参数:analysis_type、table_name
export_data 4 个参数 需填 2 项
📤 数据导出工具 - 将数据导出为各种格式文件 功能说明: - 支持多种导出格式:Excel、CSV、JSON - 可导出表数据或SQL查询结果 - 自动生成文件路径或使用指定路径 - 支持导出选项自定义 Args: export_type: 导出格式类型 - "excel": Excel文件(.xlsx) - "csv": CSV文件(.csv) - "json": JSON文件(.json) data_source: 数据源 - 表名: 直接导出整个表 - SQL查询: 导出查询结果(以SELECT开头) file_path: 导出文件路径(可选) - None: 自动生成路径到exports/目录 - 指定路径: 使用自定义路径 options: 导出选项(可选字典) - Excel: {"sheet_name": "工作表名", "auto_adjust_columns": True} - CSV: {"encoding": "utf-8", "separator": ","} - JSON: {"orient": "records", "indent": 2} Returns: str: JSON格式的导出结果,包含文件路径、大小、记录数等信息 🤖 AI使用建议: 1. 表导出:export_data("excel", "table_name") 2. 查询导出:export_data("csv", "SELECT * FROM table WHERE condition") 3. 自定义格式:使用options参数调整导出格式 4. 批量导出:结合循环导出多个表或查询 💡 最佳实践: - Excel适合报表和可视化 - CSV适合数据交换和导入其他系统 - JSON适合API和程序处理 - 大数据量优先使用CSV ⚠️ 常见错误避免: - 确保data_source存在(表名)或语法正确(SQL) - 文件路径目录必须存在或可创建 - 注意文件权限和磁盘空间 📈 高效使用流程: 1. 确定导出需求(格式、内容) 2. 选择合适的export_type 3. 准备data_source(表名或SQL) 4. 设置options(如需要) 5. 执行导出并检查结果 🎯 关键理解点: - 支持表和查询两种数据源 - 自动处理文件路径和格式 - 提供详细的导出统计信息
必填参数:export_type、data_source
process_data 4 个参数 需填 3 项
⚙️ 数据处理工具 - 执行数据清洗、转换、筛选等操作 功能说明: - 提供6种核心数据处理功能 - 支持表和SQL查询作为数据源 - 灵活的配置参数系统 - 可指定目标表或覆盖原表 Args: operation_type: 处理操作类型 - "clean": 数据清洗(去重、填充缺失值、数据类型转换) - "transform": 数据转换(列重命名、标准化、新列计算) - "filter": 数据筛选(条件过滤、列选择、数据采样) - "aggregate": 数据聚合(分组统计、汇总计算) - "merge": 数据合并(表连接、数据拼接) - "reshape": 数据重塑(透视表、宽长转换) data_source: 数据源 - 表名: 处理整个表 - SQL查询: 处理查询结果 config: 操作配置字典(必需) - clean: {"remove_duplicates": True, "fill_missing": {"col": {"method": "mean"}}} - transform: {"rename_columns": {"old": "new"}, "normalize": {"columns": ["col1"]}} - filter: {"filter_condition": "age > 18", "select_columns": ["name", "age"]} - aggregate: {"group_by": {"columns": ["dept"], "agg": {"salary": "mean"}}} - merge: {"right_table": "table2", "on": "id", "how": "inner"} - reshape: {"pivot": {"index": "date", "columns": "product", "values": "sales"}} target_table: 目标表名(可选) - None: 覆盖原表(默认) - 表名: 保存到新表 Returns: str: JSON格式的处理结果,包含操作详情、影响行数和新表信息 🤖 AI使用建议: 1. 数据清洗:先用"clean"处理数据质量问题 2. 数据转换:用"transform"标准化和计算新字段 3. 数据筛选:用"filter"获取目标数据子集 4. 数据聚合:用"aggregate"生成汇总报表 5. 数据合并:用"merge"关联多个数据源 6. 数据重塑:用"reshape"改变数据结构 💡 最佳实践: - 处理前先备份重要数据 - 使用target_table避免覆盖原数据 - 复杂操作分步骤执行 - 结合analyze_data验证处理结果 ⚠️ 常见错误避免: - config参数必须符合operation_type要求 - 确保引用的列名存在 - merge操作需要确保关联键存在 - 大数据量操作注意性能 📈 高效使用流程: 1. analyze_data() → 了解数据质量 2. process_data("clean") → 清洗数据 3. process_data("transform") → 转换数据 4. process_data("filter") → 筛选数据 5. analyze_data() → 验证处理结果 🎯 关键理解点: - 每种操作类型有特定的config格式 - 支持链式处理(上一步输出作为下一步输入) - 提供详细的操作日志和统计信息 📋 配置示例: ```python # 数据清洗 config = { "remove_duplicates": True, "fill_missing": { "age": {"method": "mean"}, "name": {"method": "mode"} } } # 数据筛选 config = { "filter_condition": "age > 18 and salary > 5000", "select_columns": ["name", "age", "department"] } # 数据聚合 config = { "group_by": { "columns": ["department"], "agg": { "salary": "mean", "age": "count" } } } ```
必填参数:operation_type、data_source、config
list_data_sources
📋 数据源列表工具 - 查看所有可用的数据源 🎯 功能说明: - 显示本地SQLite数据库状态 - 列出所有外部数据库配置 - 显示每个数据源的连接状态和基本信息 - 区分临时配置和永久配置 📊 返回信息包括: - 数据源名称和类型 - 连接状态(可用/已配置/已禁用) - 主机地址和数据库名 - 是否为默认数据源 - 配置创建时间(临时配置) 💡 使用场景: - 不确定有哪些数据源时查看 - 检查数据库连接状态 - 查找临时配置名称 - 了解可用的查询目标 Args: 无需参数 Returns: str: JSON格式的数据源列表,包含详细的配置信息 🚀 AI使用建议: - 在查询数据前先调用此工具了解可用数据源 - 用于获取正确的database_name参数 - 检查临时配置是否还存在
该工具无需必填参数,直接调用即可
manage_database_config 2 个参数 需填 1 项
⚙️ 数据库配置管理工具 - 管理所有数据库连接配置 🎯 支持的操作类型: - "list" - 列出所有数据库配置(包括临时和永久) - "test" - 测试指定配置的连接状态 - "add" - 添加永久数据库配置 - "remove" - 删除指定配置 - "reload" - 重新加载配置文件 - "list_temp" - 仅列出临时配置 - "cleanup_temp" - 清理所有临时配置 📋 常用操作示例: 1️⃣ 查看所有配置: manage_database_config(action="list") 2️⃣ 测试连接: manage_database_config(action="test", config={"database_name": "配置名"}) 3️⃣ 添加永久配置: manage_database_config(action="add", config={ "database_name": "my_mysql", "database_config": { "host": "localhost", "port": 3306, "type": "mysql", "user": "root", "database": "test_db", "password": "password" } }) 4️⃣ 清理临时配置: manage_database_config(action="cleanup_temp") Args: action: 操作类型,必须是上述支持的操作之一 config: 配置参数字典,根据action类型提供不同参数 Returns: str: JSON格式操作结果,包含状态、消息和相关数据 💡 AI使用建议: - 不确定有哪些配置时,先用action="list"查看 - 连接问题时,用action="test"检查配置状态 - 临时配置过多时,用action="cleanup_temp"清理
必填参数:action
query_external_database 3 个参数 需填 2 项
🌐 外部数据库查询工具 - 专门查询外部数据库 🎯 使用场景: - 查询MySQL数据库 - 查询PostgreSQL数据库 - 查询MongoDB数据库 - 查询所有通过connect_data_source连接的外部数据库 ⚠️ 前置条件: 必须先使用connect_data_source建立数据库连接并获得配置名称 🔄 完整流程示例: 1️⃣ connect_data_source(source_type="mysql", config={...}) → 获得配置名 2️⃣ connect_data_source(source_type="database_config", config={"database_name": "配置名"}) → 建立连接 3️⃣ query_external_database(database_name="配置名", query="SELECT * FROM table") → 查询数据 💡 查询语法支持: - MySQL/PostgreSQL: 标准SQL语法 - MongoDB: 支持多种查询格式(JSON、JavaScript风格等) Args: database_name: 数据库配置名称(从connect_data_source获得) query: 查询语句,SQL或MongoDB查询语法 limit: 结果行数限制,默认1000行 Returns: str: JSON格式查询结果,包含数据行、统计信息和元数据 🚀 AI使用建议: - 这是查询外部数据库的首选工具 - 使用list_data_sources查看可用的数据库配置 - 配置名称通常格式为:temp_mysql_20250724_173102
必填参数:database_name、query
manage_api_config 3 个参数 需填 1 项
管理API配置 Args: action: 操作类型 (list|test|add|remove|reload|get_endpoints) api_name: API名称 config_data: API配置数据 Returns: str: 操作结果
必填参数:action
fetch_api_data 7 个参数 需填 2 项
从API获取数据并自动存储到数据库(方式二:自动持久化流程) 注意:已删除方式一(手动流程),所有API数据默认直接存储到数据库 Args: api_name: API名称 endpoint_name: 端点名称 params: 请求参数 data: 请求数据(POST/PUT) method: HTTP方法 transform_config: 数据转换配置 storage_session_id: 存储会话ID(可选,不提供时自动创建) Returns: str: 数据存储结果和会话信息
必填参数:api_name、endpoint_name
api_data_preview 10 个参数 需填 2 项
🔍 API数据预览工具 - 灵活预览API返回数据 功能说明: - 支持灵活的数据预览配置 - 可指定预览字段和深度 - 提供数据类型和摘要信息 - 避免数据截断问题 Args: api_name: API名称 endpoint_name: 端点名称 params: 请求参数 max_rows: 最大显示行数 (默认10) max_cols: 最大显示列数 (默认10) preview_fields: 指定预览的字段列表 (可选) preview_depth: JSON嵌套预览深度 (默认3) show_data_types: 是否显示数据类型信息 (默认True) show_summary: 是否显示数据摘要 (默认True) truncate_length: 字段值截断长度 (默认100) Returns: str: 数据预览结果 📋 使用示例: ```python # 基本预览 api_data_preview( api_name="alpha_vantage", endpoint_name="news_sentiment", params={"topics": "technology"} ) # 指定字段预览 api_data_preview( api_name="alpha_vantage", endpoint_name="news_sentiment", params={"topics": "technology"}, preview_fields=["title", "summary", "sentiment_score"], max_rows=5 ) # 深度预览嵌套数据 api_data_preview( api_name="complex_api", endpoint_name="nested_data", preview_depth=5, truncate_length=200 ) ``` 🎯 关键理解点: - preview_fields可以精确控制显示内容 - preview_depth控制JSON嵌套显示层级 - truncate_length避免超长字段影响显示 - 提供完整的数据结构分析
必填参数:api_name、endpoint_name
create_api_storage_session 4 个参数 需填 3 项
创建API数据存储会话 Args: session_name: 存储会话名称 api_name: API名称 endpoint_name: 端点名称 description: 会话描述 Returns: str: 创建结果
必填参数:session_name、api_name、endpoint_name
query_api_storage_data 5 个参数
查询API存储的数据 - 解决API数据存储位置不透明的问题 功能说明: - 查询存储在独立文件中的API数据 - 支持按会话ID、API名称、端点名称筛选 - 提供多种数据格式输出 - 显示数据存储位置和会话信息 Args: session_id: 存储会话ID(精确查询) api_name: API名称(模糊筛选) endpoint_name: 端点名称(模糊筛选) limit: 返回记录数限制(默认10条) format_type: 数据格式(json/dataframe/summary) Returns: str: JSON格式的查询结果,包含数据和存储位置信息 🎯 解决问题: - ✅ API数据存储位置透明化 - ✅ 提供API数据查询入口 - ✅ 显示会话与表的关联关系 - ✅ 支持多种查询方式 💡 使用示例: - query_api_storage_data() # 列出所有API存储会话 - query_api_storage_data(api_name="rest_api_example") # 查询特定API的数据 - query_api_storage_data(session_id="xxx") # 查询特定会话的数据
该工具无需必填参数,直接调用即可
execute_database_cleanup 3 个参数 需填 1 项
🧹 数据库清理执行工具 - 根据清理建议执行实际的清理操作 功能说明: - 执行数据库表的删除操作 - 支持批量删除和选择性删除 - 提供安全确认机制 - 记录清理操作日志 Args: action: 清理操作类型 - "delete_tables": 删除指定的表 - "preview_deletion": 预览将要删除的表(安全模式) - "backup_and_delete": 备份后删除表(暂未实现) tables_to_clean: 要清理的表名列表 - ["table1", "table2"]: 删除指定表 - None: 需要先运行get_data_info(info_type="cleanup")获取建议 confirm_deletion: 删除确认标志 - True: 确认执行删除操作 - False: 仅预览,不执行实际删除 Returns: str: JSON格式的清理结果,包含操作状态和详细信息 🤖 AI使用建议: 1. 清理分析:先用get_data_info(info_type="cleanup")分析数据库 2. 预览操作:用action="preview_deletion"预览将要删除的表 3. 确认删除:设置confirm_deletion=True执行实际删除 4. 安全第一:重要数据请先备份 💡 最佳实践: - 删除前先备份重要数据 - 优先删除空表和测试表 - 谨慎处理重复表和历史表 - 定期执行清理维护数据库整洁 ⚠️ 安全提醒: - 删除操作不可逆,请谨慎操作 - 建议先使用preview模式查看影响 - 重要数据请务必备份 - 仅删除确认不需要的表 📈 使用流程: 1. get_data_info(info_type="cleanup") → 获取清理建议 2. execute_database_cleanup(action="preview_deletion", tables_to_clean=[...]) → 预览 3. execute_database_cleanup(action="delete_tables", tables_to_clean=[...], confirm_deletion=True) → 执行 🎯 关键理解点: - 这是数据库维护的执行工具 - 配合cleanup分析使用效果最佳 - 支持安全预览和确认机制 - 帮助保持数据库整洁有序
必填参数:action
import_api_data_to_main_db 3 个参数 需填 1 项
📥 API数据导入工具 - 将API存储的数据导入到主数据库 功能说明: - 将API存储会话中的数据导入到主SQLite数据库 - 支持指定目标表名或自动生成 - 提供数据预览和导入统计 - 解决API数据分析不便的问题 Args: session_id: API存储会话ID target_table: 目标表名(可选,默认使用session_id作为表名) data_source: 数据源名称(可选,默认使用本地SQLite) Returns: str: JSON格式的导入结果,包含导入统计和表信息 🤖 AI使用建议: 1. 先用list_api_storage_sessions查看可用会话 2. 使用此工具导入API数据到主数据库 3. 然后可以使用常规分析工具分析数据 💡 最佳实践: - 导入前先检查会话是否存在 - 使用有意义的target_table名称 - 导入后验证数据完整性
必填参数:session_id
list_api_storage_sessions
📋 API存储会话列表工具 - 查看所有API数据存储会话 功能说明: - 列出所有API数据存储会话 - 显示会话详细信息和数据统计 - 为API数据导入提供会话选择 Returns: str: JSON格式的会话列表,包含会话信息和数据统计 🤖 AI使用建议: - 在导入API数据前先查看可用会话 - 选择合适的会话进行数据导入 - 了解每个会话的数据量和结构
该工具无需必填参数,直接调用即可
服务介绍
DataMaster MCP Server
项目简介
DataMaster MCP Server 是一个功能强大的数据分析管理服务器,基于 Model Context Protocol (MCP) 构建。这个项目源于现代数据分析工作中遇到的几个核心痛点:
- 数据源碎片化:企业数据分散在数据库、API、文件等不同系统中,整合困难
- 分析流程复杂:从数据获取到分析结果需要多个工具切换,效率低下
- 协作困难:数据分析师、开发人员、业务人员之间缺乏统一的交互接口
- 重复劳动:每次分析都要重复编写数据连接、清洗、转换的代码
为了解决这些问题,我们开发了这个 一站式数据管理和分析平台,将数据库操作、API集成、数据处理、分析计算等功能整合到一个统一的MCP服务器中。用户只需要通过简单的自然语言指令,就能完成复杂的数据分析任务。
核心功能特性
🔍 多数据源集成
- 支持SQLite、MySQL、PostgreSQL等主流数据库
- 集成RESTful API数据获取
- 统一的数据源管理界面
📊 智能数据处理
- 数据清洗(去重、缺失值处理、类型转换)
- 数据转换(列重命名、标准化、计算新列)
- 数据筛选(条件过滤、采样、列选择)
📈 高级分析能力
- 描述性统计分析
- 趋势分析和预测
- 数据可视化预览
💾 灵活数据导出
- 支持Excel、CSV、JSON等多种格式
- 自动生成标准化报告
- 一键分享分析结果
部署指南
环境要求
- Python: 3.8 或更高版本
- 操作系统: Windows 10/11, macOS 10.15+, Ubuntu 18.04+
- 内存: 最少4GB RAM(推荐8GB以上)
- 存储: 至少1GB可用空间
快速部署步骤
1. 获取项目
git clone https://github.com/your-username/DataMaster-MCP.git
cd DataMaster-MCP/source-code
2. 安装依赖
pip install -r requirements.txt
3. 配置文件设置
创建配置文件 config/mcp_config.json:
{
"mcpServers": {
"datamaster-mcp": {
"command": "uvx",
"args": [
"datamaster-mcp"
]
}
}
}
4. 启动服务器
方式一:直接启动
cd source-code
python -m datamaster_mcp.main
方式二:使用MCP客户端启动
# 安装MCP客户端
pip install mcp-client
# 启动客户端并连接服务器
mcp-client --config config/mcp_config.json
5. 验证部署
启动成功后,你应该看到如下日志:
[INFO] 初始化数据库模块...
[INFO] 初始化数据分析模块...
[INFO] 初始化数据处理模块...
[INFO] 初始化API管理模块...
[INFO] DataMaster MCP服务器启动成功!
[INFO] 正在监听连接...
环境变量配置
在项目根目录创建 .env 文件:
# 数据库配置
DATABASE_URL=sqlite:///data/analysis.db
# API配置
API_TIMEOUT=30
MAX_RETRIES=3
# 日志配置
LOG_LEVEL=INFO
LOG_FILE=logs/datamaster.log
# 服务器配置
HOST=localhost
PORT=8000
使用示例
示例1:连接数据库并查询数据
用户输入:
连接到本地的sales数据库,查询2024年的销售数据
系统响应:
✅ 数据库连接成功!
📊 查询结果:找到15,847条2024年销售记录
数据概览:
├─ 总销售额:¥2,847,392.50
├─ 订单数量:15,847笔
├─ 平均订单金额:¥179.68
└─ 数据时间范围:2024-01-01 至 2024-12-31
数据已保存到表:sales_2024_analysis
示例2:API数据获取和分析
用户输入:
从天气API获取北京最近7天的天气数据,分析温度趋势
系统响应:
🌤️ 天气数据获取成功!
📈 温度趋势分析完成
7天温度统计:
├─ 最高温度:28.5°C (10月15日)
├─ 最低温度:12.3°C (10月12日)
├─ 平均温度:20.8°C
└─ 温度变化:整体呈下降趋势 (-3.2°C)
📊 数据可视化已生成:exports/weather_trend_20241015_143022.png
示例3:数据清洗和导出
用户输入:
清洗用户数据表,去除重复邮箱,填充缺失的手机号码
系统响应:
🧹 数据清洗完成!
清洗结果统计:
├─ 原始记录:8,432条
├─ 重复邮箱:127条(已删除)
├─ 缺失手机:2,156条(已填充默认值)
├─ 数据类型转换:3列
└─ 清洗后记录:8,305条
📤 清洗结果已导出:exports/cleaned_users_20241015_144512.xlsx
示例4:复杂SQL查询和可视化
用户输入:
查询每个产品类别的月度销售额,按销售额降序排列
系统响应:
📊 查询执行成功!
月度销售排行榜:
├─ 电子产品:¥847,392.00 (占比29.7%)
├─ 服装配饰:¥624,193.50 (占比21.9%)
├─ 家居用品:¥518,472.30 (占比18.2%)
├─ 图书文具:¥392,847.20 (占比13.8%)
└─ 运动户外:¥347,392.00 (占比12.2%)
📈 可视化图表已生成:
├─ 柱状图:exports/category_sales_bar_20241015_145533.png
├─ 饼图:exports/category_sales_pie_20241015_145533.png
└─ 数据表:exports/category_monthly_sales.xlsx
实际使用截图展示
主界面展示
┌─────────────────────────────────────────────────────────────┐
│ DataMaster MCP Server │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 🔍 数据源管理 📊 数据分析 ⚙️ 数据处理 🌐 API │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 已连接数据源: │ │
│ │ 📊 SQLite数据库: analysis.db (已连接) │ │
│ │ 🌐 天气API: api.weather.com (已配置) │ │
│ │ 📈 股票API: api.stocks.com (已配置) │ │
│ └─────────────────────────────────────────────────────┘ │
│ [输入指令] > 连接到sales数据库,查询2024年销售数据... │
└─────────────────────────────────────────────────────────────┘
数据库连接配置
┌─────────────────────────────────────────┐
│ 数据库连接配置 │
├─────────────────────────────────────────┤
│ 数据库类型: SQLite │
│ 数据库路径: ./data/sales.db │
│ 连接状态: ✅ 已连接 │
│ 表数量: 12张 │
│ 总记录数: 125,847条 │
├─────────────────────────────────────────┤
│ 可用表: │
│ • customers (8,432条) │
│ • orders (15,847条) │
│ • products (342条) │
│ • sales_records (45,293条) │
└─────────────────────────────────────────┘
数据查询结果
┌─────────────────────────────────────────────┐
│ SQL查询结果 │
├─────────────────────────────────────────────┤
│ 查询: SELECT * FROM sales WHERE year=2024 │
│ 执行时间: 0.23秒 │
│ 返回记录: 15,847条 │
├─────────────────────────────────────────────┤
│ 数据概览: │
│ ├─ 总销售额: ¥2,847,392.50 │
│ ├─ 平均订单: ¥179.68 │
│ ├─ 最高单笔: ¥12,450.00 │
│ └─ 数据范围: 2024-01-01 ~ 2024-12-31 │
└─────────────────────────────────────────────┘
API数据获取
┌─────────────────────────────────────────────┐
│ API数据获取 │
├─────────────────────────────────────────────┤
│ API名称: 天气数据API │
│ 请求URL: api.weather.com/v1/forecast │
│ 响应状态: ✅ 200 OK │
│ 数据大小: 45.2 KB │
├─────────────────────────────────────────────┤
│ 数据预览: │
│ 日期 温度 湿度 天气 │
│ 2024-10-15 28.5°C 65% 晴 │
│ 2024-10-14 26.2°C 70% 多云 │
│ 2024-10-13 24.8°C 72% 阴 │
└─────────────────────────────────────────────┘
数据清洗工具
┌─────────────────────────────────────────────┐
│ 数据清洗结果 │
├─────────────────────────────────────────────┤
│ 清洗前记录: 8,432条 │
│ 清洗后记录: 8,305条 │
│ 删除重复: 127条 │
│ 填充缺失: 2,156条 │
├─────────────────────────────────────────────┤
│ 清洗操作: │
│ ✓ 去除重复邮箱地址 │
│ ✓ 填充缺失手机号码 │
│ ✓ 标准化日期格式 │
│ ✓ 验证邮箱格式 │
└─────────────────────────────────────────────┘
分析结果导出
┌─────────────────────────────────────────────┐
│ 导出结果 │
├─────────────────────────────────────────────┤
│ 导出格式: Excel (.xlsx) │
│ 文件路径: exports/sales_analysis.xlsx │
│ 文件大小: 2.34 MB │
│ 包含工作表: 3个 │
├─────────────────────────────────────────────┤
│ 工作表内容: │
│ • 销售概览 │
│ • 月度趋势 │
│ • 产品分析 │
└─────────────────────────────────────────────┘
高级使用技巧
批量处理
# 批量处理多个数据表
python -m datamaster_mcp.main --batch-process tables.txt --config batch_config.json
定时任务
# 设置定时数据更新
python -m datamaster_mcp.main --schedule "0 9 * * *" --task daily_report
自定义分析模板
{
"template_name": "monthly_sales_analysis",
"steps": [
{"action": "query", "sql": "SELECT * FROM sales WHERE date >= ?"},
{"action": "clean", "config": {"remove_duplicates": true}},
{"action": "analyze", "type": "trend"},
{"action": "export", "format": "excel"}
]
}
故障排除
常见问题
Q: 连接数据库失败
A: 检查数据库配置和网络连接,确保数据库服务正在运行
Q: API请求超时
A: 增加API超时时间设置,检查网络连接稳定性
Q: 内存不足错误
A: 减少单次处理的数据量,或增加系统内存
日志查看
# 查看实时日志
tail -f logs/datamaster.log
# 查看错误日志
grep ERROR logs/datamaster.log
技术支持
DataMaster MCP Server - 让数据分析变得简单而强大!