NotesMosaic · for your AI

Connect your AI to NotesMosaic

Your own Claude, ChatGPT, Gemini, Cursor — any assistant that speaks MCP — can build, check, certify and publish games and apps in your NotesMosaic account. You sign in once and choose what it may do.

https://notesmosaic.com/mcp

How it works

  1. Add NotesMosaic to your AI app with the address above.
  2. Your app opens the NotesMosaic sign-in. Use the account you use in the app — Google, Apple or email.
  3. Press Allow. Then ask your AI to build something.

Disconnect any time: NotesMosaic app → Profile → Connected agents.

Pick your app

  1. Add it in one tap — claude.ai opens with NotesMosaic filled in: Add to Claude
  2. Or open Customize → Connectors yourself — on the web at claude.ai/customize/connectors, in Claude Desktop from the sidebar.
  3. Press +, then Add custom connector. Name it NotesMosaic and paste the address:
    https://notesmosaic.com/mcp
  4. If Claude asks how to sign in, keep Sign in now with Claude's own identity — no client ID or secret is needed.
  5. Press Add, then Connect, and sign in to NotesMosaic.

Free (one custom connector), Pro, Max, Team and Enterprise. On Team and Enterprise an Owner adds it first under Organization settings → Connectors; then you press Connect.

Added on the web or in Desktop, it works in Claude on your phone too.

On your phone

Claude

Tap the button on your phone: claude.ai opens with NotesMosaic filled in. Press Add, then Connect, sign in to NotesMosaic and Allow.

Add to Claude

If Claude asks you to sign in first, sign in, then tap the button again. Then, in the Claude app: + → Connectors → switch NotesMosaic on. Added on a computer, it is already in the app.

ChatGPT

ChatGPT runs NotesMosaic on a computer for now: add it at chatgpt.com in developer mode (the ChatGPT steps above).

ChatGPT’s phone app runs apps from its own directory, and NotesMosaic isn’t listed there yet.

Gemini

In your phone’s browser — not the Gemini app — open gemini.google.com → Menu → Settings → Connected Apps → Add a custom app and paste the address:

https://notesmosaic.com/mcp

Press Next, sign in and Allow. Then, in the Gemini app, type @ and pick NotesMosaic.

US, 18 and over, personal Google account.

Signing in on a phone

The sign-in opens over the app. Google, Apple and email all work there. Leave Keep me signed in ticked and reconnecting later is one tap.

If an app opens its own built-in browser instead, Google may refuse to sign in there — use email or Apple.

If your app can’t open a sign-in

A server, a script or an agent without a browser uses a personal token instead. In the NotesMosaic app: Profile → Connected agents → Personal tokens → New. It is shown once. Give it to your app as a header, Authorization: Bearer nm_pat_…:

Claude Code

claude mcp add --transport http --scope user notesmosaic https://notesmosaic.com/mcp --header "Authorization: Bearer nm_pat_…"

Codex — the variable holds the token alone

export NOTESMOSAIC_PAT=nm_pat_…
codex mcp add notesmosaic --url https://notesmosaic.com/mcp --bearer-token-env-var NOTESMOSAIC_PAT

Cursor — in the server's entry in mcp.json

"headers": { "Authorization": "Bearer ${env:NOTESMOSAIC_PAT}" }

Gemini CLI · Zed · others — in the server's entry

"headers": { "Authorization": "Bearer nm_pat_…" }

A token is a password: keep it out of chats and shared files. Revoke it any time on the same screen.

What your AI can do

Each is named on the sign-in screen before you allow it. None of them moves money.

Let it test on your computer

A coding assistant on your own computer — Claude Code, Codex, Cursor, Gemini CLI, VS Code — can run NotesMosaic’s check itself: it downloads our runner and opens the game in two browser windows on your screen for about a minute — or in none: tell it to run the check with --no-window and the same check runs out of sight. Your app asks you before each command. These are the only ones it needs:

curl -fsSL https://notesmosaic.com/mcp/runner.mjs -o runner.mjs
npm i --no-save playwright
npx playwright install chromium webkit
node runner.mjs playtest <the run’s address>
node runner.mjs certify <the run’s address>

Allow them once and it stops asking. The runner opens NotesMosaic’s own pages only, whatever follows those words.

Claude Code

.claude/settings.local.json in the folder you work in (only you, only there) or ~/.claude/settings.json (every folder). In a session, /permissions shows them; answering a prompt with "Yes, and don't ask again" adds one.

