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
- Open Dashboard → Settings → API Keys.
- Click Create key and give it a name (e.g. "Claude Code MCP").
- Copy the full key — it starts with
dt_live_.
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):
claude mcp add --scope user --transport stdio deeptap \
--env DEEPTAP_API_KEY=dt_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-- npx -y deeptap-mcpThen verify it's connected by typing /mcp in Claude Code — you should see deeptap with its tools.
3. Add to Codex
Option A — CLI
codex mcp add deeptap \
--env DEEPTAP_API_KEY=dt_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-- npx -y deeptap-mcpOption B — config.toml
Add a server table to ~/.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.
| Value | Required | Where to find it |
|---|---|---|
| API key | Yes | Dashboard → Settings → API Keys |
| Subdomain label | Yes | You choose it, e.g. myapp → myapp.deeptap.io |
| iOS Team ID | For iOS | Apple Developer → Membership (10 characters) |
| iOS Bundle ID | For iOS | Xcode target, or app.json |
| Android package name | For Android | applicationId in build.gradle / app.json |
| SHA-256 fingerprint | For Android | ./gradlew signingReport, keytool -list, or Play Console → App integrity |
| Fallback / store URLs | Optional | Where to send users without the app (web, App Store, Play Store) |
5. Example prompts
Paste any of these into Claude Code or Codex:
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.Read my app.json, then create and configure a DeepTap domain that
matches my iOS bundle id and Android package, and verify it.Verify my DeepTap domain and list any problems with the
apple-app-site-association or assetlinks.json files.Check my DeepTap plan and how many domains I can still create.Available tools
get_account— account, plan, and limitslist_domains— all your domainsget_domain— one domain's config and file URLscreate_domain— create & configure a domainupdate_domain— change iOS/Android settingsverify_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.
- 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/..."