Recapfy

io.github.pedrot95devPublished by GitHub account pedrot95devv0.1.8Updated Oct 24, 2026

Ask about a YouTube video or fetch its transcript. Paid per call in USDC on Solana via x402.

VerifiedSTDIODesktop onlyFinanceMedia & Design

Overview

AI-generated overview

Local MCP server that lets an assistant ask questions about a YouTube video or fetch its timestamped transcript, paying each call in USDC on Solana.

What you can do
Ask a question about a YouTube video and get a text answer back, with an optional cap on answer length that drives the price per call (ask). Fetch a video's full transcript as timestamped segments along with its title, channel name and duration (get_transcript). Each call is settled automatically in USDC on Solana through the x402 payment protocol before the result is returned.
When to use it
Useful when you want an assistant to summarize, question or quote a specific YouTube video without watching it, and you are willing to pay a small per-call fee from a Solana wallet. It suits desktop MCP clients such as Claude Desktop, Cursor or Cline.
Requirements
Runs locally via npx, so Node.js 20 or newer is needed; there is no hosted endpoint. Requires a Solana mainnet wallet funded with USDC and its base58-encoded 64-byte secret key in the SVM_PRIVATE_KEY environment variable. Optional RECAPFY_API_BASE_URL and RECAPFY_ALLOW_INSECURE_TLS are for local development only. Network access to the Recapfy API is required.
Before you install
SVM_PRIVATE_KEY is a real wallet signing key that authorizes payments; use a dedicated low-balance wallet, never share or commit it. Every tool invocation spends USDC, and the ask price is dynamic based on maxOutputTokens, so keep that value sensible. Video URLs and prompts are sent to the Recapfy API. RECAPFY_ALLOW_INSECURE_TLS weakens TLS verification and should stay off outside localhost development.

Installation

In SourceWeft

  1. Open Recapfy in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Recapfy MCP

An MCP server that exposes Recapfy's paid endpoints as tools — ask anything about a YouTube video and fetch a video's full transcript — straight from an MCP-capable agent like Claude Desktop, Cursor, or Cline. It runs locally — there's no hosted Recapfy MCP endpoint; you launch your own copy.

Each call is paid in USDC on Solana (dynamic price, scales with maxOutputTokens), settled automatically via the x402 protocol. You bring your own wallet; you pay only for what you call.

📦 npm: recapfy-mcp

Prerequisites

  • Node.js ≥ 20.
  • A Solana wallet funded with USDC on mainnet. You do not need SOL for fees — the API's facilitator sponsors the network fee.
  • That wallet's secret key, base58-encoded (the 64-byte form that Phantom's "Export Private Key" gives you, or solana-keygen).

⚠️ The key signs real payments. Use a dedicated low-balance wallet, never share it, and never commit it.

Install

No clone or build needed. Add this to your MCP client config (Claude Desktop: claude_desktop_config.json) and restart the client:

jsonc
{  "mcpServers": {    "recapfy": {      "command": "npx",      "args": ["-y", "recapfy-mcp@latest"],      "env": {        "SVM_PRIVATE_KEY": "<your base58 Solana secret key>"      }    }  }}

Always use recapfy-mcp@latest. A bare npx -y recapfy-mcp reuses whatever is in npx's cache and never re-checks the registry, so you can stay pinned to an old build (and miss new tools) indefinitely. The @latest tag forces npx to resolve the newest published version on every launch.

Updating

New versions (including new tools/endpoints) are picked up automatically when two things happen, because of two independent caches:

  1. npx package cache — using recapfy-mcp@latest (as above) makes npx fetch the newest published version each launch. Without @latest, npx serves the cached copy and you stay on an old build.
  2. MCP client tool list — clients read the server's tool list once per session. New tools only appear after you fully restart the MCP client (Claude Desktop, Cursor, Cline, …) so it relaunches the server and re-reads the tools.

So after a release: keep @latest and restart your client. If a brand-new tool still doesn't show up, force a clean fetch:

bash
npx clear-npx-cache    # or: rm -rf "$(npm config get cache)/_npx"

then restart the client again.

Configuration

VariableRequiredDescription
SVM_PRIVATE_KEYyesBase58-encoded Solana secret key. Pays per call. Keep it funded.
RECAPFY_API_BASE_URLnoOverride the API base URL (defaults to https://api.recapfy.ai). For local dev.
RECAPFY_ALLOW_INSECURE_TLSnoSet to 1 to accept self-signed TLS (local dev over https only).

Tool: ask

InputTypeRequiredDescription
videoUrlstringyesAbsolute http(s) URL of the YouTube video.
promptstringyesWhat to ask about the video.
maxOutputTokensintegernoMax tokens in the answer (default 1024). Drives the dynamic price.

Returns the agent's answer as text. Payment is settled before the answer returns. The per-call price is dynamic: the API quotes the USDC amount in the 402 challenge based on maxOutputTokens, and your wallet pays whatever is quoted — so keep maxOutputTokens sensible.

Tool: get_transcript

InputTypeRequiredDescription
videoUrlstringyesAbsolute http(s) URL of the YouTube video.

Returns the video's full transcript as timestamped segments, plus its title, channelName, and durationSeconds. The text content is a readable, timestamped transcript; the structured content carries the raw transcript array (each segment is { timestampInSeconds, text }). The per-call price is flat USDC, quoted in the 402 challenge and paid automatically.

How payment works

Built on the official Coinbase x402 v2 client packages (@x402/fetch, @x402/svm, @x402/core) plus @solana/kit for signing:

  1. The tool POSTs to the matching endpoint under ${RECAPFY_API_BASE_URL} (/api/v1/agents/ask or /api/v1/agents/get-transcript).
  2. The API replies 402 with requirements in the PAYMENT-REQUIRED header (exact SVM scheme, USDC, dynamic amount, and a facilitator feePayer that sponsors the network fee).
  3. The wrapped fetch signs a gasless SPL-token transfer with your wallet and retries with the PAYMENT-SIGNATURE header.
  4. The API verifies, settles, and returns the answer plus a PAYMENT-RESPONSE settlement header.

Verify it works

Inspect the tools without spending anything using the MCP Inspector (it only signs a payment when you actually invoke a tool, so any key is fine just to browse):

bash
SVM_PRIVATE_KEY=<key> npx @modelcontextprotocol/inspector npx -y recapfy-mcp@latest

Open the printed URL → Tools → ask / get_transcript. Invoking a tool with a funded wallet performs a real paid call; verify the spend on a Solana explorer.

Troubleshooting

SymptomCause / fix
Missing required environment variable ...SVM_PRIVATE_KEY not set.
SVM_PRIVATE_KEY is not valid base58Needs base58 of the 64-byte secret key.
400 ... maxOutputTokens must be greater than 0Pass a positive maxOutputTokens (the tool defaults to 1024).
400 ... promptprompt is required and non-empty.
New tool/endpoint missing after an updatePin recapfy-mcp@latest, restart the client, then clear the npx cache (see Updating).
402 loop / "Failed to create payment payload"Wallet has no USDC on mainnet, or wrong network. Fund it.
TLS error against a local API over httpsSet RECAPFY_ALLOW_INSECURE_TLS=1 (localhost dev only).

License

MIT

Source: README.md at commit c16ba42

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.8LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.