DeepTap MCP Server

Configure iOS Universal Links and Android App Links — and verify they actually work — straight from your coding agent in Claude Code or Codex.

What is the DeepTap MCP?

deeptap-mcp is a Model Context Protocol server. Once connected, your agent can create a deep-link domain, set up the iOS/Android configuration, and run a pre-flight check on the generated apple-app-site-association and assetlinks.jsonfiles — all through the DeepTap API. It's published on npm as deeptap-mcp and runs locally via npx.

Prerequisites

  • A DeepTap account (any paid plan or active trial).
  • A DeepTap API key (created below).
  • Node.js 18+ installed (so the agent can run it with npx).
  • Claude Code or Codex CLI.

1. Get your API key

  1. Open Dashboard → Settings → API Keys.
  2. Click Create key and give it a name (e.g. "Claude Code MCP").
  3. Copy the full key — it starts with dt_live_.
Shown only once

The full key is displayed a single time at creation. After that only the first characters are shown — store it somewhere safe.

2. Add to Claude Code

Run this once (replace the key with your own):

terminal
claude mcp add --scope user --transport stdio deeptap \
  --env DEEPTAP_API_KEY=dt_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
  -- npx -y deeptap-mcp

Then verify it's connected by typing /mcp in Claude Code — you should see deeptap with its tools.

3. Add to Codex

Option A — CLI

terminal
codex mcp add deeptap \
  --env DEEPTAP_API_KEY=dt_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
  -- npx -y deeptap-mcp

Option B — config.toml

Add a server table to ~/.codex/config.toml:

~/.codex/config.toml
# ~/.codex/config.toml
[mcp_servers.deeptap]
command = "npx"
args = ["-y", "deeptap-mcp"]

[mcp_servers.deeptap.env]
DEEPTAP_API_KEY = "dt_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

4. What data you'll need

To set up a domain the agent needs the values below. You can paste them into the prompt, or let the agent read them from your project (app.json, Xcode, Gradle) if you give it file access.

ValueRequiredWhere to find it
API keyYesDashboard → Settings → API Keys
Subdomain labelYesYou choose it, e.g. myapp myapp.deeptap.io
iOS Team IDFor iOSApple Developer → Membership (10 characters)
iOS Bundle IDFor iOSXcode target, or app.json
Android package nameFor AndroidapplicationId in build.gradle / app.json
SHA-256 fingerprintFor Android./gradlew signingReport, keytool -list, or Play Console → App integrity
Fallback / store URLsOptionalWhere to send users without the app (web, App Store, Play Store)

5. Example prompts

Paste any of these into Claude Code or Codex:

Full setup
Set up DeepTap deep links for my app. Create a domain called "myapp".
iOS: team ABCDE12345, bundle com.example.myapp.
Android: package com.example.myapp, SHA-256 fingerprint AA:BB:CC:...
Add fallback URL https://example.com.
Then verify the domain and tell me what's left to do.
Let the agent read your project
Read my app.json, then create and configure a DeepTap domain that
matches my iOS bundle id and Android package, and verify it.
Verify only
Verify my DeepTap domain and list any problems with the
apple-app-site-association or assetlinks.json files.
Check plan & limits
Check my DeepTap plan and how many domains I can still create.

Available tools

  • get_account — account, plan, and limits
  • list_domains — all your domains
  • get_domain — one domain's config and file URLs
  • create_domain — create & configure a domain
  • update_domain — change iOS/Android settings
  • verify_domain — pre-flight the AASA & assetlinks files

Every response includes a meta block with your plan, usage, and rate limits, so the agent can tell you when a limit is reached.

What still needs you (on-device)
  • Rebuild & reinstall the app after adding associatedDomains / intent filters.
  • iOS caches AASA aggressively — existing installs can take up to 24h to pick up changes.
  • Tap-test on a device: xcrun simctl openurl booted "https://myapp.deeptap.io/..." / adb shell am start -a android.intent.action.VIEW -d "https://myapp.deeptap.io/..."