使用说明
本地数据MCP服务器
LocalData MCP使LLM代理能够访问本地和远程数据——数据库、文件、图形和结构化文档——以及用于分析和建模的完整数据科学工具包。它公开了13种数据库类型和20多种文件格式的70个MCP工具,并具有内存限制流,因此代理可以在不超过可用RAM的情况下在大型数据集上安全工作。
快速开始
# Install permanently
uv tool install localdata-mcp
# Or run directly without installing
uvx localdata-mcp
首次运行注意事项: 数据科学依赖项(scipy、scikit-learn、statsmodels、geopandas)总计约200 MB,首次使用时即可下载。随后开始重用缓存。如果您的MCP客户端在第一次启动时超时,请重新连接——下一次启动将立即进行。
添加到MCP客户端配置中:
{
"mcpServers": {
"localdata": {
"command": "localdata-mcp"
}
}
}
对于 uvx (无永久安装):
{
"mcpServers": {
"localdata": {
"command": "uvx",
"args": ["localdata-mcp"]
}
}
}
然后连接到任何支持的源并开始查询:
connect_database("sales", "postgresql", "postgresql://user:pass@localhost/db")
execute_query("sales", "SELECT product, SUM(amount) FROM orders GROUP BY product")
connect_database("records", "csv", "./records.csv")
analyze_hypothesis_test("records", "SELECT amount, region FROM data_table", column="amount", group_column="region")
一个表文件——CSV、TSV、JSON、XML、INI、Parquet、Feather、Arrow——是
加载到一个名为的表中 data_table不管这种连接叫什么。跑
describe_database(name) 连接后,如果您不确定来源
暴露;多表电子表格和数据库保留自己的表名。
功能概述
核心数据库(8个工具)
连接、查询和检查数据库和文件。所有查询都在可配置的内存限制(默认为2 GB)内执行,并对大型结果集进行自动分块流式处理。
| 工具 | 说明 |
|---|---|
connect_database |
打开与任何受支持的数据库或文件的连接 |
disconnect_database |
关闭连接 |
list_databases |
列出活动连接 |
execute_query |
使用流式、分块和飞行前模式运行SQL |
describe_database |
显示架构和表列表 |
describe_table |
列类型、索引、行数 |
find_table |
在所有活动连接中查找表 |
analyze_query_preview |
执行前估算查询成本 |
流媒体和内存(9个工具)
| 工具 | 说明 |
|---|---|
next_chunk |
检索流式结果的下一块 |
request_data_chunk |
按行范围获取特定块 |
request_multiple_chunks |
在一次调用中批量获取多个块 |
manage_memory_bounds |
查看和配置内存限制 |
get_streaming_status |
检查活动流和缓冲区使用情况 |
clear_streaming_buffer |
从特定缓冲区释放内存 |
get_query_metadata |
已完成查询的丰富元数据 |
cancel_query_operation |
取消正在运行或缓冲的查询 |
get_data_quality_report |
列统计、空率和质量指标 |
树/结构化数据(10个工具)
将TOML、JSON和YAML文件作为可导航树进行导航和编辑。支持完整的CRUD操作,自动创建祖先节点,并往返导出到任何支持的格式。
| 工具 | 说明 |
|---|---|
get_node / get_children |
浏览树 |
set_node / delete_node |
创建或删除节点 |
get_value / set_value / delete_key |
读写属性 |
list_keys |
列出节点上的键值对 |
move_node |
在树中重新定位节点 |
export_structured |
导出为TOML、JSON、YAML或Markdown |
图表(7个工具)
使用DOT、GML、GraphML和Mermaid文件作为定向多重图。支持节点和边上的完整CRUD、最短路径和所有路径查询、结构统计和多格式导出。
| 工具 | 说明 |
|---|---|
get_neighbors / get_edges |
从节点遍历 |
add_edge / remove_edge |
管理边缘 |
find_path |
两个节点之间的最短路径或所有路径 |
get_graph_stats |
节点/边计数、密度、DAG验证 |
export_graph |
导出为DOT、GML、GraphML、Mermaid或Markdown |
节点级操作重用上述树工具: get_node, set_node, delete_node, list_keys, get_value, set_value,以及 delete_key 检测图连接并处理它们 path 参数作为节点ID。 get_children 和 move_node 只有树。
搜索和转换(2个工具)
| 工具 | 说明 |
|---|---|
search_data |
在查询结果中搜索正则表达式 |
transform_data |
将列转换应用于结果集 |
模式和审计(3个工具)
| 工具 | 说明 |
|---|---|
export_schema |
将模式导出为JSON模式、Python数据类、TypeScript接口或SQL DDL |
get_query_log |
最近的查询执行历史 |
get_error_log |
最近的错误日志 |
系统(2个工具)
| 工具 | 说明 |
|---|---|
check_compatibility |
验证API向后兼容性 |
get_metrics |
Prometheus度量文本。仅在启用指标收集时注册,这是默认设置 |
数据科学(12种工具)
直接对来自任何连接源的查询结果运行统计分析、建模和模式检测。
| 工具 | 域 |
|---|---|
analyze_hypothesis_test |
统计分析 |
analyze_anova |
统计分析 |
analyze_effect_sizes |
统计分析 |
analyze_regression |
回归与建模 |
evaluate_model_performance |
回归与建模 |
analyze_clusters |
模式识别 |
detect_anomalies |
模式识别 |
reduce_dimensions |
模式识别 |
analyze_time_series |
时间序列 |
forecast_time_series |
时间序列 |
analyze_rfm |
商业智能 |
analyze_ab_test |
商业智能 |
支持的数据源
数据库
| 类型 | 发动机 |
|---|---|
| SQL | SQLite、PostgreSQL、MySQL |
| SQL(分析) | DuckDB(pip install duckdb duckdb-engine) |
| SQL(企业) | Oracle、MS SQL Server(pip install localdata-mcp[enterprise]) |
| 文档 | MongoDB、CouchDB(pip install localdata-mcp[modern-databases]) |
| 键值 | Redis(pip install localdata-mcp[modern-databases]) |
| 搜索 | Elasticsearch(pip install localdata-mcp[modern-databases]) |
| 时间序列 | InfluxDB(pip install localdata-mcp[modern-databases]) |
| 图表 | Neo4j(pip install localdata-mcp[modern-databases]) |
| RDF/SPARQL | Turtle(.ttl)、N-Triples(.nt)、远程SPARQL端点 |
文件格式
| 类别 | 格式 |
|---|---|
| 表格 | CSV、TSV |
| 结构化 | JSON、YAML、TOML、XML、INI |
| 电子表格 | Excel(.xlsx、.xls)、LibreOffice Calc(.ods)、苹果数字(.Numbers) |
| 分析 | 拼花地板、羽毛、箭、HDF5 |
| 图 | DOT(Graphviz)、GML、GraphML、美人鱼 |
| RDF | 海龟(.ttl),N-三元组(.nt) |
支持多表电子表格:每个表格都成为一个单独的可查询表。要只加载一张工作表,请将其名称作为第四个参数传递给 connect_database — connect_database("q1", "excel", "./report.xlsx", "Q1 Results").使用 "excel" 对两者 .xlsx 和 .xls; "xlsx" 不是连接类型。
数据科学领域
统计分析 --t检验、卡方检验、Mann-Whitney检验、Kruskal-Wallis检验和相关假设检验;单因素方差分析与事后检验;Cohen的d、η平方和其他效应大小度量。
回归与建模 --线性、多项式、logistic、岭、lasso和弹性网络回归;使用R²、RMSE、MAE和分类度量进行模型评估;自动特征选择。
模式识别 --K-means、DBSCAN和层次聚类;通过隔离林、LOF和单类SVM进行异常检测;使用PCA、t-SNE和UMAP进行降维。
时间序列 --分解、平稳性检验、自相关分析;ARIMA和ETS预测;变化点检测;VAR、Granger因果关系和协整检验的多元分析。 forecast_time_series 接受 method="arima" 或 method="ets"域包中的SARIMA和集成模型无法通过MCP工具访问。
商业智能 --A/B测试统计分析;RFM客户细分;队列分析、CLV建模和漏斗分析。
地理空间 --距离和坐标计算、空间连接、插值和网络分析。
优化 --线性规划、约束优化、分配问题和网络优化。
抽样和估计 --引导置信区间、贝叶斯估计、蒙特卡洛模拟和分层抽样。
Claude代码插件
该存储库兼作Claude Code插件。其清单(.claude-plugin/plugin.json)注册 localdata MCP服务器通过 uvx localdata-mcp 并运送了18项技能和11名代理来驱动上述工具。看 插件页面 了解如何安装它以及如何调用技能。
从2.0.0升级: graph-explore 现在是 graph-data-explore 和 graph-analyst 现在是 graph-data-analyst,每种技能都会使目录更深。默默地呼唤一个旧名字什么也不做—— 更新日志 列出了步骤。
技能按领域分组 skills/:
| 组 | 技能 |
|---|---|
exploration/ |
explore-data, data-quality, find-reference-data |
statistical/ |
hypothesis-test, ab-test, analyze-correlations, sampling-estimation |
modeling/ |
regression, cluster-analysis, anomaly-detection, dimensionality-reduction, forecast, geospatial, optimization |
graph-data/ |
graph-data-explore |
workflow/ |
data-pipeline, research-pipeline, process-control |
代理商在 agents/ 进行跨越多种工具的较长分析:
| 代理 | 范围 |
|---|---|
data-explorer |
分析不熟悉的数据集,并报告模式、质量和候选分析 |
data-scientist |
当正确的方法不明显时,跨域组合多步管道 |
statistical-analyst |
假设检验、方差分析、效应大小、抽样设计、自举估计 |
ml-analyst |
聚类、异常检测、降维、回归建模 |
forecaster |
分解、平稳性测试、ARIMA/ETS选择、具有不确定性边界的预测 |
bi-analyst |
A/B测试、队列分析、CLV、归因、漏斗 |
graph-data-analyst |
中心性、社区检测、路径查找、图形导出 |
geospatial-analyst |
坐标系、距离、空间聚类、可达性 |
operations-analyst |
统计过程控制、优化、产能规划 |
research-analyst |
功率分析、假设文件、可重复报告 |
data-researcher |
查找并准备公共参考数据集以丰富您的数据 |
建筑学
- 一个统一的呼叫形状 --每个分析工具都有一个连接名称、一个SQL查询和它应该处理的列名。没有单独的加载步骤和数据帧参数:查询是数据选择,因此相同的调用适用于CSV文件和PostgreSQL表
- 命名方法,合理的默认值 --统计程序是按名称选择的(
method="dbscan",test_type="ttest_ind")每个方法参数都有一个默认值,因此只命名列的调用仍然会运行。阈值,例如alpha和contamination是数值参数,不是从意图推断出来的 - 流式传输首次执行 --查询结果被分块和缓冲,而不是整体物化。
execute_query返回第一个块加上aquery_id,以及next_chunk遍历其余部分,因此大于配置的内存上限(默认2GB)的结果仍然可行 - 自描述查询结果 —
execute_query返回行数、内存状态、数据质量信号,并准备运行next_chunk在行旁边打电话,这样代理就可以决定下一步做什么,而无需第二次往返
配置
LocalData MCP从YAML配置文件、环境变量或两者中读取设置;环境变量获胜。默认值适用于大多数情况。最常更改的变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
LOCALDATA_MEMORY_LIMIT_MB |
2048 |
查询结果的内存上限(MB) |
LOCALDATA_CONNECTIONS_MAX_CONCURRENT |
10 |
最大并发数据库连接数 |
LOCALDATA_QUERY_CHUNK_SIZE |
100 |
每个流块的行数 |
LOCALDATA_QUERY_BUFFER_TIMEOUT |
600 |
流式缓冲区在到期前保留的秒数 |
LOCALDATA_SECURITY_RESTRICT_PATHS |
true |
将文件访问权限限制为已配置的 security.allowed_paths (默认值 ["."],流程工作目录) |
LOCALDATA_CONFIG |
unset | 指向YAML配置文件的路径,绕过配置文件发现 |
在MCP服务器配置中设置它们 "env",或在a .env 工作目录中的文件。整套--每个数据库的暂存、内存预算、磁盘预算 LOCALDATA_DB_<NAME>_* 定义——记录在 配置参考.
文档
- 入门 --安装、配置MCP客户端,运行第一个查询
- Claude代码插件 --安装插件,调用技能,每个技能和代理都做什么
- 工具参考 --每个工具都有参数、返回形状和组合提示
- 配置参考 --配置文件发现、每个环境变量、每个默认值
- 数据源 --每个数据库和文件格式的连接字符串和怪癖
- 数据科学领域 --八个分析域中的每一个都做什么
- 错误分类 --结构化错误类型、可重试性和建议的恢复
- Docker使用 --容器部署和配置
- 故障排除 --常见故障及其修复
- 提供的文件 --相同的页面,可搜索
发展
git clone https://github.com/ChrisGVE/localdata-mcp.git
cd localdata-mcp
uv sync --all-extras
uv run pytest tests/ --ignore=tests/integration
该命令收集2312个单元测试。另有357个集成测试正在进行中 tests/integration/ 需要实时数据库服务——从开始 docker-compose up -d,然后运行 uv run pytest tests/integration/该集合中的企业级套件将10万行加载到7个数据库引擎中的每一个,是迄今为止最慢的部分。
贡献
欢迎捐款。请阅读 贡献.md 在提交pull请求之前。
许可证
Apache许可证2.0——请参阅 许可证 了解详情。