<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Phil Maher</title>
    <description>The latest articles on DEV Community by Phil Maher (@phil_maher_4183bdb34e2c1e).</description>
    <link>https://dev.to/phil_maher_4183bdb34e2c1e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3835932%2F3256ff60-1b2d-4c84-aff5-bed655bc5be8.png</url>
      <title>DEV Community: Phil Maher</title>
      <link>https://dev.to/phil_maher_4183bdb34e2c1e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/phil_maher_4183bdb34e2c1e"/>
    <language>en</language>
    <item>
      <title>How We Built an MCP Server + x402 Payment System for 217K Vintage Film Clips</title>
      <dc:creator>Phil Maher</dc:creator>
      <pubDate>Fri, 20 Mar 2026 18:21:32 +0000</pubDate>
      <link>https://dev.to/phil_maher_4183bdb34e2c1e/how-we-built-an-mcp-server-x402-payment-system-for-217k-vintage-film-clips-l4h</link>
      <guid>https://dev.to/phil_maher_4183bdb34e2c1e/how-we-built-an-mcp-server-x402-payment-system-for-217k-vintage-film-clips-l4h</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gkn6a1x8hygi8c6ibif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gkn6a1x8hygi8c6ibif.png" alt=" "&gt;&lt;/a&gt;&lt;br&gt;
  Stockfilm is an archive of 217,000+ authentic vintage home movie clips from the 1930s-1980s. Real 8mm and Super 8 film shot by ordinary families, professionally&lt;br&gt;
  restored and scanned to 4K. Not AI-generated — every frame is real archival film.&lt;/p&gt;

&lt;p&gt;We just shipped two integrations that let AI agents discover and license this footage autonomously:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;An MCP server&lt;/strong&gt; so Claude, GPT, Cursor, and other AI tools can search and browse clips natively&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;x402 protocol support&lt;/strong&gt; so agents can pay for and license clips with USDC in a single HTTP request&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's how we built it and what we learned.&lt;/p&gt;



&lt;p&gt;## The Problem&lt;/p&gt;

&lt;p&gt;AI agents are increasingly assembling media for creative projects — documentaries, ad campaigns, social content, training datasets. But licensing stock footage still&lt;br&gt;
  requires a human clicking through a website, adding clips to a cart, and paying with a credit card.&lt;/p&gt;

&lt;p&gt;We wanted to make Stockfilm's archive accessible to AI agents the same way APIs are accessible to code: call an endpoint, get a result.&lt;/p&gt;

&lt;p&gt;## Why MCP + x402&lt;/p&gt;

&lt;p&gt;We needed two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discovery&lt;/strong&gt; — How does an agent even know Stockfilm exists and what it can do?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payment&lt;/strong&gt; — How does an agent pay $10 for a clip without a credit card?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;MCP (Model Context Protocol)&lt;/a&gt; solves discovery. It's a standard that lets AI agents discover and call tools. When you connect an MCP&lt;br&gt;
  server to Claude or Cursor, the agent sees your tools and can call them based on the user's request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x402.org" rel="noopener noreferrer"&gt;x402&lt;/a&gt; solves payment. It uses HTTP status code 402 ("Payment Required") to create a pay-per-request flow. The agent hits an endpoint, gets a 402&lt;br&gt;
  with payment instructions, pays USDC on Solana or Base, retries with proof, and gets the resource. No API keys, no accounts, no sign-up.&lt;/p&gt;

&lt;p&gt;Together: MCP for discovery, x402 for payment.&lt;/p&gt;

&lt;p&gt;## Architecture&lt;/p&gt;

