Skip to main content
Glama

Hekkova MCP-Server

Die permanente Speicherebene für KI-Agenten. Verbinden Sie jede MCP-kompatible KI (Claude, ChatGPT, Gemini, Cursor, benutzerdefinierte Agenten) und prägen Sie Momente — Fotos, Videos, Audio, Text — dauerhaft auf der Polygon-Blockchain mit IPFS + Filecoin-Speicherung, Lit-Protokoll-Verschlüsselung und Datenschutzstufen, mit denen Sie steuern können, wer was sieht.


Schnellstart

# 1. Install dependencies
npm install

# 2. Copy and configure environment variables
cp .env.example .env
# Edit .env with your Supabase, Thirdweb, Pinata, and Stripe credentials

# 3. Seed the local test account and API key
npm run seed

# 4. Start the development server
npm run dev
# → Server running at http://localhost:3000/mcp

Verbindung mit Claude Desktop

Fügen Sie dies Ihrer Claude Desktop-Konfigurationsdatei hinzu:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hekkova": {
      "type": "url",
      "url": "http://localhost:3000/mcp",
      "headers": {
        "Authorization": "Bearer hk_test_local_dev_key_12345678"
      }
    }
  }
}

Für die Produktion ersetzen Sie die URL und den API-Schlüssel:

{
  "mcpServers": {
    "hekkova": {
      "type": "url",
      "url": "https://mcp.hekkova.com/mcp",
      "headers": {
        "Authorization": "Bearer hk_live_YOUR_API_KEY"
      }
    }
  }
}

Holen Sie sich Ihren API-Schlüssel unter hekkova.com/dashboard/keys.


Tool-Referenz

Tool

Beschreibung

mint_moment

Prägt Medien (Foto, Video, Audio, Text) dauerhaft auf Polygon. Verschlüsselt basierend auf der Phase, speichert auf IPFS, prägt ERC-721 NFT. Gibt eine Block-ID zurück.

mint_from_url

Ruft eine öffentliche URL (Tweet, Instagram-Post, Bild, Webseite) ab und prägt sie. Extrahiert automatisch og:title und og:image.

list_moments

Paginierte Liste aller geprägten Momente. Filterbar nach Phase, Kategorie oder Suchanfrage.

get_moment

Vollständige Details für einen einzelnen Moment nach Block-ID: CIDs, Transaktions-Hash, Phase, Tags und mehr.

update_phase

Ändert die Datenschutzphase eines Moments. Kostet 1 Credit (Text/Bild) oder 2 Credits (Video). Der Legacy-Plan beinhaltet 10 kostenlose Phasenwechsel/Monat.

export_moments

Exportiert alle Momente als JSON oder CSV. Gibt eine 24-Stunden-Download-URL mit allen Block-IDs und IPFS-CIDs zurück.

get_balance

Überprüft verbleibende Präge-Credits, aktuellen Plan (free / arc_builder / legacy) und das Guthaben für Phasenwechsel.

get_account

Kontenidentität: Light-ID, Anzeigename, Wallet-Adresse, Standardphase und Status des Legacy-Plans.


Datenschutzphasen

Phase

Zugriff

Verschlüsselung

new_moon

Nur Eigentümer

Lit-Protokoll (Eigentümer-Wallet ACC)

crescent

Enger Kreis (2–10 Personen)

Lit-Protokoll (geteilte Zugriffsbedingungen)

gibbous

Erweiterte Gruppe (bis zu 50)

Token-gated via Hekkova ERC-721

full_moon

Vollständig öffentlich

Keine


Moment-Kategorien

Kategorie

Bedeutung

super_moon

Wichtiges Lebensereignis

blue_moon

Seltener Moment

super_blue_moon

Einmalig im Leben

eclipse

Zeitgesteuert — versiegelt bis eclipse_reveal_date

null

Nicht kategorisiert


Ratenbegrenzungen

Plan

Anfragen/Min

Prägungen/Min

Sandbox (Test-Schlüssel)

10

1

Standard (jedes bezahlte Paket)

60

10

Legacy-Plan

120

20

