@refueler/mcp-server
According to the provided server schema, this server currently lets clients discover Refueler Share service capabilities; most file-transfer actions promised in the README are either not exposed or still unavailable.
Query
refueler_capabilitiesto fetch current Refueler Share capabilities, rate card, and feature flags.Request
summary(default) orfulldetail level; in v1 both appear effectively identical.Inform or gate downstream logic on live supported features/server state before considering sends.
Use it freely without authentication and at no cost/spend.
Documented but not shown/enabled in the provided schema: refueler_quote, refueler_send_file, refueler_check_transfer, encrypted/local-BLAKE3 upload flows, passphrases, collections receipts, and the anonymous/Lightning refueler_receive rail.
Powers the identity rail's payment model: file transfers are paid for from a prepaid pool of Share credits that is Stripe-billed, with monthly allocation and metered overage handled through Stripe billing.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@refueler/mcp-serverprice sending quarterly-report.pdf to alice@example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@refueler/mcp-server
What this is
An MCP server that runs in your own infrastructure and gives an AI agent a
privacy-first file-transfer capability backed by Refueler Share. The server
handles local encryption, BLAKE3 chunk integrity, and upload orchestration;
the Refueler Worker relays the resulting ciphertext to R2 storage without
being able to read it. Four tools ship in v0.1: refueler_capabilities,
refueler_quote, refueler_send_file, and refueler_check_transfer.
Status: in development — not yet published to npm. The Refueler Worker moved to direct-to-R2 uploads (
initiate→ signed uploads →finalise);refueler_send_fileis being moved onto that path and cannot complete a transfer against production until it lands. This README will be updated when it does.
The identity rail — HMAC-authenticated, credit-pool-funded — is the first rail this server targets. The anonymous rail, which settles transfers over Lightning with no identity at all, gates on the B7 infrastructure milestone and is not in this release.
Related MCP server: @sequesign/mcp
Trust boundary
This is the section that matters. Read it once; it decides whether this product is right for your threat model.
What the server does in your infrastructure
Chunks and encrypts files locally using AES-256-GCM before anything leaves the process. The session key lives in the returned
share_urlfragment only — it is never transmitted to the Refueler Worker, never written to a log, never present in any request.Computes a BLAKE3 hash over each ciphertext chunk and a Merkle root over those hashes, and hands both to the Worker when the upload is finalised.
Holds your API credentials (
rfs_live_,rfs_sign_) locally, in your environment. They are used to sign HMAC-SHA256 requests outbound to the Refueler API. They never leave your infrastructure in any request payload.On the anonymous rail (B7): holds a local stack of blind-signed capability tokens. The balance is your local state — Refueler's server is blind to it.
What the Refueler Worker sees
Ciphertext chunks and their BLAKE3 hashes.
Byte counts, UUID, credential commitment, and expiry.
The declared Content-Type at the upload boundary, checked against an execution-capable denylist and not stored.
On the identity rail: your
rfs_live_handle and an optionaltransfer_refyou supply for your own attribution. No plaintext. No key. No passphrase.
What the Refueler Worker never sees
Plaintext bytes. The Worker is a blind byte-relay; it physically cannot produce your file content under compulsion because it never held the key.
The AES-256-GCM session key.
The passphrase, if set. The Worker receives only a SHA-256 hash of the passphrase — not the passphrase itself.
The filename. From SW-MCP-4 onward, the filename travels in the URL fragment alongside the session key, never in any request. Until that release, the filename is present in the upload manifest — scope your trust claims accordingly.
On the anonymous rail: any identity, email address, or Supabase row. The anonymous rail has no identity by architectural construction, not policy.
What "chunk integrity" means, and what it does not
Ciphertext storage integrity is live on the Refueler Worker. At upload,
the per-chunk BLAKE3 hashes and the Merkle root over them
(rfc6962-unbalanced-blake3-v1) are recorded when the transfer is
finalised. On download, the Worker checks each stored chunk against that
record before serving it and refuses (409) on any mismatch. The claim
this supports is "the encrypted object served equals the encrypted object
stored" — ciphertext storage integrity.
It is not end-to-end file integrity. The Worker never sees plaintext, so it cannot vouch for the file you meant to send. Only the recipient, after decrypting, can check the plaintext — and that check never passes through this server or the Worker.
The server runs in your infrastructure. Refueler has no visibility into your MCP server process, your credential store, or your agent's conversation history. If your security model requires an audit, the full source is on GitHub under Apache 2.0.
Requirements
Node.js ≥ 18
Credentials from
refueler.io/share/— you need two keys per credential relationship:rfs_live_…— identifies the API relationshiprfs_sign_…— signs outbound requests (HMAC-SHA256)
Optional:
rfs_whsec_…— webhook signing verification (Chartered / identity-API tier only)
Environment variable names:
REFUELER_LIVE_KEY=rfs_live_…
REFUELER_SIGN_KEY=rfs_sign_…
REFUELER_WHSEC_KEY=rfs_whsec_… # optional; Chartered tier only
REFUELER_API_BASE=https://api.share.refueler.ioUse a .env file for local development or a secrets manager for
production. Never commit key values to version control — the rfs_live_
and rfs_sign_ prefixes are pattern-matched by common secret scanners.
Install
Not yet on npm (see Status above). When published:
npm install @refueler/mcp-serverAdd to your MCP host configuration — the exact method depends on your
agent framework. The server expects credentials via environment variables
or a .env file in the working directory. You manage your own config;
no credentials are ever pulled from a remote source by this package.
Tools
refueler_capabilities — discover the live feature set and rate card.
Unauthenticated, free, called automatically before any send. The agent
will not offer features the server cannot honour.
refueler_quote — price a transfer before committing. Returns cost in
Share credits, your remaining balance, and whether the transfer would exceed
your allocation. No spend occurs.
refueler_send_file — encrypt and send a file. Chunks, encrypts, and
BLAKE3-hashes locally; uploads ciphertext to R2; returns a share_url with
the session key in the fragment. Accepts an optional passphrase for a second
access factor. Deducts credits from your pool on issuance.
refueler_check_transfer — pull a signed receipt. Acceptance receipt is
available immediately after upload. Collection receipt is available once the
recipient has downloaded. These are collection receipts — they confirm
collection, not delivery; delivery to a specific person is not something the
server can verify.
Gates on B7: Anonymous-rail sends — where no identity is associated with the transfer and credits settle over Lightning — require the B7/NB-4 Lightning infrastructure milestone. The tool is present in v0.1 but the anonymous rail is not available until that milestone lands.
Gates on Silent Drop: refueler_receive — a standing agent-to-agent
inbox — is not in v0.1. A recipient in v0.1 collects via a browser link.
Licence
Apache 2.0. §3 of the licence gives you an express patent licence from contributors for their contributions, so you can build on this server without patent risk from those who wrote it.
Roadmap
Anonymous rail (B7): Lightning-settled transfers with no identity required — credits purchased over BOLT11, stored locally, spent per send.
Silent Drop standing inbox (SD-block):
refueler_receive— publish a receiving address; senders lodge ciphertext without a prior link exchange.Inline Lightning payment (B9+): the agent prices a transfer, pays inline in the same tool call, and sends — no separate top-up step.
Available Tools
1 toolrefueler_capabilitiesA
Fetch current Refueler Share service capabilities, rate card, and feature flags. Call this before any send to gate behaviour on live server state. Unauthenticated, free, costs nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Level of detail to return. "summary" (default) returns the full §7.1 payload; "full" is identical in v1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose key behavioral facts: unauthenticated access, no cost, and that the live server state governs send behaviour. It implies a safe read but never explicitly says the call is side-effect-free or cacheable, which leaves a small gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, with the purpose front-loaded and the usage condition immediately after. Every sentence earns its place by adding purpose, timing, or cost/auth context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-param, no-output-schema discovery call, the description covers what to do and when, plus auth and cost. It does not describe the shape or format of the returned payload, which an agent might want given there is no output schema, but it does enumerate the categories of data returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'detail' parameter is fully documented in the schema, including its enum values and that 'full' is identical in v1. The description adds no parameter-level semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetch) and a concrete resource (Refueler Share service capabilities, rate card, feature flags), naming the actual payloads returned. No sibling tools exist, so no differentiation is required. An agent immediately knows what this tool yields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly prescribes when to call it: 'Call this before any send to gate behaviour on live server state.' This gives a concrete precondition rather than an implied one. It does not discuss when-not to call or alternatives, but none meaningfully exist for a capability-discovery call, so the gap is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
refueler_capabilities
TDQS
Scored across 1 tool
With a single tool there is no possibility of misselection or overlapping purpose. Its intent (fetch server capabilities/rate card before sending) is unambiguous.
The lone name refueler_capabilities is snake_case and namespaced, which is readable and predictable. It is noun-based rather than a verb_noun action pattern, but consistency cannot really be violated with one tool.
A single tool is far too thin for a server whose description implies a send workflow. There is no operation to actually do anything, making the surface feel like a stub.
The tool explicitly exists as a precondition for 'any send', yet no send, quote, status, or account operation is exposed. The advertised domain is essentially uncovered, leaving agents at a dead end.
Maintenance
Related MCP Connectors
Encrypted A2A object storage for autonomous agent state and artifacts
Agent-native storage with cryptographic verification on Solana. Keyless: clients sign and pay.
Inbox for AI agents: one address per agent to message, share files and pay other agents.
Agent-native MCP for governed commerce, x402 payments, paid capabilities, and verifiable receipts.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to perform financial transactions such as direct payments, escrows, and bounty management using natural language with zero code integration. It provides a comprehensive suite of tools for fund streaming, subscriptions, and reputation tracking to facilitate secure agent-to-agent commerce.5 npmMIT
- AlicenseAqualityBmaintenanceEnables AI agents to create cryptographically verifiable receipts of their delegated work, with capabilities for multi-party approval and offline verification.1147 npmApache 2.0

YAFL MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to securely transfer files between machines via encrypted, expiring share links, with tools for upload, download, status checks, and link management.MIT- AlicenseNot gradedqualityBmaintenanceSecure file exchange MCP server enabling AI agents to upload, share, fetch, and revoke files with SHA-256 verification, malware scanning, expiry, access restrictions, and human approval workflows.23 npmMIT