Hekkova MCP Server
Hekkova MCP 服务器
AI 代理的永久内存层。连接任何兼容 MCP 的 AI(Claude、ChatGPT、Gemini、Cursor、自定义代理)并将时刻(照片、视频、音频、文本)永久铸造到 Polygon 区块链上,结合 IPFS + Filecoin 存储、Lit Protocol 加密以及让您控制谁能看到什么的隐私分级。
快速开始
# 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连接 Claude Desktop
将此内容添加到您的 Claude Desktop 配置文件中:
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"
}
}
}
}对于生产环境,请替换 URL 和 API 密钥:
{
"mcpServers": {
"hekkova": {
"type": "url",
"url": "https://mcp.hekkova.com/mcp",
"headers": {
"Authorization": "Bearer hk_live_YOUR_API_KEY"
}
}
}
}在 hekkova.com/dashboard/keys 获取您的 API 密钥。
工具参考
工具 | 描述 |
| 将媒体(照片、视频、音频、文本)永久铸造到 Polygon。根据阶段进行加密,固定到 IPFS,并铸造 ERC-721 NFT。返回一个区块 ID。 |
| 获取公共 URL(推文、Instagram 帖子、图片、网页)并进行铸造。自动提取 og:title 和 og:image。 |
| 所有已铸造时刻的分页列表。可按阶段、类别或搜索查询进行过滤。 |
| 通过区块 ID 获取单个时刻的详细信息:CID、交易哈希、阶段、标签等。 |
| 更改时刻的隐私阶段。消耗 1 个积分(文本/图像)或 2 个积分(视频)。Legacy 计划每月包含 10 次免费的阶段转换。 |
| 将所有时刻导出为 JSON 或 CSV。返回一个包含所有区块 ID 和 IPFS CID 的 24 小时下载链接。 |
| 检查剩余铸造积分、当前计划(free / arc_builder / legacy)以及阶段转换余额。 |
| 账户身份:Light ID、显示名称、钱包地址、默认阶段和 Legacy 计划状态。 |
隐私阶段
阶段 | 访问权限 | 加密 |
| 仅限所有者 | Lit Protocol (所有者钱包 ACC) |
| 亲密圈子 (2–10 人) | Lit Protocol (共享访问条件) |
| 扩展群组 (最多 50 人) | 通过 Hekkova ERC-721 进行代币门控 |
| 完全公开 | 无 |
时刻类别
类别 | 含义 |
| 重大人生事件 |
| 罕见时刻 |
| 一生一次 |
| 时间锁定 — 密封直到 |
| 未分类 |
速率限制
计划 | 请求数/分钟 | 铸造数/分钟 |
Sandbox (测试密钥) | 10 | 1 |
Standard (任何付费包) | 60 | 10 |
Legacy 计划 | 120 | 20 |
速率限制标头包含在每个响应中:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1710680460运行测试
# Make sure the server is running in another terminal
npm run dev
# Run the test client
npm run test-client部署
Vercel (Serverless)
npm install -g vercel
vercel添加一个 vercel.json:
{
"builds": [{ "src": "src/server.ts", "use": "@vercel/node" }],
"routes": [{ "src": "/(.*)", "dest": "src/server.ts" }]
}在 Vercel 仪表板的“项目”→“设置”→“环境变量”下设置所有环境变量。
Railway
npm install -g @railway/cli
railway login
railway init
railway up在 Railway 仪表板中设置环境变量。Railway 将自动检测 npm start 脚本。
Fly.io
npm install -g flyctl
fly auth login
fly launchFly 将生成一个 fly.toml。使用以下命令设置密钥:
fly secrets set SUPABASE_URL=... SUPABASE_SERVICE_KEY=... THIRDWEB_SECRET_KEY=...
fly deploy项目结构
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.mdSupabase 架构
您需要在 Supabase 项目中创建这些表:
-- 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);完整规范
查看完整技术规范:hekkova-mcp-server-spec.md
生产环境端点:https://mcp.hekkova.com/mcp
This server cannot be installed
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