关于 Teckel Ipfs Mcp Toolkit
Teckel Ipfs Mcp Toolkit 将 IPFS 文件操作封装为 MCP 工具,面向需要为 Agent 或自动化工作流接入分布式存储的用户。它支持文件上传、检索和管理,并可按需加密。
主要功能
- 01上传文件或 Base64 内容
- 02按 CID 检索文件
- 03列出并筛选账户文件
- 04固定、取消固定及移除文件
- 05上传前扫描恶意内容
- 06支持加密存储
适用场景
- 01让 Agent 将生成内容保存到 IPFS
- 02按 CID 检索已存储文件
- 03筛选、固定或清理账户文件
MCP 相关
通过带 Bearer API 密钥的远程 MCP 服务提供 IPFS 工具,也可使用 REST API。MCP 客户端连接时需配置服务端点和凭据。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcpclaude mcp add --transport http ipfs-toolkit https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp{"mcpServers":{"ipfs-toolkit":{"type":"http","url":"https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp"}}}在 Cursor 中打开{"servers":{"ipfs-toolkit":{"type":"http","url":"https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp"}}}在 VS Code 中打开{"mcpServers":{"ipfs-toolkit":{"type":"http","url":"https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp"}}}{"mcpServers":{"ipfs-toolkit":{"serverUrl":"https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp需要授权https://mcp-servers.bh.tkllabs.io:9780/ipfs-sse需要授权工具
10| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| search_string | string | 否 | 在昵称中搜索此字符串。留空则忽略。 |
| pinned_state | integer | 否 | 按固定状态筛选;如果为 0(默认值),则返回所有条目,不论其固定状态。如果为 1,则仅返回已固定的条目。如果为 2,则仅返回未固定的条目。 |
| encrypted_state | integer | 否 | 按加密状态筛选;如果为 0(默认值),则返回所有条目,不论其加密状态。如果为 1,则仅返回已加密的条目。如果为 2,则仅返回未加密的条目。 |
| content_type | string | 否 | 按内容类型筛选,例如 image、audio 等。留空则忽略。 |
| apikey | string | 否 |
详细介绍
ipfs-toolkit
星际文件系统(IPFS)MCP 工具包
如何使用 teckel 工具包
首先,下载并安装 teckel App。
接下来,使用 teckel App 生成 API 密钥。
按以下步骤操作:
-
在 App 主屏幕右上角点按钱包图标,进入 Accounts 页面。在 Accounts 页面点按“Manage API Key”,即可访问已创建或导入的 Ethereum 账户的 API 密钥管理器。
-
调用端点时使用 API 密钥。所有可用端点都可通过 teckel App 访问,其中会包含相应 Ethereum 账户的实际 API 密钥。
-
为便于说明,以下示例将使用虚构密钥 d1e12345-c234-45a6-9b76-1234567891ff。请将此虚构密钥替换为你的实际 API 密钥。
接下来,决定使用 MCP 服务还是 RESTful(API)来访问这些工具。
使用 MCP 服务
配置你选择的 MCP 客户端
无论使用哪种客户端,配置方式基本相同。也就是说,需要向客户端提供 MCP 服务端点和访问凭据。通常,这些内容会以配置 JSON 片段的形式提供,并将你的 API 密钥用作“Authorization”标签中的“Bearer”令牌。以下是用于 Cursor 桌面应用的具体配置示例(在 Cursor 应用中依次打开 Cursor Settings -> Tools & MCP -> + New MCP server,并填写这些信息,将示例中的虚构密钥替换为你的实际 teckel API 密钥)。
MCP JSON 配置(Cursor 使用示例)
{
"mcpServers": {
"teckel-ipfs-toolkit": {
"url": "https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp",
"headers": {
"Authorization": "Bearer d1e12345-c234-45a6-9b76-1234567891ff"
}
}
}
}
注意:此配置使用 HTTP(streamable)协议。如果你的客户端需要使用较旧(现已弃用)的 SSE 协议,请将“ipfs-mcp”替换为“ipfs-sse”。
使用 RESTful API 服务
使用 MCP 服务的好处是,连接的大模型可以解析用户提示词中的自然语言,填充调用工具箱 API 函数所需的参数,然后将返回的 JSON 结构转换为自然语言并呈现给用户。不过,如果你希望在更底层使用 teckel 工具包(例如在自己的应用中),可以直接通过 RESTful(POST)API 协议调用这些函数。此时,你需要负责填充输入参数并处理返回的 JSON 输出。通过 RESTful Web 服务调用的所有方法都必须使用“await”:不支持即发即弃的调用方式(例如之后再轮询任务是否完成)。
定价
在 teckel App 内购买的 teckel credits 可用于支付 teckel IPFS 服务费用,定价请参阅 https://teckel.io/pricing/
速率限制
所有 MCP/API 调用均受 API 密钥的速率限制。具体阈值尚未公布;如果某个 API 密钥超出速率限制,相关调用将返回 429 错误代码。
错误
如果 MCP/API 调用因用户错误而失败,并返回 4xx 错误代码,用户需支付一笔基础调用费用(参见 https://teckel.io/ai-mcp-services/)。如果 API 调用因服务器错误而失败,并返回 5xx 错误代码,用户无需付费。如果给定调用属于一系列嵌套调用,则上述规则适用于“外层”调用:换句话说,如果外层调用失败并返回 4xx 错误代码,用户需支付一笔基础调用费用(针对失败的外层调用),而级联调用均不收费(无论是否成功)。同样,如果外层调用失败并返回 5xx 错误代码,用户完全无需付费(即使级联调用成功)。
加密
IPFS 是一项公共服务,原则上任何人都可以访问其中的所有内容。因此,如果你认为内容属于私密内容,应确保在上传到 IPFS 之前对其进行加密。teckel 使用你的 teckel API 密钥构建加密密钥,以便进行此类加密。不过,这并不能为你的内容提供端到端加密,因为 teckel 服务器知道你的 API 密钥。如果你需要端到端加密,也就是说,只有你(而不是 teckel 服务器等)能够检索你的内容,则必须先使用自己选择的方法在本地加密文件,然后再通过 teckel 上传到 IPFS。
内容审核
为尽一份力,让互联网保持清朗,teckel 会在上传内容时预先扫描所有内容,检查是否包含恶意软件或不当内容(依据 teckel 条款)。未通过预扫描的内容将被拒绝。teckel 可自行决定是否将与上传尝试所用 API 密钥关联的 ethereum 钱包地址列入黑名单。
API 密钥安全
如果你担心 API 密钥已泄露(并且有人可能正在使用你的密钥消耗 teckel 额度),只需在 teckel App 中通过 API Key Manager → Replace API key 更换密钥。旧密钥随后将立即失效。重要提示:如果更改 API 密钥,此前通过 teckel 加密的任何 IPFS 内容都将无法再检索,因为加密时使用了该 API 密钥。更改 API 密钥之前,请确保已检索(并解密)以前的 IPFS 数据,并将未加密的版本存储在本地。
teckel App
IPFS 工具包的功能与 teckel App 的 IPFS 功能完全兼容。这意味着,通过 teckel App 上传的 IPFS 内容可以通过 IPFS 工具包访问,反之亦然。
teckel MCP 服务 — IPFS API 参考
基础 URL: https://mcp-servers.bh.tkllabs.io:9780
身份验证
所有端点都需要在 Authorization 标头中提供 Bearer 令牌:
Authorization: Bearer YOUR_API_KEY
端点索引
| 方法 | 路径 | MCP 工具名称 | 描述 |
|---|---|---|---|
| POST | /get_ipfs_content_for_apikey | list_ipfs_files | 列出账户的 IPFS 文件 |
| POST | /remove_ipfs_files_from_account | remove_ipfs_files | 按昵称搜索并移除多个 IPFS 文件 |
| POST | /pin_ipfs_files_for_apikey | pin_ipfs_files | 按昵称搜索并固定多个 IPFS 文件 |
| POST | /unpin_ipfs_files_for_apikey | unpin_ipfs_files | 按昵称搜索并取消固定多个 IPFS 文件 |
| POST | /pin_ipfs_cid_for_apikey | pin_ipfs_cid | 按 CID 固定单个 IPFS 文件 |
| POST | /remove_ipfs_cid_from_account | remove_ipfs_cid_from_account | 按 CID 移除单个 IPFS 文件 |
| POST | /publish_ipfs_file_to_webserver | publish_ipfs_file_to_webserver | 将 IPFS 文件发布到 teckel 网络服务器 |
| POST | /upload_sender_file_to_ipfs_for_apikey | upload_file_to_ipfs | 将文件上传到 IPFS |
| POST | /upload_sender_base64_to_ipfs_for_apikey | upload_base64_file_to_ipfs | 将 Base64 编码的文件上传到 IPFS |
| POST | /retrieve_ipfs_file_for_apikey | retrieve_ipfs_file | 按 CID 检索 IPFS 文件 |
端点
POST /get_ipfs_content_for_apikey
列出与 API 密钥关联的账户中的 IPFS 文件,可按昵称、固定状态、加密状态和内容类型筛选。
MCP 工具: list_ipfs_files — 列出与调用中使用的 teckel API 密钥对应的账户中的 IPFS 文件(通过模糊 search_string 按昵称筛选)。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
search_string | string | 否 | "" | 在文件昵称中搜索此字符串。留空则返回全部文件。 |
pinned_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅固定条目;2 = 仅未固定条目 |
encrypted_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅加密条目;2 = 仅未加密条目 |
content_type | string | 否 | "" | 按内容类型筛选,例如 image、audio、video。留空则不筛选。 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/get_ipfs_content_for_apikey?search_string=my_video&pinned_state=0&encrypted_state=0&content_type=video" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /remove_ipfs_files_from_account
从 teckel IPFS 节点和账户文件清单中取消固定并移除 IPFS 文件(通过昵称模糊搜索选择)。
注意: 这只会从 teckel 节点和文件清单中移除内容。该内容仍可能存在于去中心化 IPFS 网络上。
MCP 工具: remove_ipfs_files — 从 teckel IPFS 节点和钱包账户中取消固定并移除 IPFS 文件(通过模糊 search_string 按昵称筛选),适用于与调用中使用的 teckel API 密钥对应的账户。注意:这只会从 teckel 节点和文件清单中移除内容。该内容仍可能存在于去中心化 IPFS 网络上。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
search_string | string | 否 | "" | 在文件昵称中搜索此字符串。留空则匹配全部文件。 |
pinned_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅固定条目;2 = 仅未固定条目 |
encrypted_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅加密条目;2 = 仅未加密条目 |
content_type | string | 否 | "" | 按内容类型筛选,例如 image、audio、video。留空则不筛选。 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/remove_ipfs_files_from_account?search_string=old_test_files&pinned_state=0&encrypted_state=0" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /pin_ipfs_files_for_apikey
在 teckel IPFS 节点上固定 IPFS 文件(通过昵称模糊搜索选择)。固定可防止内容被自动垃圾回收。
MCP 工具: pin_ipfs_files — 在 teckel IPFS 节点上固定 IPFS 文件(通过模糊 search_string 按昵称筛选),适用于与调用中使用的 teckel API 密钥对应的账户。固定可防止内容从 IPFS 节点中被自动删除。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
search_string | string | 否 | "" | 在文件昵称中搜索此字符串。留空则匹配全部文件。 |
pinned_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅固定条目;2 = 仅未固定条目 |
encrypted_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅加密条目;2 = 仅未加密条目 |
content_type | string | 否 | "" | 按内容类型筛选,例如 image、audio、video。留空则不筛选。 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/pin_ipfs_files_for_apikey?search_string=important_files&pinned_state=2" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /unpin_ipfs_files_for_apikey
从 teckel IPFS 节点取消固定 IPFS 文件(通过模糊昵称搜索选取)。取消固定的文件可由系统自动进行垃圾回收。
MCP 工具: unpin_ipfs_files — 从 teckel IPFS 节点中取消固定文件(通过模糊搜索字符串按昵称选取),适用于本次调用所用 teckel API 密钥对应的账户。取消固定后,系统可以自动从 IPFS 节点删除内容。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
search_string | string | 否 | "" | 在文件昵称中搜索此字符串。留空则匹配所有文件。 |
pinned_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅已固定;2 = 仅未固定 |
encrypted_state | integer | 否 | 0 | 0 = 所有条目;1 = 仅已加密;2 = 仅未加密 |
content_type | string | 否 | "" | 按内容类型筛选,例如 image、audio、video。留空则忽略此筛选条件。 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/unpin_ipfs_files_for_apikey?search_string=old_drafts&pinned_state=1" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /pin_ipfs_cid_for_apikey
在 teckel IPFS 节点上固定由 CID 标识的单个 IPFS 实体。固定可防止系统自动删除。
MCP 工具: pin_ipfs_cid — 在 teckel IPFS 节点上固定由 IPFS CID 标识的单个实体,适用于本次调用所用 teckel API 密钥对应的账户。固定可防止系统自动从 IPFS 节点删除内容。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
cid | string | 否 | "" | 要固定文件的 IPFS 内容标识符 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/pin_ipfs_cid_for_apikey?cid=QmExampleCID123" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /remove_ipfs_cid_from_account
从 teckel IPFS 节点和账户清单中取消固定并移除由 CID 标识的单个 IPFS 实体。
注意: 此操作只会从 teckel 节点和清单中移除内容。该内容可能仍存在于去中心化 IPFS 网络中。
MCP 工具: remove_ipfs_cid_from_account — 从 teckel IPFS 节点和钱包账户中取消固定并移除由 IPFS CID 标识的单个实体,适用于本次调用所用 teckel API 密钥对应的账户。注意:此操作只会从 teckel 节点和清单中移除内容。该内容可能仍存在于去中心化 IPFS 网络中。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
cid | string | 否 | "" | 要移除文件的 IPFS 内容标识符 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/remove_ipfs_cid_from_account?cid=QmExampleCID123" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /publish_ipfs_file_to_webserver
通过 CID 从 teckel 节点检索 IPFS 文件,并将其发布到 teckel Web 服务器;如有需要,会进行解密。返回可浏览的公共 URL。
MCP 工具: publish_ipfs_file_to_webserver — 通过 IPFS CID 从 teckel IPFS 节点检索 IPFS 文件,并将其发布到 teckel Web 服务器;如有需要,会进行解密。此操作适用于本次调用所用 teckel API 密钥对应的账户,并返回可浏览的 URL。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
cid | string | 否 | "" | 要发布文件的 IPFS 内容标识符 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/publish_ipfs_file_to_webserver?cid=QmExampleCID123" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /upload_sender_file_to_ipfs_for_apikey
将文件上传到与 API 密钥关联的账户的 teckel IPFS 节点。内容会预先扫描,以确保符合 teckel 条款,然后才会被接受。
MCP 工具: upload_file_to_ipfs — 将文件内容上传到本次调用所用 teckel API 密钥对应账户的 teckel IPFS 节点。内容会预先扫描,以检查是否符合 teckel 条款;如不符合,将被拒绝。
参数
| 名称 | 位置 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|---|
file | multipart 表单正文 | file | 是 | — | 要上传的文件 |
nicknameOnIPFS | query | string | 否 | "" | IPFS 列表项的昵称。留空时会自动生成。 |
doEncryptOnIPFS | query | string | 否 | "false" | 上传前是否加密。true 或 false。 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/upload_sender_file_to_ipfs_for_apikey?nicknameOnIPFS=my_document&doEncryptOnIPFS=false" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@/path/to/your/file.pdf"
POST /upload_sender_base64_to_ipfs_for_apikey
将 base64 编码的文件数据上传到与 API 密钥关联的账户的 teckel IPFS 节点。内容会预先扫描,以确保符合 teckel 条款,然后才会被接受。
MCP 工具: upload_base64_file_to_ipfs — 将 base64 编码的文件内容上传到本次调用所用 teckel API 密钥对应账户的 teckel IPFS 节点。内容会预先扫描,以检查是否符合 teckel 条款;如不符合,将被拒绝。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
base64_data | string | 否 | "" | Base64 编码的文件数据 |
nicknameOnIPFS | string | 否 | "" | IPFS 列表项的昵称。留空时会自动生成。 |
doEncryptOnIPFS | string | 否 | "false" | 上传前是否加密。true 或 false。 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/upload_sender_base64_to_ipfs_for_apikey?base64_data=SGVsbG8gV29ybGQ%3D&nicknameOnIPFS=my_file&doEncryptOnIPFS=false" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /retrieve_ipfs_file_for_apikey
根据 CID 从账户库存中检索 IPFS 文件的内容。如果文件已加密,会自动解密。仅支持最初通过 teckel 发布到 IPFS 的文件。
MCP 工具: retrieve_ipfs_file — 从本次调用所用 teckel API 密钥对应账户的库存中,检索所提供 CID 标识的 IPFS 文件内容。如果文件已加密,将自动解密。仅支持最初通过 teckel 发布到 IPFS 的文件,即不支持通用的(非 teckel 来源)IPFS 内容。
参数
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
cid | string | 否 | "" | 要检索文件的 IPFS 内容标识符 |
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/retrieve_ipfs_file_for_apikey?cid=QmExampleCID123" \
-H "Authorization: Bearer YOUR_API_KEY"
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。