&lt;p&gt;Our existing infrastructure is a Rust/Axum API server with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL full-text search across 217K clips&lt;/li&gt;
&lt;li&gt;Visual similarity search via embeddings&lt;/li&gt;
&lt;li&gt;Solana USDC/SOL and Lightning BTC payment verification&lt;/li&gt;
&lt;li&gt;HMAC-SHA256 signed requests for the full licensing workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The new MCP and x402 layers sit alongside the existing API — they don't replace it, they provide additional access paths.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Agent (Claude, Cursor, etc.)
    │
    ├── MCP (Streamable HTTP) ──→ api.stockfilm.com/mcp
    │                                    │
    │                              6 tools (search, details,
    │                              similar, rough-cut, rights,
    │                              license)
    │
    └── x402 (HTTP 402) ────────→ api.stockfilm.com/x402/clip/{id}/license
                                         │
                                   402 → pay USDC → 200 + download URL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;## The MCP Server (Rust + rmcp)&lt;/p&gt;

&lt;p&gt;We used the official Rust MCP SDK &lt;a href="https://github.com/modelcontextprotocol/rust-sdk" rel="noopener noreferrer"&gt;&lt;code&gt;rmcp&lt;/code&gt;&lt;/a&gt; (v1.2) with the Streamable HTTP transport. The server is embedded directly&lt;br&gt;
   in our existing Axum application — no separate service.&lt;/p&gt;

&lt;p&gt;### 6 Tools&lt;/p&gt;

&lt;p&gt;| Tool | Cost | What It Does |&lt;br&gt;
  |------|------|-------------|&lt;br&gt;
  | &lt;code&gt;search_vintage_footage&lt;/code&gt; | Free | Text search with year/location filters |&lt;br&gt;
  | &lt;code&gt;get_clip_details&lt;/code&gt; | Free | Full metadata, thumbnail, pricing |&lt;br&gt;
  | &lt;code&gt;find_similar_footage&lt;/code&gt; | Free | Visual similarity by clip ID |&lt;br&gt;
  | &lt;code&gt;build_rough_cut&lt;/code&gt; | Free | Auto-assemble a timed video timeline |&lt;br&gt;
  | &lt;code&gt;check_clip_rights&lt;/code&gt; | Free | Usage eligibility (commercial, editorial, etc.) |&lt;br&gt;
  | &lt;code&gt;license_clip&lt;/code&gt; | $10 USDC | Returns x402 endpoint for payment |&lt;/p&gt;

&lt;p&gt;Each tool delegates to existing internal APIs. The MCP server is a thin translation layer, not a separate data store.&lt;/p&gt;

&lt;p&gt;### Key Implementation Details&lt;/p&gt;

