arcticdb-mcp
An MCP server for structured read/write access to ArcticDB.
Overview • Demo • Quick Start • Configuration • Tools • Development
概述
arcticdb-mcp 回合 ArcticDB 成为AI数据复制品。助手可以自动化符号更新、批处理作业和时间序列查询,而内置的版本控制可以保护每一个更改。在几分钟内从问题到数据更改,而不是脚本,具有完全的可追溯性。您还可以在以下基础上设计自己的工作流程 arcticdb-mcp.
目录
演示视频
观看直播 watch db 演示:
https://github.com/user-attachments/assets/dd81f229-e1f9-46e6-8e79-7c7252bc25c6
快速启动
- 安装并运行
uvx(推荐):
uvx arcticdb-mcp- 配置您的MCP客户端(克劳德桌面/光标/风帆/继续):
{
"mcpServers": {
"arcticdb": {
"command": "uvx",
"args": ["arcticdb-mcp"],
"env": {
"ARCTICDB_URI": "lmdb:///path/to/your/database"
}
}
}
}- 问你的助手:
- “给我看看图书馆财务中AAPL的最后5行”
- “在更新交易品种之前创建财务快照”
- “列出符号ES_intraday的版本”
安装
选择一个:
# Recommended
uvx arcticdb-mcp
# Or
pipx install arcticdb-mcp
# Or
pip install arcticdb-mcpPython要求: >=3.9
配置
集 ARCTICDB_URI 在MCP客户端配置或环境中。
URI示例
- 本地LMDB(Linux/macOS):
lmdb:///path/to/db - 本地LMDB(Windows):
lmdb://C:/path/to/db - AWS S3:
s3://s3.amazonaws.com:bucket?region=us-east-1&access=KEY&secret=SECRET - Azure Blob:
azure://AccountName=X;AccountKey=Y;Container=Z - S3兼容(MinIO等):
s3://your-endpoint:bucket?access=KEY&secret=SECRET
您还可以使用 .env 文件:
ARCTICDB_URI=lmdb:///path/to/db运行模式
stdio(默认)
这是桌面MCP客户端使用的默认模式。
ARCTICDB_URI=lmdb:///path/to/db python -m arcticdb_mcpHTTP/SSE
集 ARCTICDB_MCP_PORT 要在HTTP/SSE上运行:
ARCTICDB_URI=lmdb:///path/to/db ARCTICDB_MCP_PORT=8000 python -m arcticdb_mcp端点:
http://localhost:8000/sse工具
当前服务器公开了48个工具。
北极与图书馆
| 工具 | 文件 | 它的作用 |
|---|---|---|
get_uri | arcticdb_mcp/tools/arctic_tools.py | 返回此MCP服务器连接使用的ArcticDB URI。 |
describe | arcticdb_mcp/tools/arctic_tools.py | 返回ArcticDB存储的简明摘要。 |
modify_library_option | arcticdb_mcp/tools/arctic_tools.py | 修改可配置库选项。 |
list_libraries | arcticdb_mcp/tools/library_tools.py | 列出Arctic实例中的所有库。 |
create_library | arcticdb_mcp/tools/library_tools.py | 使用给定名称创建新库。 |
delete_library | arcticdb_mcp/tools/library_tools.py | 永久删除库及其所有基础数据。 |
library_exists | arcticdb_mcp/tools/library_tools.py | 检查是否存在具有给定名称的库。 |
get_library | arcticdb_mcp/tools/library_tools.py | 返回存储在库中的符号的名称和完整列表。 |
get_library_options | arcticdb_mcp/tools/maintenance_tools.py | 返回非企业库选项。 |
get_enterprise_options | arcticdb_mcp/tools/maintenance_tools.py | 返回企业库选项。 |
符号
| 工具 | 文件 | 它的作用 |
|---|---|---|
list_symbols | arcticdb_mcp/tools/symbol_tools.py | 列出存储在给定库中的所有符号名称。 |
symbol_exists | arcticdb_mcp/tools/symbol_tools.py | 检查给定库中是否存在符号。 |
read_symbol | arcticdb_mcp/tools/symbol_tools.py | 将符号的完整数据作为包含索引的行记录读取。 |
head_symbol | arcticdb_mcp/tools/symbol_tools.py | 返回第一个 n 符号的行数(默认值为5)。 |
tail_symbol | arcticdb_mcp/tools/symbol_tools.py | 返回最后一个 n 符号的行数(默认值为5)。 |
write_symbol | arcticdb_mcp/tools/symbol_tools.py | 将数据写入符号,创建新版本。 |
append_symbol | arcticdb_mcp/tools/symbol_tools.py | 将行附加到现有符号,创建新版本。 |
update_symbol | arcticdb_mcp/tools/symbol_tools.py | 更新时间序列符号的日期范围,创建新版本。 |
delete_symbol | arcticdb_mcp/tools/symbol_tools.py | 从库中删除符号及其所有版本。 |
delete_data_in_range | arcticdb_mcp/tools/symbol_tools.py | 删除时间序列符号中日期范围内的行,创建新版本。 |
get_symbol_info | arcticdb_mcp/tools/symbol_tools.py | 返回符号的架构、行数、日期范围和元数据摘要。 |
list_versions | arcticdb_mcp/tools/symbol_tools.py | 列出带有版本号和写入时间戳的符号的所有版本。 |
read_metadata | arcticdb_mcp/tools/symbol_tools.py | 只读符号的元数据,不加载其数据。 |
write_metadata | arcticdb_mcp/tools/symbol_tools.py | 更新符号的元数据,而不修改其数据。 |
批量操作
| 工具 | 文件 | 它的作用 |
|---|---|---|
write_batch | arcticdb_mcp/tools/batch_tools.py | 在一次通话中写下多个符号。 |
append_batch | arcticdb_mcp/tools/batch_tools.py | 在一次调用中追加多个符号。 |
update_batch | arcticdb_mcp/tools/batch_tools.py | 在一次通话中更新多个符号。 |
delete_batch | arcticdb_mcp/tools/batch_tools.py | 在一次调用中删除多个符号或符号版本。 |
read_batch | arcticdb_mcp/tools/batch_tools.py | 在一次通话中读取多个符号。 |
read_metadata_batch | arcticdb_mcp/tools/batch_tools.py | 在一次调用中读取多个符号的元数据。 |
get_description_batch | arcticdb_mcp/tools/batch_tools.py | 在一次调用中获取多个符号的模式/描述。 |
write_metadata_batch | arcticdb_mcp/tools/batch_tools.py | 在一次调用中为多个符号写入元数据。 |
write_pickle | arcticdb_mcp/tools/batch_tools.py | 将任意pickle可序列化数据写入符号。 |
write_pickle_batch | arcticdb_mcp/tools/batch_tools.py | 在一次调用中编写多个pickle可序列化有效负载。 |
快照
| 工具 | 文件 | 它的作用 |
|---|---|---|
create_snapshot | arcticdb_mcp/tools/snapshot_tools.py | 创建当前库状态的命名快照。 |
list_snapshots | arcticdb_mcp/tools/snapshot_tools.py | 列出库中所有快照的名称。 |
delete_snapshot | arcticdb_mcp/tools/snapshot_tools.py | 从库中删除命名快照。 |
read_symbol_from_snapshot | arcticdb_mcp/tools/snapshot_tools.py | 读取创建快照时存在的符号。 |
查询助手
| 工具 | 文件 | 它的作用 |
|---|---|---|
query_filter | arcticdb_mcp/tools/query_tools.py | 使用条件筛选行。 |
query_filter_isin | arcticdb_mcp/tools/query_tools.py | 筛选列表中列值所在的行。 |
query_groupby | arcticdb_mcp/tools/query_tools.py | 按列分组并聚合。 |
query_date_range | arcticdb_mcp/tools/query_tools.py | 按日期时间索引符号的日期范围筛选行。 |
query_resample | arcticdb_mcp/tools/query_tools.py | 对日期时间索引符号重新采样并聚合。 |
维护
| 工具 | 文件 | 它的作用 |
|---|---|---|
reload_symbol_list | arcticdb_mcp/tools/maintenance_tools.py | 强制重新加载库的符号列表缓存。 |
compact_symbol_list | arcticdb_mcp/tools/maintenance_tools.py | 将符号列表缓存压缩到存储器中的单个键中。 |
is_symbol_fragmented | arcticdb_mcp/tools/maintenance_tools.py | 检查压缩是否会减少符号的段数。 |
defragment_symbol_data | arcticdb_mcp/tools/maintenance_tools.py | 通过压缩碎片化的行切片段来对符号数据进行碎片化。 |
prune_previous_versions | arcticdb_mcp/tools/maintenance_tools.py | 删除除最新版本外的非快照符号版本。 |
示例提示
- “阅读图书馆财务中的NVDA符号”
- “过滤价格>500且数量>=1000的NVDA”
- “将ES_intraday重新采样至5分钟,并计算总价平均值、体积总和”
- “将元数据所有者=研究写入符号ES_intraday”
- “删除2024年1月1日至2024年01月5日ES_intraday范围内的数据”
发展
git clone https://github.com/YMuskrat/arcticdb-mcp
cd arcticdb-mcp
pip install -e .在本地运行:
ARCTICDB_URI=lmdb:///path/to/db python -m arcticdb_mcpMCP检验员测试:
ARCTICDB_URI=lmdb:///tmp/test_db npx @modelcontextprotocol/inspector python -m arcticdb_mcp社区待办事项列表
ArcticDB的这些功能有意对贡献者开放:
stagefinalize_staged_datasort_and_finalize_staged_datadelete_staged_dataget_staged_symbolsread_batch_and_joinadmin_tools
贡献
看 贡献.md.
许可证
麻省理工学院
