Skip to content
Back to Lens Jewelry Price Comparison Agent

Card snapshot

lens-a2a.brucel2000.workers.dev · 2026-10-29 04:53:04 UTC · 5fbc8e3f685e9ea8ba1d20f8b56e8b1500d78f3436103722137d347b12287db3

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "Lens Jewelry Price Comparison Agent",
  "description": "Give it a product (jewelry) image URL; it runs Google Lens (visual + exact matches) and optionally Google Shopping via SerpApi, then returns deduped merchant offers sorted by approximate AUD price, with a stock-image warning. \u7ed9\u4e00\u5f20\u73e0\u5b9d\u56fe\u7247\u94fe\u63a5\uff0c\u8fd4\u56de\u76f8\u4f3c/\u540c\u6b3e\u5546\u54c1\u7684\u5546\u5bb6\u62a5\u4ef7\u6bd4\u4ef7\u3002",
  "version": "1.0.0",
  "supportedInterfaces": [
    {
      "url": "https://lens-a2a.brucel2000.workers.dev/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://lens-a2a.brucel2000.workers.dev/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3"
    }
  ],
  "protocolVersion": "0.3.0",
  "url": "https://lens-a2a.brucel2000.workers.dev/a2a",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "Bruce Li",
    "url": "https://lens-a2a.brucel2000.workers.dev"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://a2a-registry.org/extensions/registry/v1",
        "description": "A2A Registry identity hint (GitHub-based ownership claim for *.workers.dev).",
        "required": false,
        "params": {
          "identity": {
            "provider": "github",
            "username": "tigerrun123",
            "packageName": "github.tigerrun123.lens-a2a"
          }
        }
      }
    ]
  },
  "metadata": {
    "mcpEndpoint": "https://lens-a2a.brucel2000.workers.dev/mcp",
    "mcpTransport": "streamable-http",
    "mcpTool": "lens_jewelry_price_comparison",
    "registryIdentityProvider": "github",
    "registryIdentity": "tigerrun123",
    "registryPackageName": "github.tigerrun123.lens-a2a"
  },
  "securitySchemes": {
    "bearer": {
      "type": "http",
      "scheme": "bearer",
      "httpAuthSecurityScheme": {
        "scheme": "Bearer",
        "description": "API key issued by Bruce. Send `Authorization: Bearer <key>`."
      },
      "description": "API key issued by Bruce. Send `Authorization: Bearer <key>`. Agent card is public; all RPC calls require the key."
    }
  },
  "security": [
    {
      "bearer": []
    }
  ],
  "securityRequirements": [
    {
      "schemes": {
        "bearer": {
          "list": []
        }
      }
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "image/png",
    "image/jpeg",
    "image/webp",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "lens-image-price-comparison",
      "name": "Lens image price comparison",
      "description": "Input: an image URL (text part containing an http(s) URL, or a file/url part). Optional (in message.metadata, params.metadata, or a data part): country (default 'au'), skip_shopping (bool), include_ebay (bool, default false; adds a SerpApi eBay search, labeled source 'ebay'). Output: text summary (\u4e2d\u6587+English) + data part {exact_match_count, stock_image_warning, price_range_aud, median, offers[top 20]}. Uses at most 3 SerpApi searches per request (Lens + Shopping + optional eBay); per-key daily quota applies.",
      "tags": [
        "jewelry",
        "price comparison",
        "google lens",
        "reverse image search",
        "shopping"
      ],
      "examples": [
        "https://example.com/ring.jpg",
        "Compare prices for this ring: https://example.com/ring.png (country nz)"
      ],
      "inputModes": [
        "text/plain",
        "image/png",
        "image/jpeg",
        "image/webp",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    }
  ]
}