Ipfs Toolkit

io.tkllabs.bh.mcp-servers由 mcp-servers.bh.tkllabs.io 发布官方发布者v1.0.1更新于 Oct 24, 2026

Store, retrieve, and pin encrypted files on IPFS via MCP tools for AI agents and workflows

发布方自己的服务:Ethereum Toolkit

已验证Streamable HTTP可网页运行云端与基础设施文件与存储

概览

AI 生成的概览

一个远程 MCP 服务器,让助手通过 teckel 账户在 IPFS 上上传、列出、固定、取回、发布和删除文件。

可以做什么
上传文件或 base64 数据到 IPFS,可选择加密,并为列表设置昵称,内容会按服务商条款预扫描。列出账户文件,可按昵称搜索、固定状态、加密状态和内容类型筛选。按昵称搜索固定或取消固定文件,或按 CID 固定单个文件。按 CID 取回文件内容,若已加密则自动解密。将文件发布到服务商 Web 服务器并获得可浏览的链接。按昵称搜索或按 CID 从服务商节点和账户清单中删除文件。
适用场景
适合让助手代为在 IPFS 上归档、分享或固定文件,或取回此前通过同一服务商上传的文件。适用于希望获得托管式固定和公开链接、又不想自行运行 IPFS 节点的工作流。
运行要求
远程 streamable HTTP 端点,无需本地安装包。需要一个在 teckel App 中为以太坊账户生成的 API key,以 Bearer token 形式放在 Authorization 请求头中。需要能访问服务商端点的网络。
安装前请注意
调用会消耗在 App 中购买的 teckel 积分,且 4xx 错误仍会收取一次基础调用费。上传、固定、取消固定和删除会改变账户状态;删除只影响服务商节点,不影响更广泛的 IPFS 网络。上传内容会被预扫描,可能被拒绝,关联的钱包地址可能被列入黑名单。加密密钥由 API key 派生,而服务商知晓该 key,因此并非端到端加密;更换 key 会使此前加密的内容无法取回。IPFS 是公开网络。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ipfs Toolkit,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.tkllabs.bh.mcp-servers%2Fipfs-toolkit/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "ipfs-toolkit": {
      "type": "http",
      "url": "https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

ipfs-toolkit

Interplanetary File System (IPFS) MCP toolkit

How to Use the teckel Toolkits

First, download and install the teckel App.

[Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917]

[GetItOnGooglePlay_Badge_Web_color_English]

Next, generate an API key using the teckel App.

Do the following:

  1. Navigate to the Accounts page by tapping on the wallet icon in the upper right corner of the App home screen. Access the API Key Manager for the created or imported Ethereum Account by tapping “Manage API Key” on the Accounts page.

  2. Use the API key when making calls to the endpoints. All the available endpoints are available via the teckel App, incorporating the actual API key for the given Ethereum Account.

  3. For illustrative purposes, we will use the following fake key d1e12345-c234-45a6-9b76-1234567891ff in the examples presented below. You would substitute your actual API key in place of this fake key.

Next, decide if you are using the MCP servers or RESTful (API) to access the tools.

Using the MCP Servers

Configure your MCP client-of-choice

Whatever the client, the configuration is essentially the same. Namely, provide the client with the MCP server endpoint and access credentials. These are typically in the form of a configuration JSON snippet, using your API key as the “Bearer” token in the “Authorization” tag. For example, here is the precise configuration for use with the Cursor desktop app (navigate within the Cursor app to the Cursor Settings -> Tools & MCP -> + New MCP server and enter these details using your actual teckel API key to replace this fake one).

MCP JSON configuration (example for use with Cursor)

{ "mcpServers": {        "teckel-ipfs-toolkit": {      "url": "https://mcp-servers.bh.tkllabs.io:9780/ipfs-mcp",      "headers": {        "Authorization": "Bearer d1e12345-c234-45a6-9b76-1234567891ff"      }    }     }}

NOTE: This configuration assumes the HTTP(streamable) protocol. If your client requires the older (now legacy) SSE protocol, replace “ipfs-mcp” with “ipfs-sse”.

Using the RESTful API Servers

The benefit of using the MCP servers is that the connected LLMs can parse the natural language in the user prompts, populate the required parameters for calling the toolbox API functions, then likewise unravel the returned JSON structure into natural language for presentation to the user. However, if you wish to utilise the teckel toolkits at a lower level (e.g., in your own app), you can call the functions directly using the RESTful (POST) API protocols. You are then responsible for populating the input parameters, and handling the returned JSON output. All methods called via RESTful web services must be "awaited": there is no fire-and-forget (with future polling for task completion etc).

Pricing

Pricing (via teckel credits purchased within the teckel App) for usage of teckel IPFS services can be found at https://teckel.io/pricing/

Rate Limiting

All MCP/API calls are subject to rate-limiting per API key. The thresholds are not published, but if a given API key has exceeded the rate limit, a 429 error code will be returned on the given call.

Errors

If the MCP/API call fails due to user error resulting in a 4xx error code, the user is charged one Base Call Fee (see https://teckel.io/ai-mcp-services/). If the API call fails due to server error resulting in a 5xx error code, the user is not charged. If the given call is part of a cascade of nested calls, the above rules apply to the “outer” call: In other words, if the outer call fails with a 4xx error code, the user is charged one Base Call Fee (for the failed outer call), and there will be no charge for any of the cascaded calls (whether they succeeded or not). Likewise, if the outer call fails with a 5xx error code, the user is not charged at all (even if the cascaded calls succeed).

Encryption

IPFS is a public service and all content is in principle available to anyone. Therefore if you deem your content to be private, you should make sure it is encrypted before uploading to IPFS. Teckel facilitates such encryption using your teckel API key to construct the encryption key. However, this does not provide end-to-end encryption of your content because your API key is known to the teckel servers. Instead, if you require end-to-end encryption, whereby only you (and not the teckel servers etc) can ever retrieve your content, you must first encrypt your files offline using your own chosen method, before uploading to IPFS via teckel.

Content moderation

To play our part in keeping the internet clean, teckel pre-scans all uploaded content for malware and inappropriate content (as per the teckel terms). Any content failing the pre-scan is rejected. The ethereum wallet address associated with the API key used for the attempted upload may be blacklisted at teckel's sole discretion.

API Key Security

Should you have concerns that your API key has been compromised (and someone else may be consuming your teckel credits by using your key), simply replace the key via the API Key Manager → Replace API key in the teckel App. The old key will then be immediately disabled. IMPORTANT: if you change your API key, any IPFS content previously encrypted via teckel will no longer be retrievable since the API key is used for encryption. Before you change your API key, make sure you have retrieved (and unencrypted) your previous IPFS data and stored the unencrypted versions offline.

teckel App

The IPFS toolkit functionality is wholly compatible with the IPFS functionality of the teckel app. This means that IPFS content uploaded via the teckel App can be accessed via the IPFS toolkit, and vice versa.

teckel MCP Server — IPFS API Reference

Base URL: https://mcp-servers.bh.tkllabs.io:9780


Authentication

All endpoints require a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Endpoint Index

MethodPathMCP Tool NameDescription
POST/get_ipfs_content_for_apikeylist_ipfs_filesList IPFS files for account
POST/remove_ipfs_files_from_accountremove_ipfs_filesRemove multiple IPFS files by nickname search
POST/pin_ipfs_files_for_apikeypin_ipfs_filesPin multiple IPFS files by nickname search
POST/unpin_ipfs_files_for_apikeyunpin_ipfs_filesUnpin multiple IPFS files by nickname search
POST/pin_ipfs_cid_for_apikeypin_ipfs_cidPin a single IPFS file by CID
POST/remove_ipfs_cid_from_accountremove_ipfs_cid_from_accountRemove a single IPFS file by CID
POST/publish_ipfs_file_to_webserverpublish_ipfs_file_to_webserverPublish an IPFS file to the teckel web server
POST/upload_sender_file_to_ipfs_for_apikeyupload_file_to_ipfsUpload a file to IPFS
POST/upload_sender_base64_to_ipfs_for_apikeyupload_base64_file_to_ipfsUpload base64-encoded file to IPFS
POST/retrieve_ipfs_file_for_apikeyretrieve_ipfs_fileRetrieve an IPFS file by CID

Endpoints


POST /get_ipfs_content_for_apikey

List IPFS files for the account associated with the API key, with optional filtering by nickname, pinned status, encrypted state, and content type.

MCP tool: list_ipfs_files — List IPFS files (selected on nickname via fuzzy search_string) for the account corresponding to the teckel API key used in the call.

Parameters

NameTypeRequiredDefaultDescription
search_stringstringNo""Search for this string in the file nickname. Leave blank to return all.
pinned_stateintegerNo00 = all entries; 1 = pinned only; 2 = unpinned only
encrypted_stateintegerNo00 = all entries; 1 = encrypted only; 2 = unencrypted only
content_typestringNo""Filter by content type, e.g. image, audio, video. Leave blank to ignore.
bash
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

Unpin and remove IPFS files (selected by fuzzy nickname search) from the teckel IPFS node and account inventory.

Note: This only removes content from the teckel node and inventory. The content may still exist on the decentralised IPFS network.

MCP tool: remove_ipfs_files — Unpin and remove the IPFS files (selected on nickname via fuzzy search_string) from the teckel IPFS node and from the wallet account, for the account corresponding to the teckel API key used in the call. Note: this only removes the content from the teckel node and inventory. It may still exist on the IPFS decentralised network.

Parameters

NameTypeRequiredDefaultDescription
search_stringstringNo""Search for this string in the file nickname. Leave blank to match all.
pinned_stateintegerNo00 = all entries; 1 = pinned only; 2 = unpinned only
encrypted_stateintegerNo00 = all entries; 1 = encrypted only; 2 = unencrypted only
content_typestringNo""Filter by content type, e.g. image, audio, video. Leave blank to ignore.
bash
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

Pin IPFS files (selected by fuzzy nickname search) on the teckel IPFS node. Pinning prevents automatic garbage collection of the content.

MCP tool: pin_ipfs_files — Pin the IPFS files (selected on nickname via fuzzy search_string) on to the teckel IPFS node for the account corresponding to the teckel API key used in the call. Pinning prevents automatic deletion of the content from the IPFS node.

Parameters

NameTypeRequiredDefaultDescription
search_stringstringNo""Search for this string in the file nickname. Leave blank to match all.
pinned_stateintegerNo00 = all entries; 1 = pinned only; 2 = unpinned only
encrypted_stateintegerNo00 = all entries; 1 = encrypted only; 2 = unencrypted only
content_typestringNo""Filter by content type, e.g. image, audio, video. Leave blank to ignore.
bash
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

Unpin IPFS files (selected by fuzzy nickname search) from the teckel IPFS node. Unpinned files are eligible for automatic garbage collection.

MCP tool: unpin_ipfs_files — Unpin the IPFS files (selected on nickname via fuzzy search_string) from the teckel IPFS node for the account corresponding to the teckel API key used in the call. Unpinning allows automatic deletion of the content from the IPFS node.

Parameters

NameTypeRequiredDefaultDescription
search_stringstringNo""Search for this string in the file nickname. Leave blank to match all.
pinned_stateintegerNo00 = all entries; 1 = pinned only; 2 = unpinned only
encrypted_stateintegerNo00 = all entries; 1 = encrypted only; 2 = unencrypted only
content_typestringNo""Filter by content type, e.g. image, audio, video. Leave blank to ignore.
bash
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

Pin the individual IPFS entity identified by its CID on the teckel IPFS node. Pinning prevents automatic deletion.

MCP tool: pin_ipfs_cid — Pin the individual entity identified by its IPFS CID on to the teckel IPFS node for the account corresponding to the teckel API key used in the call. Pinning prevents automatic deletion of the content from the IPFS node.

Parameters

NameTypeRequiredDefaultDescription
cidstringNo""IPFS content identifier of the file to pin
bash
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

Unpin and remove the individual IPFS entity identified by its CID from the teckel IPFS node and account inventory.

Note: This only removes content from the teckel node and inventory. The content may still exist on the decentralised IPFS network.

MCP tool: remove_ipfs_cid_from_account — Unpin and remove the individual entity identified by its IPFS CID from the teckel IPFS node and from the wallet account, for the account corresponding to the teckel API key used in the call. Note: this only removes the content from the teckel node and inventory. It may still exist on the IPFS decentralised network.

Parameters

NameTypeRequiredDefaultDescription
cidstringNo""IPFS content identifier of the file to remove
bash
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

Retrieve an IPFS file by CID from the teckel node and publish it on the teckel web server, applying decryption if necessary. Returns a browseable public URL.

MCP tool: publish_ipfs_file_to_webserver — Retrieve the IPFS file, identified by its IPFS CID, from the teckel IPFS node, and publish it on the teckel web server, applying decryption if necessary, for the account corresponding to the teckel API key used in the call, returning the browseable URL.

Parameters

NameTypeRequiredDefaultDescription
cidstringNo""IPFS content identifier of the file to publish
bash
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

Upload a file to the teckel IPFS node for the account associated with the API key. The content is pre-scanned for compliance with teckel terms before being accepted.

MCP tool: upload_file_to_ipfs — Upload file contents to the teckel IPFS node for the account corresponding to the teckel API key used in the call. The content will be pre-scanned for compatibility with the teckel terms and will be rejected if not compliant.

Parameters

NameInTypeRequiredDefaultDescription
filemultipart form bodyfileYes—File to upload
nicknameOnIPFSquerystringNo""Nickname for the IPFS listing. Auto-generated if blank.
doEncryptOnIPFSquerystringNo"false"Apply encryption before uploading. true or false.
bash
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

Upload base64-encoded file data to the teckel IPFS node for the account associated with the API key. The content is pre-scanned for compliance with teckel terms before being accepted.

MCP tool: upload_base64_file_to_ipfs — Upload base64-encoded file contents to the teckel IPFS node for the account corresponding to the teckel API key used in the call. The content will be pre-scanned for compatibility with the teckel terms and will be rejected if not compliant.

Parameters

NameTypeRequiredDefaultDescription
base64_datastringNo""Base64-encoded file data
nicknameOnIPFSstringNo""Nickname for the IPFS listing. Auto-generated if blank.
doEncryptOnIPFSstringNo"false"Apply encryption before uploading. true or false.
bash
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

Retrieve the contents of an IPFS file by CID from the account inventory. Automatically decrypts if the file is encrypted. Only files originally posted to IPFS via teckel are supported.

MCP tool: retrieve_ipfs_file — Retrieve the contents of the IPFS file identified by the provided CID, from the inventory of the account corresponding to the teckel API key used in the call. Will automatically decrypt if encrypted. Only files originally posted to IPFS via teckel are supported i.e., not generic (non-teckel origin) IPFS content.

Parameters

NameTypeRequiredDefaultDescription
cidstringNo""IPFS content identifier of the file to retrieve
bash
curl -X POST "https://mcp-servers.bh.tkllabs.io:9780/retrieve_ipfs_file_for_apikey?cid=QmExampleCID123" \  -H "Authorization: Bearer YOUR_API_KEY"

来源:README.md,提交 7dc3e96

工具

0
该服务器需要 API 密钥等凭据,因此 SourceWeft 无法在没有凭据的情况下读取其工具,也未收录。

版本历史

1
  1. v1.0.1最新Sep 16, 2026

评分

已满足适用检查项的 75%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Tkllabs 集成