
这是一个使用Node.js实现的MCP(模型上下文协议)服务器,通过w3命令行接口(@web3-storage/w3cli)与storacha.network平台进行交互。
该服务器使语言模型🤖和其他MCP客户端能够通过无缝封装w3命令来管理storacha.network空间、上传/下载数据、管理委托,并执行各种其他任务。
w3CLI以实现与storacha.network的原生集成。w3功能的MCP工具:
w3_login, w3_reset, w3_account_ls(用于检查授权)w3_space_ls, w3_space_use, w3_space_info, w3_space_add, w3_space_provision(注意:由于交互式提示,必须手动运行w3_space_create)w3_up, w3_ls, w3_rmw3_open(生成w3s.link URL)w3_delegation_create, w3_delegation_ls, w3_delegation_revoke, w3_proof_add, w3_proof_lsw3_key_create, w3_bridge_generate_tokensw3 can ...): Blob, CAR, 上传, 索引, 访问声明, Filecoin信息管理w3_plan_get, w3_coupon_create, w3_usage_reportnode -v)。w3 CLI: 服务器直接执行w3命令。确保全局安装并配置@web3-storage/w3cli:
npm install -g @web3-storage/w3cli
w3 login <your-email@example.com>
# 按照电子邮件验证步骤操作
w3_login工具需要设置W3_LOGIN_EMAIL环境变量为与w3 login相同的电子邮件地址。代码库组织如下:
src/
├── index.ts # 主服务器入口点,MCP设置,请求路由
├── schemas.ts # 定义每个工具输入参数的Zod模式
├── tool_handlers.ts # 每个MCP工具的实现逻辑
├── utils.ts # 辅助函数(例如,运行w3命令,解析JSON)
└── utils/
└── logger.ts # 基本日志配置
此服务器可以与任何兼容MCP的客户端一起使用。您需要配置您的客户端连接到此服务器。
假设已满足npm和先决条件。
{
"mcpServers": {
"ipfs": {
"command": "npx",
"args": ["-y", "mcp-ipfs"],
"env": {
"W3_LOGIN_EMAIL": "your-email@example.com"
}
}
}
}
首先构建镜像(参见构建部分)或使用预构建的镜像alexbakers/mcp-ipfs。
{
"mcpServers": {
"mcp-ipfs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/path/to/your/project:/path/to/your/project",
"-e",
"W3_LOGIN_EMAIL",
"alexbakers/mcp-ipfs"
],
"env": {
"W3_LOGIN_EMAIL": "your-email@example.com"
}
}
}
}
多个w3命令需要绝对文件系统路径(例如,w3_up, w3_delegation_create --output, w3_proof_add, w3_can_blob_add, w3_can_store_add)。
-v标志将相关主机目录挂载到容器中(例如,-v /Users/me/project:/Users/me/project),然后在工具参数中使用容器路径(例如,/Users/me/project/my_file.txt)。克隆仓库并安装依赖项:
git clone https://github.com/alexbakers/mcp-ipfs.git
cd mcp-ipfs
npm install
构建TypeScript代码:
npm run build
然后可以直接运行服务器:
# 确保环境中有设置W3_LOGIN_EMAIL
export W3_LOGIN_EMAIL="your-email@example.com"
node dist/index.js
或者发布它(如果您有权限):
npm publish
构建Docker镜像:
# 在本地构建(替换为您自己的用户名/仓库和所需标签)
docker build -t alexbakers/mcp-ipfs .
此MCP服务器根据MIT许可证发布。详情请参阅LICENSE文件。