Storacha MCP 存储服务器是一个用于热存储的模型上下文协议(MCP)服务器实现,允许AI应用程序通过标准化接口存储和检索文件。它利用IPFS和内容标识符(CIDs)实现无信任、去中心化的数据交换,确保数据主权、可验证性和与代理框架及AI系统的无缝集成。
今天就开始您的去中心化存储之旅!
只需几个简单的步骤即可开始使用Storacha MCP存储服务器。
克隆仓库
git clone https://github.com/storacha/mcp-storage-server.git && cd mcp-storage-server
安装依赖
pnpm install
生成密钥与委托
安装CLI
npm install -g @web3-storage/w3cli
登录Storacha
w3 login
输出:
? 如何登录?
通过电子邮件
❯ 通过GitHub
选择通过GitHub并使用您的GitHub账户进行身份验证。
创建一个空间
w3 space create <your_space_name>
_替换 <your_space_name> 为您新空间的名字。:warning: 请务必保存恢复密钥,以便需要时可以从其他设备访问您的空间。
创建私钥
w3 key create
输出:
AgentId: did:key:z6MkhMZRW2aoJ6BQwkpMSJu68Jgqkz1FTpr1p69cpnN43YWG
PrivateKey: LMgCYLkvOc8Sm0mOL4cWFLxsWP0ZPEYrLxcQqsV93/s5RLje0BKx05muAse1Hkvh+sxUW38OcHtpiN1zxfpTJ4ht4jxV0=
设置代理ID并创建委托
w3 delegation create <agent_id> \
--can 'store/add' \
--can 'filecoin/offer' \
--can 'upload/add' \
--can 'space/blob/add' \
--can 'space/index/add' --base64
替换 <agent_id> 为上一步中的AgentId。这授予代理权限将文件存储到最近创建的空间中。
配置MCP客户端
接下来,配置您的MCP客户端(如Cursor)以使用此服务器。大多数MCP客户端将配置存储为以下格式的JSON:
{
"mcpServers": {
"storacha-storage-server": {
"command": "node",
"args": ["./dist/index.js"],
"env": {
// 服务器支持 `stdio`, `sse`, 和 `rest` 模式,默认是 `stdio`。
"MCP_TRANSPORT_MODE": "stdio",
// 被授权将数据存储到空间中的Storacha代理私钥。
"PRIVATE_KEY": "<agent_private_key>",
// 证明代理被允许存储数据的base64编码委托。如果未设置,则必须为每次上传请求提供。
"DELEGATION": "<base64_delegation>",
},
"shell": true,
"cwd": "./",
},
},
}
替换 <agent_private_key> 为第3步中创建的PrivateKey,然后替换 <base6_64_delegation> 为第3步中创建的委托。
Storacha MCP存储服务器支持REST传输模式,该模式兼容MCP.so云托管。要使用REST模式:
{
"mcpServers": {
"storacha-storage-server-rest": {
"url": "http://localhost:3001/rest",
},
},
}
更多关于部署到MCP.so云的信息,请参阅集成指南。
:warning: 配置MCP客户端有多种方式,请阅读集成指南获取更多信息。
Storacha MCP存储服务器提供了以下工具供AI系统与去中心化存储网络交互。
将文件上传到Storacha网络。文件必须作为包含扩展名的base64编码字符串提供,用于MIME类型检测。
interface UploadParams {
// base64编码的文件内容
file: string;
// 包含扩展名的文件名,用于MIME类型检测
name: string;
// 可选:是否发布到Filecoin(默认:false)
publishToFilecoin?: boolean;
// 可选:自定义委托证明
delegation?: string;
// 可选:自定义网关URL
gatewayUrl?: string;
}
从Storacha网络检索文件。支持的文件路径格式:CID/文件名,/ipfs/CID/文件名或ipfs://CID/文件名。
interface RetrieveParams {
// 路径格式:CID/文件名,/ipfs/CID/文件名,或ipfs://CID/文件名
filepath: string;
// 可选:是否使用多格式base64编码
useMultiformatBase64?: boolean;
}
返回从私钥存储配置加载的Storacha代理的DIDKey。
interface IdentityParams {
// 不需要参数
}
有关详细代码示例和不同的集成模式(SDK、Docker等),请参阅集成指南。
MIT 或 Apache 2 许可证
如有问题,请访问Storacha支持页面或在此仓库中打开一个issue。