Between Us MCP App
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., "@Between Us MCP Appdraw a card from the Near deck"
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.
Between Us
A relationship card game for two kinds of heart.
Between Us is a small MCP App for people who want to play relationship cards with the AI companion already present in their current chat.
It does not ship a separate chatbot. The app provides the cards, state, UI, and interaction flow; the connected chat model answers using the conversation it already has.
What it includes
Near · 靠近 — daily conversation, memories, small habits, and gentle questions.
Closer · 心跳 — attachment, dependence, intimacy, and relationship-focused prompts.
After Dark · 越界 — 18+ preference, fantasy, and boundary cards. Explicit adult confirmation is required before this deck can be drawn.
20 cards per deck.
Card flipping, reshuffling, history count, and a built-in favorites library.
“Let them answer” flow that sends the current card back into the active chat.
Responsive desktop/mobile UI.
Local preview mode for UI work without connecting a live MCP host.
OpenAI Secure MCP Tunnel helper scripts for local development.
Related MCP server: mcp-server-anki
How the interaction works
Open Between Us from the current chat.
Choose a deck.
Draw and flip a card.
Either answer it yourself, or press 让 TA 回答 / Let them answer.
The card is passed back to the current conversation so the AI companion can answer in context.
The app intentionally avoids creating a second chat or separate character system.
Tech stack
TypeScript
Node.js
Model Context Protocol (MCP)
@modelcontextprotocol/ext-apps@modelcontextprotocol/sdkVite
JSON card data
Project structure
between-us-mcp-app/
├─ data/
│ └─ cards.json
├─ src/
│ ├─ mcp-app.css
│ └─ mcp-app.ts
├─ scripts/
├─ standalone/
├─ server.ts
├─ main.ts
├─ mcp-app.html
├─ preview.html
├─ package.json
├─ TUNNEL_SETUP.md
└─ README.mdQuick start
Requirements:
Node.js
npm
Install dependencies:
npm installBuild:
npm run buildStart the MCP server:
npm run serveLocal endpoints used by the current development setup:
Health: http://127.0.0.1:8798/health
MCP: http://127.0.0.1:8798/mcpFor UI development:
npm run devThen open the Vite preview page shown in the terminal. The project supports a local preview mode via ?preview=1.
Connecting to ChatGPT
For local development, expose the MCP endpoint through a supported secure tunnel or another HTTPS endpoint.
This repository includes helper scripts for OpenAI Secure MCP Tunnel. See:
TUNNEL_SETUP.mdImportant:
Create your own Tunnel ID and Runtime API key.
Never commit Runtime API keys,
.envfiles, or.tunnel/.The included
.gitignoreexcludes local tunnel state, dependencies, build output, and environment files.After changing MCP App UI resources, rebuild/restart the server and reload/reconnect the tool in ChatGPT so the host refreshes the template.
Card data
Cards live in:
data/cards.jsonCurrent deck sizes:
Deck | Purpose | Cards |
Near · 靠近 | daily / memory / deep talk | 20 |
Closer · 心跳 | relationship / attachment / intimacy | 20 |
After Dark · 越界 | 18+ preference / fantasy / boundaries | 20 |
Current limitations
Session state is currently kept in memory and resets when the server restarts.
Favorites are session-scoped on the MCP server.
The project is optimized for ChatGPT MCP App hosting; other MCP hosts may render UI resources differently.
After Dark requires explicit adult confirmation.
Development notes
Older visual and fix notes are useful during development but are not required for runtime. Keeping them under docs/dev-notes/ is recommended so the repository root stays readable.
Security
Do not commit:
.tunnel/
.env
.env.*
node_modules/
dist/Before publishing changes, a simple local scan can help:
git grep -n -I -E "sk-|API_KEY|apiKey|CONTROL_PLANE_API_KEY|Bearer|runtime.*key"Variable names and setup instructions are expected; actual secret values are not.
License
Between Us is source-available, not OSI open source.
Current releases are licensed under the PolyForm Noncommercial License 1.0.0.
In practical terms:
Personal/noncommercial use is allowed.
Personal/noncommercial modification is allowed.
Noncommercial redistribution of modified versions is allowed only if the original attribution notice is preserved.
Commercial use is not allowed without separate written permission from IlyraVale.
Required attribution:
Required Notice: Between Us © 2026 IlyraVale. Original project by IlyraVale.See LICENSE for the authoritative license terms and NOTICE for the project attribution notice.
Previous versions that were already distributed under the MIT License remain subject to the license terms under which those copies were released. Starting with v1.2.10, current and future releases use PolyForm Noncommercial 1.0.0 unless explicitly stated otherwise.
Status
v1.2.10 — noncommercial licensing release
Core draw / flip / answer flow works on desktop and mobile ChatGPT. Drawing a card is intentionally neutral; the AI answers only when the user asks or uses the app's “Let them answer” action.
This server cannot be deployed
Maintenance
Related MCP Connectors
Free tarot for Claude & your AI — many decks, real card art, a true shuffle, drawn & discussed.
Tarot card meanings, spreads and seeded reproducible readings for AI agents, one API key.
Deck of Cards MCP — wraps deckofcardsapi.com (free, no auth)
- FlipnemOAuthcom.flipnem
Build and study spaced-repetition flashcards with your agent.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI assistants to manage Anki flashcard decks and cards through natural language, supporting deck creation, card additions (basic and cloze types), and review queue management.67 npm2MIT
- AlicenseAqualityDmaintenanceEnables AI tools to manage Anki flashcards, including deck management, card search, creation, editing, deletion, and statistics.1041 npm3Apache 2.0
- AlicenseNot gradedqualityCmaintenanceProvides tools to interact with the Deck of Cards API (deckofcardsapi.com) for card operations such as drawing, shuffling, and managing decks through natural language.2 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides tarot reading capabilities including drawing spreads, looking up card interpretations, listing cards, and retrieving reading history for LLM integration.4 npmISC