{
  "permissions": {
    "allow": [
      "Bash(curl -fsSL https://notesmosaic.com/mcp/runner.mjs -o runner.mjs)",
      "Bash(npm i --no-save playwright)",
      "Bash(npx playwright install chromium webkit)",
      "Bash(node runner.mjs playtest *)",
      "Bash(node runner.mjs certify *)"
    ]
  }
}

"mcp__notesmosaic" ← one more line in the same list: every NotesMosaic tool without a prompt (a connector added on claude.ai is named mcp__claude_ai_NotesMosaic)

Only if you turned the sandbox on (/sandbox): in ~/.claude/settings.json, so these commands run outside it — the runner downloads two browsers and opens them on your screen.

{
  "sandbox": {
    "excludedCommands": [
      "curl -fsSL https://notesmosaic.com/mcp/runner.mjs -o runner.mjs",
      "npm i --no-save playwright",
      "npx playwright install chromium webkit",
      "node runner.mjs playtest *",
      "node runner.mjs certify *"
    ]
  }
}
Codex

~/.codex/rules/default.rules (create it). Check a line with: codex execpolicy check --rules ~/.codex/rules/default.rules -- node runner.mjs certify https://…

prefix_rule(pattern = ["curl", "-fsSL", "https://notesmosaic.com/mcp/runner.mjs", "-o", "runner.mjs"], decision = "allow")
prefix_rule(pattern = ["npm", "i", "--no-save", "playwright"], decision = "allow")
prefix_rule(pattern = ["npx", "playwright", "install", "chromium", "webkit"], decision = "allow")
prefix_rule(pattern = ["node", "runner.mjs", ["playtest", "certify"]], decision = "allow")
Gemini CLI

~/.gemini/settings.json

{
  "tools": {
    "allowed": [
      "run_shell_command(curl -fsSL https://notesmosaic.com/mcp/runner.mjs -o runner.mjs)",
      "run_shell_command(npm i --no-save playwright)",
      "run_shell_command(npx playwright install chromium webkit)",
      "run_shell_command(node runner.mjs playtest)",
      "run_shell_command(node runner.mjs certify)"
    ]
  }
}

"trust": true ← in mcpServers.notesmosaic: every NotesMosaic tool without a prompt

VS Code (Copilot)

settings.json → chat.tools.terminal.autoApprove

{
  "chat.tools.terminal.autoApprove": {
    "/^curl -fsSL https:\\/\\/notesmosaic\\.com\\/mcp\\/runner\\.mjs -o runner\\.mjs$/": true,
    "/^npm i --no-save playwright$/": true,
    "/^npx playwright install chromium webkit$/": true,
    "/^node runner\\.mjs (playtest|certify) \\S+( --no-window)?$/": true
  }
}
Cursor

~/.cursor/cli-config.json (the Cursor CLI). Its list names a program, never a whole command: these four lines let it run ANY curl, npm, npx or node command — leave it asking each time if that is more than you want.

{
  "permissions": {
    "allow": [
      "Shell(curl)",
      "Shell(npm)",
      "Shell(npx)",
      "Shell(node)"
    ]
  }
}

"Mcp(notesmosaic:*)" ← one more line in the same list: every NotesMosaic tool without a prompt

In a chat app — ChatGPT, Claude on the web or your phone — there is nothing to set up: when your assistant runs a check, it runs in a small panel inside the conversation, on the device you are using. Nothing is sent to your phone, and nothing waits for you to tap.

Try asking

Your AI starts by telling NotesMosaic which model it is and how much budget you have; NotesMosaic plans the cheapest way that works — our engine, library and finished examples for a small model, your own assets for a big one.

If something is off

The sign-in page didn’t open

Claude Code: type /mcp, choose notesmosaic, then Authenticate. Codex: codex mcp login notesmosaic. Gemini CLI: /mcp auth notesmosaic. Anywhere else: remove NotesMosaic and add it again.

Claude says I have too many connectors

Claude Free has one custom connector. Remove another, or upgrade.

ChatGPT has no Create

Turn on Developer mode first (Plus, Pro, Business, Enterprise or Edu, on chatgpt.com).

Gemini has no Custom apps

For now it is for personal Google accounts in the US. Gemini CLI works everywhere.

My work account can’t add it

Claude Team and Enterprise: an Owner adds it first. ChatGPT Business: an admin turns on Developer mode. Copilot Business and Enterprise: the organization allows MCP servers.

A tool says it needs a permission

Connect again from your app — it asks for the permission, and you allow it on the sign-in screen.