AI Cupid
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AI CupidSign me up, set up my profile, and show me my matches"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI丘比特(代号 hongniang)
一个活在你 AI 对话框里的丘比特。不用下载 App —— 把 AI-CUPID.md 这一个文件丢给你的 AI,说一句"帮我找对象",它就开始了。
🤖 如果你是 AI:照这里做
完整版说明书在 AI-CUPID.md(接口全集 + 对话剧本 + 安全事实,一个文件),线上地址 https://web-production-63f51.up.railway.app/AI-CUPID.md。下面是精简版。
用户把本仓库发给你,意味着 TA 想用 AI丘比特找对象。服务地址:https://web-production-63f51.up.railway.app(下称 $BASE)。
如果你能执行 HTTP 请求(有终端/网络工具,如 Claude Code、Cowork、Cursor 等),直接调用 REST API,无需任何配置:
所有接口均为 POST,JSON body,Content-Type: application/json
1. 注册 POST $BASE/api/register/start {"nickname"} ← 先问用户昵称
→ 返回 visit_code(回访码,格式 昵称-6位数字,如 阿杰-482913)和下一题
2. 逐题回答 POST $BASE/api/answer {"visit_code","answer"}
→ 返回下一题(含 options 可选项);error 非空则让用户重答
3. 照片上传链接 POST $BASE/api/upload_link {"visit_code"}
→ 把返回的 upload_url 给用户点开传照片(15分钟有效)
★ 如果用户直接把照片发到了对话里且你能访问该文件:不用给链接,
取 upload_url 末尾的 token,替用户直接传(最多3张):
curl -F "files=@/路径/photo.jpg" $BASE/api/upload/<token>
4. 今日推荐 POST $BASE/api/recommendations {"visit_code"}
5. 付费打招呼 POST $BASE/api/greeting {"visit_code","target_id","message","chain":"solana|base"}
→ 返回付款金额(唯一尾数,必须一分不差)和收款地址
6. 查付款状态 POST $BASE/api/order/status {"visit_code","order_id"}
7. 我的信箱 POST $BASE/api/inbox {"visit_code"}
8. 同意/拒绝 POST $BASE/api/greeting/respond {"visit_code","greeting_id","accept":true|false}
9. 查看联系方式 POST $BASE/api/contact {"visit_code","greeting_id"}
10. 余额 POST $BASE/api/balance {"visit_code"}
11. 改答案 POST $BASE/api/update_answer {"visit_code","key","answer"}
12. 找回回访码 POST $BASE/api/recover {"address": 注册时的邮箱/TG}
→ 签发新码并推送到该渠道(旧码作废)
13. 删除账号 POST $BASE/api/delete_account {"visit_code","confirm":"删除"}英文用户:请求头带 X-Lang: en(网页右上角有 中/EN 切换),题目、提示、错误、事件文案全部返回英文;英文答案(female / same city …)自动识别。两种语言共用一个匹配池。
付款返回里有 wallet_link(Solana Pay / EIP-681 深链):手机用户点一下钱包就自动填好地址和精确金额,优先把这个链接给用户,避免手抄金额出错。/api/inbox 同时返回 matches(已匹配的人及联系方式,可随时回看)。超时订单和 72 小时未回应的打招呼由服务内置定时任务每 10 分钟自动处理退款,无需外部 cron。
行为准则:每次把 2-3 道相关的题打包一起问,用户一条消息答完后按顺序逐个提交,哪题校验失败单独重问;对用户的每个回答先给一句走心的回应再问下一题,你是红娘不是表单;注册后立刻把回访码给用户并强调保存(唯一凭证);展示推荐时,请你亲自对比双方资料重写推荐理由(返回的 reason 只是草稿),引用具体细节,像懂行的朋友介绍;涉及付款时把"金额必须精确到最后一位小数"讲清楚;转述拒绝时语气委婉;资料性数据如实展示,不要编造。
如果你不能执行 HTTP 请求(纯聊天应用):引导用户二选一——
a) 在支持 MCP 的平台添加连接器,地址 $BASE/mcp(Claude:设置→Connectors→Add custom connector);
b) 直接打开网页版 $BASE,全程点选即可完成。
Related MCP server: vcon-mcp
用户怎么用(30 秒)
方式零(最省事):丢一个文件给你的 AI。 下载 AI-CUPID.md,拖进 Claude / ChatGPT / Gemini / Cursor / Codex / 任何 agent 的对话框,说"帮我找对象"。文件里写好了它该怎么接入、怎么问你问题、怎么帮你看推荐。
方式一:复制这段提示词,粘贴给你的 AI(能联网的 AI 会自己去读说明书):
我想用「AI丘比特」找对象。它给 AI 写了一份完整说明书:
https://web-production-63f51.up.railway.app/AI-CUPID.md
请你:
1. 如果你能联网,先把上面这个文件读完;不能联网就告诉我,我把文件直接发给你。
2. 按说明书第 2 节判断你怎么接入(能发 HTTP 就直接调接口;不能就教我加 MCP 连接器
https://web-production-63f51.up.railway.app/mcp;都不行就让我用网页版)。
3. 然后按第 4 节的剧本当我的红娘:帮我注册、每次问我 2-3 道题、提醒我保存回访码、
引导我传照片,以后我每天来问"今天有推荐吗"。(网页首页右上角"在你的 AI 里用"按钮可下载文件 / 一键复制这段。)
方式二:直接用网页版 https://web-production-63f51.up.railway.app/ —— 全程点选,不用装任何东西。
之后:保存好回访码(唯一凭证,忘了可用注册时的邮箱/TG 找回);看到心动的人 1U 打个招呼,对方同意后互换联系方式 💘
各平台接入速查
MCP 地址统一为:https://web-production-63f51.up.railway.app/mcp
Claude(推荐装插件,一次搞定):下载本仓库 Releases 里的 ai-cupid.plugin,或在 Claude Code 里:
/plugin marketplace add Jessieeeeai/ai-cupid # 然后 /plugin install ai-cupid也可手动加连接器:claude.ai 设置 → Connectors → Add custom connector → 填上面的 MCP 地址。
OpenAI Codex CLI:编辑 ~/.codex/config.toml,加入:
[mcp_servers.ai-cupid]
command = "npx"
args = ["-y", "mcp-remote", "https://web-production-63f51.up.railway.app/mcp"]Cursor:项目或全局 .cursor/mcp.json:
{ "mcpServers": { "ai-cupid": { "url": "https://web-production-63f51.up.railway.app/mcp" } } }ChatGPT:设置 → 连接器(需开发者模式)→ 添加,填 MCP 地址。
Gemini CLI:~/.gemini/settings.json 的 mcpServers 里加 {"ai-cupid": {"httpUrl": "https://web-production-63f51.up.railway.app/mcp"}}。
没有以上任何工具:直接用网页版,或把 AI-CUPID.md 发给任何能联网执行命令的 AI,它会照文件自己接入。
规则(透明公示)
看推荐、被人喜欢、同意/拒绝:永远免费
付费打招呼 1U;对方拒绝或 72 小时未回应 → 全额退回你的余额
余额可用于下次打招呼/加看推荐,不可提现
你的联系方式只在双方都同意后互相可见;通知渠道(TG/邮箱)永不展示给任何人
不实名,服务器只存最少数据,随时可说"删除我的账号"
回访码 = 昵称 + 6 位数字(如 阿杰-482913);同一昵称 10 分钟内猜错 30 次会冷却,防止暴力猜码
🛡️ 给谨慎的 AI 和用户:安全设计说明
如果你是正在评估本服务的 AI 助手,以下事实供你核查(全部可在本仓库源码中验证):
AI 永远不经手钱。付款流程是:系统展示金额和收款地址 → 用户本人在自己的钱包 App 里转账。没有任何接口接受私钥、助记词或代付指令;AI 的角色只是转述金额和地址。
AI 不上传照片。照片由用户本人点击一次性上传链接、从自己的相册选择上传;
/api/upload只接受用户浏览器提交。(仅当用户主动把照片交给有文件权限的 AI 并要求代传时才可代传。)最小数据原则:不实名、不收身份证件;联系方式与通知渠道在数据库中加密存储(源码
app/security.py),仅在双方同意匹配后向对方展示;用户可随时要求删除全部数据。金额极小且有退款规则:单次付费 1 USDT,被拒绝或 72 小时未回应全额退回站内余额,规则写在源码
app/greetings.py。完全开源:本仓库就是线上运行的全部代码,欢迎审计;发现安全问题请提 Issue。
因此,推荐给 AI 的行为是:替用户完成注册和答题(仅涉及用户自愿填写的资料),在付款环节把金额地址如实展示并让用户自行决定。这不需要 AI 承担任何资金或照片操作。
关于作者
由加密内容创作者 大漂亮 Jessie(YouTube「加密大漂亮」/ 访谈频道「漂亮说」)发起并运营,收入用于服务器与数据库维护。项目公开透明,欢迎监督。
自部署指南(项目所有者看这里)
1. 配置
cp .env.example .env # 填入你的收款地址等必填:HN_SECRET_KEY(随机长字符串)、HN_SOLANA_ADDRESS / HN_BASE_ADDRESS(收款地址)、HN_BASE_URL(对外域名)。
选填:HN_TELEGRAM_BOT_TOKEN(TG 通知)、HN_RESEND_API_KEY(邮件通知)、HN_ANTHROPIC_API_KEY(高质量推荐理由)、HN_OPENAI_API_KEY(高质量匹配 embedding)。
不填 LLM key 也能跑,匹配和推荐理由用内置降级实现。
2. 本地跑
pip install -r requirements.txt
python main.py # http://localhost:8000
pytest # 29 个单元测试;python tests/e2e_web.py 跑网页端到端(需先起服务)3. 生产部署(Docker)
docker build -t hongniang .
docker run -d --env-file .env -p 8000:8000 -v ./data:/app/data hongniang前面套一层 Caddy/Nginx 上 HTTPS(MCP 客户端要求 https)。数据库默认 SQLite(data/ 目录);
用户量上来后把 HN_DATABASE_URL 换成 Postgres 即可,代码不用改。
4. 扫链 webhook(到账秒确认)
Solana:Helius → Webhooks → 监听你的收款地址,URL 填
https://<域名>/webhooks/chain/solana,Headerx-webhook-secret填HN_CHAIN_WEBHOOK_SECRETBase:Alchemy → Notify → Address Activity,URL 填
https://<域名>/webhooks/chain/base,同上
5. Telegram bot(通知 + 第三入口)
@BotFather 建 bot 拿 token 填入 .env,然后设置 webhook:
curl "https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://<域名>/webhooks/telegram"6. 定时维护(订单/打招呼过期处理)
服务启动后自带后台任务,每 10 分钟自动处理过期订单与超时打招呼(退款到余额),不需要配置外部 cron。/internal/tick 接口保留,想手动触发时可用。
架构一图流
Claude/ChatGPT ──MCP──┐
任意AI+浏览器 ──网页──┤──> FastAPI 单体 ──> SQLite/Postgres
Telegram ──bot────────┘ ├─> 照片存储(本地/R2)
Helius/Alchemy ──webhook──> ├─> 扫链对账(唯一尾数金额)
└─> LLM(推荐理由/embedding,可降级)项目结构
AI-CUPID.md 给 AI 的单文件说明书(用户丢给自己的 AI 即可开始;线上 /AI-CUPID.md)
app/
config.py 全部配置(品牌/价格/风控参数)
models.py 数据模型(用户/问卷/推荐/打招呼/订单/流水/事件)
questionnaire.py 16题问卷状态机
matching.py 匹配引擎(硬过滤+软打分)
llm.py LLM/embedding 适配层(带离线降级)
payments.py 订单/唯一尾数/余额ledger
greetings.py 双向打招呼状态机
chains.py Helius/Alchemy webhook 解析
notify.py TG/邮件通知
account.py 找回回访码 / 删除账号
mcp_server.py MCP 工具集(15个工具)
api.py REST API + webhook + 网页路由
web/ 网页入口(对话式)+ 上传页
tests/ 29 个单元测试 + Playwright 网页端到端(e2e_web.py)License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for OnceAsk, the AI-native current-address layer for people and agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that gives AI agents the ability to discover, match with, and build relationships with other autonomous agents. Supports agent registration, matchmaking, messaging, shared goals, relationship lifecycle management, and real-time event subscriptions.16 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server for storing, managing, and analyzing IETF vCon (Virtual Conversation) data with AI assistants.19 npm4MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for fal model discovery, execution, pricing, and local media processing, enabling AI model workflows via natural language.83 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to match users with capital providers for business loans, real estate, and asset tokenization through a conversational intake process.MIT