使用说明
数据mcp服务器
简单Python数据分析MCP工具服务器
目录
1.概述
这个项目是 原型 数据分析MCP工具服务器,将确定性Python分析与LLM驱动的解释集成在一起,通过模型上下文协议(MCP)展示了一个轻量级、受控的工作流程。服务器:
- 负载 CSV文件, 基于行的JSON,或 基于行的YAML 数据集。
- 执行简单操作 Python分析:基本信息、数字摘要、分类摘要。
- 纯文本输出,人类可读,适合 LLM口译.
- 利用法学硕士提供见解的简短总结。
2.存储库结构
Python文件
data_mcp_server.py-主要Python应用程序
数据集
datasets/- 员工绩效
datasets/employee_performance.csvdatasets/employee_performance.jsondatasets/employee_performance.yaml
- 销售数据
datasets/sales_data.csvdatasets/sales_data.jsondatasets/sales_data.yaml
- 员工绩效
图像
images/-包含屏幕截图的文件夹
uv项目文件
pyproject.tomluv.lock
3.部署
按照以下步骤运行项目:
1.安装UV
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2.克隆存储库
git clone https://github.com/bernardtse/data-mcp-server.git
cd data-mcp-server
3.创建并同步UV管理的虚拟环境
uv sync
4.下载并安装Claude Desktop
- 按照安装说明进行操作 这里.
- 截至 2025年11月,Claude Desktop尚未适用于Linux。Linux用户可以探索 其他兼容的MCP客户端 作为替代方案。
5.将MCP服务器安装到Claude Desktop上
uv run mcp install -e ./ data_mcp_server.py
6.在Claude Desktop上运行MCP服务器
- 启动Claude Desktop(或重新启动已打开的应用程序)。
- 检查
data-mcp-server已启用并正在运行:- Menu → 设置→ 开发者→ 本地MCP服务器
- 点击 搜索和工具 位于输入字段正下方的按钮。检查一下
data-mcp-server工具已启用。 - 编写一个提示以触发数据分析。确保提示包括 数据集文件的完整路径名 (截图中的路径名仅供参考)。
Analyse this file
/Users/username/Desktop/data-mcp-server/datasets/sales_data.csv
7.开发者模式(Dev Mode)及其他
- 开发者可以激活 开发模式 通过在存储库文件夹中运行以下命令:
uv run mcp dev data_mcp_server.py
- 要在其他第三方客户端(如Cursor、Goose等)上运行MCP服务器,请在应用程序中找到MCP配置设置。在某些客户端中,这会打开MCP配置文件(JSON)进行直接编辑。如果已经定义了其他MCP服务器,请按照以下结构添加一个新条目。如果文件为空,则将其内容完全替换为JSON示例。保存所有更改后,重新启动客户端。
{
"mcpServers": {
"Simple Python Data Analytics MCP Tool Server":{
"command": "uv",
"args": [
"--directory",
"pathname-of-local-repository",
"run",
"data_mcp_server.py"
]
}
}
}
笔记:
-
您需要指定 完整路径名 本地存储库文件夹。
-
在某些情况下,命令
uv可能不起作用。如果发生这种情况,请尝试以下操作:macOS/Linux:
- 在终端中,运行
which uv查找目录的命令 紫外线. - 在配置JSON文件中,替换
uv完整的路径 紫外线例如。/Users/username/.local/bin/uv.
Windows(Powershell):
- 跑吧
where uv显示完整路径的命令uv.exe文件。 - 在配置JSON文件中,替换
uv路径名为uv.exe例如。C:\\Users\\username\\.local\\bin\\uv.exe. - 如果这仍然不起作用,请尝试添加
cmd /C之前uv或的路径名uv.exe:- 例如
cmd /C uv - 例如
cmd /C C:\\Users\\username\\.local\\bin\\uv.exe(根据需要调整路径名)
- 例如
- 在终端中,运行
4.设计理念
为什么选择混合(Python+LLM)?
纯Python分析和完全LLM驱动的工作流都有固有的权衡:
- 纯Python: 确定性和精确性,但缺乏自然语言总结或灵活解释。
- 纯LLM: 适应性强,富有表现力,但不具有确定性。结果可能会有所不同,很难重现。
此混合MCP服务器演示了 受控编排 在两者之间。它强调了确定性计算和概率推理相辅相成的场景:
- 再现性和确定性: Python确保计算是精确的、可审计的和可重复的。
- 受控处理: 定量结果来自直接计算,而不是概率推理。
- 法学硕士作为口译员: 提供人类可读的解释、上下文见解和叙述性总结。
- MCP作为桥梁:在可重复的结构化工作流程中协调Python工具和LLM之间的模块化交互。
MCP工具专用设计
此原型仅实现 工具调用 功能性(mcp.tool()),省略 mcp.prompt() 和 mcp.resource().
设计原理:
- 截至 2025年11月,大多数第三方MCP客户端主要为以下内容提供稳定的支持
mcp.tool(). - 这种方法简化了实现,避免了暴露不必要的指令或UI元素。
- 它使工作流专注于确定性Python执行,允许LLM自然地解释输出。
其他设计选择
- 用途 标准 传输以实现跨环境的简单性、可移植性和兼容性。
- 保持架构的轻量级和透明性,以便于调试和集成。
- 承认 MCP协议 它仍在不断发展,因此这种实现更倾向于清晰性和可维护性,而不是功能完整性。
使用的技术
- 模型上下文协议(MCP) -由引入的开放协议 Anthropic 实现LLM应用程序与外部数据源和工具之间的无缝集成
- Python 3 -确定性数据分析的核心语言
- FastMCP -用于构建MCP服务器的轻量级框架
- 熊猫 -数据加载、转换和统计摘要
- 格式 -解析YAML数据集
- 紫外线 -Python包和项目管理器
- 之所以选择它,是因为与其他管理器相比,它具有更高的速度、可重复性和依赖性解决方案,并且因为它是 首选包管理器 推荐在 官方MCP Python SDK 和 文档
- 克劳德桌面版 (MCP客户端)-提供LLM驱动的Python分析解释
5.样本数据集
有 2组数据: employee_performance 和 sales_data,可在 CSV文件, JSON 和 YAML 格式。
所有JSON或YAML数据集都是 行导向 (记录列表)以反映CSV语义,并确保可靠的解析 pandas面向列的数据结构(其中每个键映射到一系列值)是 不用,如 pandas.read_json 和 yaml.safe_load 对于默认的表格转换,预期使用面向记录的数据。
代码片段
datasets/sales_data.csv
month,revenue,units_sold,best_performing_region
Jan,12000,300,North
Feb,15000,400,South
datasets/sales_data.json
[
{"month": "Jan", "revenue": 12000, "units_sold": 300, "best_performing_region": "North"},
{"month": "Feb", "revenue": 15000, "units_sold": 400, "best_performing_region": "South"}
]
datasets/sales_data.yaml
- month: Jan
revenue: 12000
units_sold: 300
best_performing_region: North
- month: Feb
revenue: 15000
units_sold: 400
best_performing_region: South
6.参考文献
- 构建MCP服务器: https://modelcontextprotocol.io/docs/develop/build-server
- MCP Python SDK: https://github.com/modelcontextprotocol/python-sdk
- 用于数据探索的MCP服务器:由创建和运行的强大数据分析MCP服务器 ReadingPlus。AI LLC。
7.许可证
- 该项目根据 MIT许可证。请参阅 许可证 文件以获取详细信息。
- 鼓励开发人员根据需要通过附加功能、支持和MCP API使用来增强此原型。