&lt;p&gt;Tool definitions use rmcp's proc macros with full annotations for quality scoring:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;  &lt;span class="nd"&gt;#[tool(&lt;/span&gt;
      &lt;span class="nd"&gt;description&lt;/span&gt; &lt;span class="nd"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Search Stockfilm's archive of 217,000+ authentic vintage clips..."&lt;/span&gt;&lt;span class="nd"&gt;,&lt;/span&gt;
      &lt;span class="nd"&gt;annotations(&lt;/span&gt;
          &lt;span class="nd"&gt;title&lt;/span&gt; &lt;span class="nd"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Search Vintage Footage"&lt;/span&gt;&lt;span class="nd"&gt;,&lt;/span&gt;
          &lt;span class="nd"&gt;read_only_hint&lt;/span&gt; &lt;span class="nd"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="nd"&gt;,&lt;/span&gt;
          &lt;span class="nd"&gt;destructive_hint&lt;/span&gt; &lt;span class="nd"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="nd"&gt;,&lt;/span&gt;
          &lt;span class="nd"&gt;idempotent_hint&lt;/span&gt; &lt;span class="nd"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="nd"&gt;,&lt;/span&gt;
          &lt;span class="nd"&gt;open_world_hint&lt;/span&gt; &lt;span class="nd"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="nd"&gt;)&lt;/span&gt;
  &lt;span class="nd"&gt;)]&lt;/span&gt;
  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;search_vintage_footage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nf"&gt;Parameters&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;Parameters&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;SearchRequest&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="c1"&gt;// calls internal search API&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server metadata includes title, description, icon, and website URL so directories like Smithery and Glama can display rich listings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;  &lt;span class="k"&gt;impl&lt;/span&gt; &lt;span class="n"&gt;ServerHandler&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;StockfilmMcp&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;get_info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;ServerInfo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nn"&gt;ServerInfo&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
              &lt;span class="nn"&gt;ServerCapabilities&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                  &lt;span class="nf"&gt;.enable_tools&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                  &lt;span class="nf"&gt;.enable_prompts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                  &lt;span class="nf"&gt;.enable_resources&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                  &lt;span class="nf"&gt;.build&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
          &lt;span class="p"&gt;)&lt;/span&gt;
          &lt;span class="nf"&gt;.with_server_info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
              &lt;span class="nn"&gt;Implementation&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"stockfilm"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"1.0.0"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                  &lt;span class="nf"&gt;.with_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Stockfilm — Authentic Vintage Footage"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                  &lt;span class="nf"&gt;.with_description&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Search and license 217,000+ clips..."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                  &lt;span class="nf"&gt;.with_icons&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;vec!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nn"&gt;Icon&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"https://stockfilm.com/stockfilm-logo.png"&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt;
                  &lt;span class="nf"&gt;.with_website_url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"https://stockfilm.com"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
          &lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;### Connecting&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# Claude Code&lt;/span&gt;
  claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http stockfilm https://api.stockfilm.com/mcp

  &lt;span class="c"&gt;# Claude Desktop&lt;/span&gt;
  &lt;span class="c"&gt;# Add to claude_desktop_config.json:&lt;/span&gt;
  &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="s2"&gt;"mcpServers"&lt;/span&gt;: &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="s2"&gt;"stockfilm"&lt;/span&gt;: &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="s2"&gt;"command"&lt;/span&gt;: &lt;span class="s2"&gt;"npx"&lt;/span&gt;,
        &lt;span class="s2"&gt;"args"&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;, &lt;span class="s2"&gt;"mcp-remote"&lt;/span&gt;, &lt;span class="s2"&gt;"https://api.stockfilm.com/mcp"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
      &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;## The x402 Integration&lt;/p&gt;

&lt;p&gt;x402 V2 uses three HTTP headers. All contain base64-encoded JSON:&lt;/p&gt;

&lt;p&gt;| Header | Direction | Purpose |&lt;br&gt;
  |--------|-----------|---------|&lt;br&gt;
  | &lt;code&gt;PAYMENT-REQUIRED&lt;/code&gt; | Server → Client | Payment options (price, networks, recipient addresses) |&lt;br&gt;
  | &lt;code&gt;PAYMENT-SIGNATURE&lt;/code&gt; | Client → Server | Signed payment authorization |&lt;br&gt;
  | &lt;code&gt;PAYMENT-RESPONSE&lt;/code&gt; | Server → Client | Settlement result (tx hash) |&lt;/p&gt;

&lt;p&gt;### The Flow&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agent calls &lt;code&gt;GET /x402/clip/{id}/license&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Server returns &lt;strong&gt;402&lt;/strong&gt; with &lt;code&gt;PAYMENT-REQUIRED&lt;/code&gt; header containing payment options for Solana USDC and Base USDC&lt;/li&gt;
&lt;li&gt;Agent's x402 client signs a payment authorization&lt;/li&gt;
&lt;li&gt;Agent retries with &lt;code&gt;PAYMENT-SIGNATURE&lt;/code&gt; header&lt;/li&gt;
&lt;li&gt;Server sends proof to a facilitator for verification and settlement&lt;/li&gt;
&lt;li&gt;Server returns &lt;strong&gt;200&lt;/strong&gt; with license details and download URL&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;### Free Endpoints&lt;/p&gt;

&lt;p&gt;Search, clip details, and rights checks are completely free — no payment, no auth, no API keys:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# Search&lt;/span&gt;
  curl &lt;span class="s2"&gt;"https://api.stockfilm.com/x402/search?q=christmas+morning+1960s&amp;amp;limit=5"&lt;/span&gt;

  &lt;span class="c"&gt;# Clip details&lt;/span&gt;
  curl &lt;span class="s2"&gt;"https://api.stockfilm.com/x402/clip/120818702"&lt;/span&gt;

  &lt;span class="c"&gt;# Rights check&lt;/span&gt;
  curl &lt;span class="s2"&gt;"https://api.stockfilm.com/x402/clip/120818702/rights?intended_use=commercial"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The money is in licensing, not search queries. Free search maximizes the funnel.&lt;/p&gt;

