关于 Contribution Exchange
Contribution Exchange 是 SignalAF SigRank Web 应用中的交换界面与 API,面向使用贡献交换工作流的 AI Agent。项目包含专用 MCP 端点,但文档未列出其具体工具。
主要功能
- 01交换界面与 API
- 02贡献交换服务端逻辑
- 03交换专用 MCP 端点
适用场景
- 01通过 AI Agent 使用贡献交换功能
- 02通过 API 接入交换工作流
MCP 相关
项目在 `app/api/exchange/mcp/` 提供交换专用 MCP 端点。README 未说明其具体工具或暴露的数据。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://signalaf.com/api/exchange/mcpclaude mcp add --transport http com-signalaf-contribution-exchange https://signalaf.com/api/exchange/mcp{"mcpServers":{"com-signalaf-contribution-exchange":{"type":"http","url":"https://signalaf.com/api/exchange/mcp"}}}在 Cursor 中打开{"servers":{"com-signalaf-contribution-exchange":{"type":"http","url":"https://signalaf.com/api/exchange/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-signalaf-contribution-exchange":{"type":"http","url":"https://signalaf.com/api/exchange/mcp"}}}{"mcpServers":{"com-signalaf-contribution-exchange":{"serverUrl":"https://signalaf.com/api/exchange/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| domain | string | 是 | 要检查的域名或 HTTPS URL(例如 'signalaf.com' 或 'https://signalaf.com')。将规范化为主机名。 |
详细介绍
SignalAF · SigRank Web 应用
在 signalaf.com 浏览 AI 操作者的令牌遥测数据、查看个人资料,并比较令牌级联指标。
在线网站 · 排行榜 · 方法论 · CLI 与 MCP · 本地设置
此代码库包含 Next.js 应用:排行榜首页、操作者个人资料、比较、信号殿堂、专题页面、账户、账单和服务端 API。
探索网站
| 页面 | 可进行的操作 |
|---|---|
| 排行榜 / 首页 | 按时间窗口和平台筛选数据;查看原始和衍生指标 |
| 操作者个人资料 | 查看个人统计数据、提交历史、徽章和账户设置 |
| 比较 | 查看两位操作者的遥测数据和指标差异 |
| 信号殿堂 | 浏览记录和徽章目录 |
| SigRank 概览 | 了解测量和注册流程 |
| 领域,文章,博客,维基 | 阅读研究、说明和指标定义 |
部分功能受限;请参阅功能开关。此 README 介绍源代码树,并不保证每个部署都配置了所有可选集成。
获取你自己的结果
使用此应用无需克隆代码库。运行 CLI/MCP 软件包:
npx sigrank # inspect local usage in the terminal
npx sigrank enroll # bind your device using a Settings connect code
npx sigrank submit --dry-run # inspect the payload without sending it
npx sigrank submit # publish a signed snapshot
在 signalaf.com 登录以创建连接码。要认领原始排行榜中的个人资料,必须通过 [email protected] 完成所有权验证。
测量内容
四个令牌支柱构成级联:输入、输出、缓存写入和缓存读取。Yield 的计算公式如下:
Υ = (cache_read × output) / input²
服务端会验证并重新评分提交数据。Leverage、Velocity、SNR 和 10xDEV 描述的是令牌处理模式;它们并非模型质量、工作质量、生产力或业务成果的衡量标准。
Upsilon 是测量引擎;SigRank 是 SignalAF 上的公开排行榜和证明页面。协议语义属于 TTEOP。定义和限制请参阅方法论和维基。
排名遥测数据不需要提示词文本、回复或源代码。提交内容还包含身份、设备/签名、平台和报告元数据;请参阅 CLI 隐私详情。
技术栈
- Next.js 16 App Router、React 19、TypeScript(严格模式)
- Tailwind CSS 3
- Supabase(Postgres、Auth、Realtime)
- Stripe Checkout、Billing Portal、webhooks
- Upstash Redis(用于速率限制;故障时回退到 Supabase Postgres)
- zod、Node 测试运行器、Vitest、Playwright
本地设置
需要 Node 22.x(package.json 中的 engines、.nvmrc)。
npm install
cp .env.example .env.local # optional; see Environment
npm run dev # http://localhost:3000
未配置的本地开发可在受支持的读取路径上使用快照或演示数据。这些并非实时遥测数据。实时排行榜数据、身份验证、签名写入和账单功能需要配置相应服务。如果已配置的数据库中没有匹配记录,系统将返回空结果,而不会伪造操作者历史记录。
脚本
| 命令 | 功能 |
|---|---|
npm run dev | 启动开发服务器 |
npm run build | 构建生产版本(next build --webpack) |
npm run start | 提供生产构建版本 |
npm run lint | 运行 ESLint |
npm test | 运行 __tests__/ 中的 Node 测试套件 |
npm run test:ui | 运行 Vitest 组件测试 |
npm run test:canonical | 检查 canonical ingest parity(MO§ES Υ 18436.98) |
npm run test:coverage | 使用 c8 覆盖率运行 npm test |
npm run e2e | 运行 Playwright 测试(e2e:local 的目标是 localhost:3000) |
npm run verify | 运行 tsc --noEmit、canonical 测试和 npm test |
npm run db:parity | 检查本地迁移与远程账本是否一致(CI 使用 db:parity:ci) |
npm run snapshot | 刷新冷存储看板快照 |
npm run sitemap:validate | 验证站点地图(:live 会检查生产环境) |
创建 PR 前,请运行 npm run verify 和 npm run build。
环境
将 .env.example 复制为 .env.local。文件列出了所有变量及其说明。切勿提交变量值。生产环境的值存储在 Vercel 环境变量中。
| 变量 | 用途 |
|---|---|
NEXT_PUBLIC_SUPABASE_URL、NEXT_PUBLIC_SUPABASE_ANON_KEY、SUPABASE_SERVICE_ROLE_KEY | 实时读取 Supabase 数据并通过 service-role 写入。服务端客户端需要这三个变量。 |
STRIPE_SECRET_KEY、NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY、STRIPE_WEBHOOK_SECRET、STRIPE_PRICE_* | 账单和 webhook |
NEXT_PUBLIC_SITE_URL | Stripe 重定向和公开 URL |
UPSTASH_REDIS_REST_URL、UPSTASH_REDIS_REST_TOKEN(或 Vercel 的 KV_REST_API_URL、KV_REST_API_TOKEN) | 共享速率限制器。如果没有 Upstash,限制器会使用 Supabase Postgres(api_rate_limit_hit,迁移 0055),然后使用每个实例独立的内存计数器。敏感写入路由会默认拒绝请求。 |
SIGRANK_RULESET | 仅限服务端的 RS.xx 评分覆盖项 |
SIGRANK_API_KEY | 公共 API 的可信批量读取密钥(x-api-key) |
SIGRANK_INGEST_WRITE | 设为 1 可将已验证的快照持久化到看板。 |
CRON_SECRET | /api/cron/recompute 的 Bearer 令牌 |
NEXT_PUBLIC_POSTHOG_KEY、NEXT_PUBLIC_POSTHOG_HOST、POSTHOG_KEY | 产品分析 |
RESEND_API_KEY、*AGENTMAIL_API_KEY | 联系表单和交换邮件 |
ALGOLIA_*、EXA_API_KEY、MOTHERDUCK_*、AI_GATEWAY_*、VERCEL_CLIENT_*、SIGNALAF_LIVE_TOKEN | 搜索、信息补充、分析、AI 网关、Vercel 集成、实时演示 |
NEXT_PUBLIC_REALTIME_ENABLED | 设为 false 可停用看板实时更新 |
功能标志
lib/features.ts 定义了这些标志。所有受控标志默认关闭,接受 1 或 true。
| 标志 | 控制内容 |
|---|---|
NEXT_PUBLIC_GATE_CHALLENGES | 对决挑战。还需要启用 NEXT_PUBLIC_GATE_ARENA。关闭时,/api/v1/challenges 返回 404。 |
NEXT_PUBLIC_GATE_ARENA | 挑战提交界面(启用 challenges 标志时必需) |
NEXT_PUBLIC_GATE_SIGNAL_DROP | 每周信号投放 |
NEXT_PUBLIC_GATE_BRACKETS | 盲选对阵 / Circle Wars |
NEXT_PUBLIC_GATE_TRADING_CARD_SPECIES | 交易卡上的物种徽章 |
数据库和迁移
迁移文件位于 supabase/migrations/。要了解当前架构和远程账本状态,请使用该目录和 npm run db:parity,不要依赖硬编码的迁移数量。部署依赖这些迁移的代码前,请先应用所需迁移;并先检查待执行的 SQL 和目标项目。
行级安全策略、种子数据和安全测试位于 supabase/。请参阅 supabase/README.md 来运行自己的实例。
项目目录
| 路径 | 内容 |
|---|---|
app/ | App Router 页面和 API 路由 |
app/api/v1/ | 公共 API:数据摄取、认领、设备、计费、指标、排行榜 |
app/api/mcp/、app/api/plugins/sigrank/mcp/、app/api/exchange/mcp/ | MCP 端点(主服务、分析师插件、交易所) |
app/exchange/、app/api/exchange/ | 贡献交易所 UI 和 API |
components/ | UI 组件 |
lib/board/ | 看板读取:Supabase、快照、模拟回退 |
lib/ingest/ | 负载解析、签名检查、级联物化 |
lib/analytics/ | 评分引擎和仅限服务端的规则集边界 |
lib/exchange/、lib/exchange-gateway/ | 交易所服务端逻辑和可移植网关参考实现 |
lib/infra/ | Supabase 客户端、Stripe、速率限制、API 门控 |
supabase/ | 迁移、策略、种子数据、SQL 测试、边缘函数 |
__tests__/、e2e/ | Node、Vitest 和 Playwright 测试 |
开发约定:
- 页面默认使用服务端组件。仅在需要钩子、处理程序或浏览器 API 时添加
'use client'。 - 不要将 RS.xx 评分配置放入客户端代码。
- 避免在模块作用域读取随机值和系统时间。
部署
推送到 main 后会部署至 Vercel(vercel.json)。每日 cron 会调用 /api/cron/recompute。在 Vercel 中设置环境变量。另有 OpenNext Cloudflare 部署路径(npm run preview、npm run deploy、wrangler.jsonc)。
安全
请私下报告漏洞。发送邮件给维护者,或创建私有 GitHub 安全公告。请勿公开提交漏洞问题。参见 SECURITY.md。
相关项目
- sigrank-mcp:
npx sigrank命令行工具、TUI 和 MCP 服务 - signalaf.com/score:输入四项令牌数量,获取预估收益
- MO§ES™:Upsilon 背后的治理框架
贡献
提交 问题,并附上复现步骤和 Node 版本。若要修改代码,请从 main 创建分支,保持改动精简,运行 npm run verify,然后提交 PR。参见贡献指南和行为准则。
许可证
MIT。参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。