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?

The 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 a hosted, remote MCP server at https://deeptap.io/api/mcp — nothing to install. You connect by signing in from your browser (OAuth); there is no API key to paste. Works from Claude Code, Codex, Claude Desktop and other MCP clients.

Prerequisites

  • A DeepTap account (any paid plan or active trial).
  • An MCP client that supports remote (HTTP) servers with OAuth — Claude Code, Codex, or Claude Desktop.

1. Add to Claude Code

Run this once — no key required:

terminal
claude mcp add --transport http deeptap https://deeptap.io/api/mcp

Type /mcp in Claude Code and pick deeptap. Your browser opens to sign in to DeepTap and approve access — after that the tools appear and you're connected.

2. Add to Codex

Option A — CLI

terminal
codex mcp add deeptap --url https://deeptap.io/api/mcp

Option B — config.toml

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

~/.codex/config.toml
# ~/.codex/config.toml
[mcp_servers.deeptap]
url = "https://deeptap.io/api/mcp"

On first use Codex opens your browser to sign in and approve access.

3. How sign-in works

  1. The first time your agent connects, it opens deeptap.io in your browser.
  2. Sign in with GitHub or Google (the same login as your dashboard).
  3. Approve access on the consent screen. The browser hands the connection back to your agent.
  4. You stay connected — the agent refreshes access automatically, so you only do this once.

Want to disconnect? Revoke access anytime from Dashboard → Settings, or remove the server from your client (claude mcp remove deeptap).

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
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/..."