Ratenbegrenzungs-Header sind in jeder Antwort enthalten:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1710680460

Tests ausführen

# Make sure the server is running in another terminal
npm run dev

# Run the test client
npm run test-client

Bereitstellung

Vercel (Serverless)

npm install -g vercel
vercel

Fügen Sie eine vercel.json hinzu:

{
  "builds": [{ "src": "src/server.ts", "use": "@vercel/node" }],
  "routes": [{ "src": "/(.*)", "dest": "src/server.ts" }]
}

Setzen Sie alle Umgebungsvariablen im Vercel-Dashboard unter Project → Settings → Environment Variables.

Railway

npm install -g @railway/cli
railway login
railway init
railway up

Setzen Sie Umgebungsvariablen im Railway-Dashboard. Railway erkennt das npm start-Skript automatisch.

Fly.io

npm install -g flyctl
fly auth login
fly launch

Fly generiert eine fly.toml. Setzen Sie Geheimnisse mit:

fly secrets set SUPABASE_URL=... SUPABASE_SERVICE_KEY=... THIRDWEB_SECRET_KEY=...
fly deploy

Projektstruktur

hekkova-mcp/
├── src/
│   ├── server.ts          # Express + MCP server, auth middleware, rate limiter
│   ├── config.ts          # Typed config from environment variables
│   ├── types/index.ts     # TypeScript interfaces (Account, Moment, ApiKey, etc.)
│   ├── services/
│   │   ├── auth.ts        # API key validation and hashing
│   │   ├── database.ts    # Supabase queries (moments, accounts, API keys)
│   │   ├── blockchain.ts  # Thirdweb/Polygon minting (stub → real)
│   │   ├── storage.ts     # Pinata IPFS pinning (stub → real)
│   │   └── encryption.ts  # Lit Protocol encryption (stub → real)
│   └── tools/
│       ├── mint-moment.ts
│       ├── mint-from-url.ts
│       ├── list-moments.ts
│       ├── get-moment.ts
│       ├── update-phase.ts
│       ├── export-moments.ts
│       ├── get-balance.ts
│       └── get-account.ts
├── scripts/
│   ├── seed.ts            # Creates test account + API key in Supabase
│   └── test-client.ts     # Exercises all 8 tools against the running server
├── package.json
├── tsconfig.json
├── .env.example
└── README.md

Supabase-Schema

Sie benötigen diese Tabellen in Ihrem Supabase-Projekt:

-- Accounts
create table accounts (
  id text primary key default gen_random_uuid()::text,
  display_name text not null,
  light_id text,
  wallet_address text,
  mints_remaining integer not null default 0,
  total_minted integer not null default 0,
  default_phase text not null default 'new_moon',
  legacy_plan boolean not null default false,
  created_at timestamptz not null default now()
);

-- API Keys
create table api_keys (
  id text primary key default gen_random_uuid()::text,
  account_id text not null references accounts(id) on delete cascade,
  key_hash text not null unique,
  key_prefix text not null,
  environment text not null default 'live',
  created_at timestamptz not null default now(),
  revoked_at timestamptz
);

-- Moments
create table moments (
  id text primary key default gen_random_uuid()::text,
  account_id text not null references accounts(id) on delete cascade,
  block_id text not null unique,
  token_id integer not null,
  title text not null,
  description text,
  phase text not null,
  category text,
  encrypted boolean not null default false,
  media_cid text not null,
  metadata_cid text not null,
  media_type text not null,
  polygon_tx text not null,
  source_url text,
  source_platform text,
  eclipse_reveal_date timestamptz,
  tags text[] not null default '{}',
  timestamp timestamptz not null default now(),
  created_at timestamptz not null default now()
);

-- Indexes
create index on api_keys(key_hash);
create index on moments(account_id, timestamp desc);
create index on moments(block_id);

Vollständige Spezifikation

Siehe die vollständige technische Spezifikation: hekkova-mcp-server-spec.md

Produktions-Endpunkt: https://mcp.hekkova.com/mcp

-
security - not tested
F
license - not found
-
quality - not tested

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/Hekkova/hekkova-mcp'

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