Build with AI
Connect your AI tools to Grovs, let a coding agent add the SDK for you, and give any model the docs in Markdown
Connect the MCP server
The Grovs MCP server lets an AI tool work with your projects: create and search links, group them into campaigns, read analytics, and set redirects and SDK settings. It uses OAuth: the first time you connect, your tool opens a browser and you approve it in the Grovs dashboard. There are no keys to copy.
https://mcp.grovs.io/mcpclaude mcp add grovs \ --transport http \ https://mcp.grovs.io/mcp
Server URL for Grovs Cloud: https://mcp.grovs.io/mcp. Running Grovs yourself? See Self-hosted MCP.
Step-by-step guides: Cursor, VS Code, Claude Code, Claude Desktop and Claude.ai, ChatGPT, Windsurf. What each tool does is in the tools reference.
Let an agent integrate the SDK
Paste a prompt into Claude Code, Cursor or Copilot inside your app's repository. The agent reads the Grovs docs through the link at the end of the prompt and makes the changes. Replace GROVS_API_KEY with however your project stores secrets, and check the diff before you commit.
Add Grovs deep linking to this iOS app.
- Add the Grovs Swift package https://github.com/grovs-io/grovs-iOS.git, Up to Next Major Version from 3.1.0, and link the Grovs library to the app target. If the project uses CocoaPods, add pod 'Grovs', '~> 3.1' instead.
- Call Grovs.configure(APIKey:useTestEnvironment:delegate:) in application(_:didFinishLaunchingWithOptions:) with the key in GROVS_API_KEY. Use useTestEnvironment: true only for debug builds.
- Forward incoming links with Grovs.handleSceneDelegate(...) from the SceneDelegate, or Grovs.handleAppDelegate(...) when there is no SceneDelegate.
- Add the Associated Domains capability with applinks: entries for the project's production and test link domains, and the URL scheme from the Grovs dashboard.
- Adopt GrovsDelegate and route grovsReceivedPayloadFromDeeplink(link:payload:tracking:) to the existing router.
- Build and tell me what you changed.
Docs: https://docs.grovs.io/docs/sdk/ios/quick-start.md
Add Grovs deep linking to this Android app.
- Add implementation("io.grovs:Grovs:3.1.0") to the app-level build.gradle.
- Call Grovs.configure(this, apiKey, useTestEnvironment = ...) in the Application class onCreate, with the key from the project's secrets setup (GROVS_API_KEY). Use the test environment only in debug builds.
- In the launcher activity, call Grovs.onStart(this) from onStart and Grovs.onNewIntent(intent, this) from onNewIntent.
- Add intent filters to the launcher activity for the custom URL scheme and for autoVerify App Links on the production and test link hosts.
- Register Grovs.setOnDeeplinkReceivedListener and route the payload to the existing navigation.
- Build and tell me what you changed, and the package name and SHA-256 fingerprint to register in the Grovs dashboard.
Docs: https://docs.grovs.io/docs/sdk/android/quick-start.md
Add the Grovs Web SDK to this web app.
- Install the grovs package, version 2.1.0 (npm install grovs).
- Call Grovs.configure with apiKey, testEnvironment, onDeeplink and onError once, on the client only, as early as possible, with the key in GROVS_API_KEY. Set testEnvironment to true only in development.
- Route the onDeeplink payload to the existing router.
- Call Grovs.setUserIdentifier with the signed-in user's ID after sign-in.
- Tell me what you changed, which origins I must register as linked domains in the Grovs dashboard, and whether the site's Content-Security-Policy allows inline scripts (HTML in-app messages need them).
Docs: https://docs.grovs.io/docs/sdk/web/quick-start.md
Add Grovs deep linking to this Flutter app.
- Add grovs_flutter_plugin: ^3.2.0 to pubspec.yaml and run flutter pub get. It needs Flutter 3.38.0 or later.
- Android: add the grovs_api_key and grovs_use_test_environment meta-data to AndroidManifest.xml, and intent filters for the custom URL scheme and autoVerify App Links on the production and test hosts. Set flutter_deeplinking_enabled to false on the launcher activity.
- iOS: add GrovsApiKey and GrovsUseTestEnvironment to Info.plist, the URL scheme, and the Associated Domains capability with applinks: entries for the production and test hosts. Set FlutterDeepLinkingEnabled to false in Info.plist.
- Take the key from GROVS_API_KEY through the project's secrets setup; don't commit it.
- Subscribe to Grovs().onDeeplinkReceived in the root widget and route the payload to the existing navigation.
- Build both platforms and tell me what you changed.
Docs: https://docs.grovs.io/docs/sdk/flutter/quick-start.md
Add Grovs deep linking to this React Native app.
- Install react-native-grovs-wrapper.
- In an Expo app with a development build, add the react-native-grovs-wrapper config plugin to app.json (apiKey, scheme, useTestEnvironment, associatedDomains) and run npx expo prebuild --clean. Otherwise wire the native side by hand as the docs describe: io.grovs:Grovs:3.1.0 and Grovs.configure in MainApplication, link forwarding in MainActivity and AppDelegate.swift, intent filters, URL scheme and Associated Domains.
- Take the key from GROVS_API_KEY; use the test environment only in debug builds.
- Register Grovs.onDeeplinkReceived early in the app and route the payload to the existing navigation.
- Build both platforms and tell me what you changed.
Docs: https://docs.grovs.io/docs/sdk/react-native/quick-start.md
Add Grovs deep linking to this Unity game.
- Check that External Dependency Manager for Unity (com.google.external-dependency-manager) is installed. If not, add it from OpenUPM.
- Add "com.grovs.sdk": "https://github.com/grovs-io/grovs-unity.git#upm/v1.0.0" to Packages/manifest.json.
- In Assets → External Dependency Manager → iOS Resolver → Settings, turn on "Add pods to Unity framework target" and "Link frameworks statically".
- Create Assets/Grovs/GrovsSettings.asset through Edit → Project Settings → Grovs. Leave the API key, URI scheme and link domains for me to fill in from the Grovs dashboard.
- In the first scene, subscribe to Grovs.DeeplinkReceived (namespace GrovsSDK) and route GrovsDeeplink.Data to the existing scene loading code. There is no init call.
- Check Player Settings → Android → Target API Level is 34 or higher. Build both platforms, then list what you changed.
Docs: https://docs.grovs.io/docs/sdk/unity/quick-start.md
More prompts, for adding deep linking to a screen, tracking a purchase and sending yourself a test push, are in AI prompts.
Give a model the docs
| URL | What it is |
|---|---|
/llms.txt | An index of every page, grouped by section, with a Markdown link and a one-line description for each. For tools that crawl. |
/llms-full.txt | All the docs in one file, to paste into a long context. |
/docs/<page>.md | Any page as Markdown. Add .md to its URL, for example /docs/sdk/ios/quick-start.md. |
Every page also has Copy page, View as Markdown, Open in Claude and Open in ChatGPT in its page menu. See Docs for LLMs.