Skip to main content
Glama

FanOracle: Comic Book Edition πŸ¦Έβ€β™‚οΈβ›“οΈ

AI-powered comic book authentication, grading, and valuation β€” secured on the Casper blockchain.

Built for the Casper Network Hackathon | MCP + Odra/Rust Smart Contract


πŸ† What is FanOracle?

FanOracle is a Model Context Protocol (MCP) server that brings AI intelligence to comic book collecting. Upload a photo of any comic β€” raw or CGC-slabbed β€” and FanOracle will:

  1. Identify the comic title, issue, publisher, and year from the cover or CGC label

  2. Grade the condition using the CGC 0.5–10.0 scale

  3. Verify CGC/CBCS slab authenticity (detect fakes)

  4. Check if it's a key issue (first appearances, deaths, origins)

  5. Price it using real eBay sold listings

  6. Store it permanently on the Casper blockchain


Related MCP server: mcp-witness

πŸ› οΈ Tech Stack

Layer

Technology

Smart Contract

Rust + Odra Framework 2.7.0

Blockchain

Casper Network Testnet

AI Vision

Groq Llama 4 Scout (Vision)

Market Data

eBay Browse API (Production)

Comic Database

Comic Vine API

Interface

MCP Server + Claude Desktop


πŸ“¦ Smart Contract

Deployed on Casper Testnet:

Field

Value

Contract Hash

contract-24ca090961cafb32c6cb39bd6034d175c8e47002e1e32c20e8cf54ca9abb8d40

Package Hash

contract-package-279e6175282d814b28c02157feacea538a6d3ba4c76bb1b21b4c110d57e92d8a

Deploy Hash (v2)

2d624cd2e18b98c321e5799c24b52e90695cd2cb6ec8c1fd6c6caead9ef677ca

Network

casper-test

Entry Points:

  • init β€” Initialize contract

  • add_comic(title, issue, grade_x10, is_key, value_cents) β€” Add comic to collection

  • get_count() β€” Get total comics in collection

  • get_comic_title(id) β€” Get comic title by ID

  • get_comic_grade(id) β€” Get comic grade by ID

  • get_comic_value(id) β€” Get comic estimated value by ID

  • get_comic_is_key(id) β€” Check if comic is key issue


πŸ”§ MCP Tools (5 Tools)

1. grade_comic

AI-powered comic grading from photo. Reads CGC/CBCS label automatically.

Input: image_url or image_base64
Output: grade (0.5-10.0), condition, defects, slab detection, creator credits

2. verify_slab

Fake CGC/CBCS slab detector using AI visual analysis.

Input: image_url + cert_number
Output: authenticity score (0-100), red flags, green flags, verdict, CGC lookup URL

3. fetch_comic_price

Real market prices from eBay sold listings.

Input: title, issue_number, grade (optional)
Output: min/max/avg price, sample listings, sales count

4. detect_key_issue

Key issue detection via Comic Vine database.

Input: title, issue_number, publisher
Output: is_key_issue, key_reasons, first_appearances, cover_date

5. collection_value

Casper blockchain collection tracker + value estimator.

Input: action (get_count | add_comic | value_estimate), comics[]
Output: on-chain count, deploy_hash, total value, breakdown

🎬 Demo Flow

1. πŸ“Έ Upload CGC slab photo
      ↓
2. πŸ€– grade_comic β†’ "Wolverine #76, CGC 8.5, White Pages, Authentic"
      ↓
3. πŸ” verify_slab β†’ "AUTHENTIC β€” Score 98/100, Hologram βœ…"
      ↓
4. πŸ”‘ detect_key_issue β†’ "Lady Deathstrike & Puck appearance"
      ↓
5. πŸ’° fetch_comic_price β†’ "Avg $40 | 20 eBay sales"
      ↓
6. ⛓️ collection_value (add_comic) β†’ "Stored on Casper blockchain βœ…"

πŸš€ Setup

Prerequisites

  • Node.js 18+

  • Claude Desktop

  • API Keys: Groq, eBay (Production), Comic Vine

Install

git clone https://github.com/your-repo/fanoracle-mcp
cd fanoracle-mcp
npm install
cp .env.example .env
# Fill in API keys in .env
npm run build

Claude Desktop Config

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "fanoracle": {
      "command": "node",
      "args": ["/path/to/fanoracle-mcp/dist/index.js"],
      "env": {
        "CASPER_RPC": "https://node.testnet.casper.network/rpc",
        "CASPER_CHAIN": "casper-test",
        "CONTRACT_HASH": "contract-24ca090961cafb32c6cb39bd6034d175c8e47002e1e32c20e8cf54ca9abb8d40",
        "GROQ_API_KEY": "your_groq_key",
        "EBAY_CLIENT_ID": "your_ebay_client_id",
        "EBAY_CLIENT_SECRET": "your_ebay_client_secret",
        "COMIC_VINE_API_KEY": "your_comic_vine_key"
      }
    }
  }
}

πŸ“Š Example Outputs

grade_comic

{
  "detected_title": "Amazing Spider-Man",
  "detected_issue_number": "300",
  "is_slabbed": true,
  "grading_company": "CGC",
  "certified_grade": 9.2,
  "grade_label": "Near Mint-",
  "confidence": "high",
  "hologram_detected": true,
  "slab_integrity": "intact",
  "notable_features": ["White Pages", "1st Full Venom Appearance"]
}

verify_slab

{
  "verdict": "AUTHENTIC",
  "authenticity_score": 98,
  "confidence": "high",
  "green_flags": ["Correct label font", "Hologram present", "Grade position correct"],
  "red_flags": [],
  "cgc_lookup_url": "https://www.cgccomics.com/certlookup/details/?certInput=3944834002"
}

fetch_comic_price

{
  "title": "Amazing Spider-Man",
  "issue_number": "300",
  "grade": "9.2",
  "sales_found": 20,
  "price_avg": 774.85,
  "price_min": 349.99,
  "price_max": 3300.00,
  "currency": "USD"
}


Built with ❀️ for the Casper Network Hackathon

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ffffffffhugfadil/fanoracle-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server