&lt;p&gt;### Payment Verification&lt;/p&gt;

&lt;p&gt;We use an external facilitator for payment verification and settlement rather than running our own Solana RPC infrastructure. The facilitator handles the on-chain&lt;br&gt;
  verification so we don't need expensive RPC subscriptions.&lt;/p&gt;

&lt;p&gt;We support two networks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solana mainnet&lt;/strong&gt; — USDC to &lt;code&gt;FERR1XDCsvLRzU8U29baMY4XvZ8kwk52tUjqy3SaDRtQ&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Base mainnet&lt;/strong&gt; — USDC to &lt;code&gt;0x4AeeD280b6006Aa354e09427AF4F49bD09f9447B&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent's x402 client picks whichever chain it has funds on.&lt;/p&gt;

&lt;p&gt;## What We Learned&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. MCP metadata matters.&lt;/strong&gt; Directories like Smithery score your server on tool descriptions, parameter descriptions, annotations, icons, and capabilities. Ship all&lt;br&gt;
  of it from day one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. x402 is simpler than building your own payment flow.&lt;/strong&gt; We already had a 6-step licensing pipeline (search → rights → quote → payment intent → execute → download).&lt;br&gt;
   x402 collapses this to 2 steps (search → pay+license). The protocol handles the complexity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Free search is the right call.&lt;/strong&gt; Every clip search is a potential license. Gating search behind payment or auth reduces the funnel to zero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Embed, don't separate.&lt;/strong&gt; The MCP server and x402 endpoints run inside our existing Axum process. No new containers, no new deployments, no new databases. Just new&lt;br&gt;
   routes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The &lt;code&gt;rmcp&lt;/code&gt; Rust SDK is production-ready.&lt;/strong&gt; We had working MCP tools in under an hour. The &lt;code&gt;#[tool]&lt;/code&gt; proc macros, &lt;code&gt;Parameters&amp;lt;T&amp;gt;&lt;/code&gt; wrapper, and&lt;br&gt;
  &lt;code&gt;StreamableHttpService&lt;/code&gt; work exactly as documented.&lt;/p&gt;

&lt;p&gt;## The Numbers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;217,000+&lt;/strong&gt; clips in the archive&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;6&lt;/strong&gt; MCP tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4&lt;/strong&gt; x402 endpoints&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$10&lt;/strong&gt; per clip license (144p format)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$0/month&lt;/strong&gt; additional infrastructure cost&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2 networks&lt;/strong&gt; — Solana + Base USDC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;## Try It&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# Connect the MCP server to Claude&lt;/span&gt;
  claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http stockfilm https://api.stockfilm.com/mcp

  &lt;span class="c"&gt;# Or search directly&lt;/span&gt;
  curl &lt;span class="s2"&gt;"https://api.stockfilm.com/x402/search?q=1960s+family+vacation&amp;amp;limit=5"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://stockfilm.com" rel="noopener noreferrer"&gt;stockfilm.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://stockfilm.com/for-ai-agents" rel="noopener noreferrer"&gt;stockfilm.com/for-ai-agents&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ReplicantArmy/stockfilm-mcp" rel="noopener noreferrer"&gt;github.com/ReplicantArmy/stockfilm-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI Spec:&lt;/strong&gt; &lt;a href="https://api.stockfilm.com/x402/openapi.json" rel="noopener noreferrer"&gt;api.stockfilm.com/x402/openapi.json&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RapidAPI:&lt;/strong&gt; &lt;a href="https://rapidapi.com/stockfilm-authentic-vintage-footage-stockfilm-authentic-vintage-footage-default/api/stockfilm-vintage-footage-api" rel="noopener noreferrer"&gt;Stockfilm Vintage Footage
API&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mcp</category>
      <category>x402</category>
      <category>ai</category>
      <category>rust</category>
    </item>
  </channel>
</rss>
