Ulink

io.github.FlywheelStudio由 GitHub 帳號 FlywheelStudio 發布v0.1.22更新於 Nov 3, 2026

Deep linking for iOS, Android, Flutter & React Native. Firebase Dynamic Links alternative.

概覽

AI 產生的概覽

將助理連接到 Ulinkly 帳號,用來建立與管理深度連結專案、智慧連結、自訂網域和 API 金鑰。

可以做什麼
  • 列出、建立、更新並設定專案,包含 iOS 與 Android 深度連結設定
  • 建立、列出、檢視、更新並永久刪除統一連結或動態智慧連結
  • 檢視單一連結的點擊分析,可依平台、國家和來源細分
  • 列出、新增、驗證並刪除自訂網域
  • 列出、建立並撤銷專案 API 金鑰
  • 查詢訂閱方案、可用方案以及各專案的使用量
適用情境
適合使用 Ulinkly 深度連結(Firebase Dynamic Links 的替代方案)的情境,想讓助理在對話中完成專案建置、產生智慧連結、設定自訂網域或取得點擊分析時使用。
執行需求
透過 npx 在本機執行,需要 Node.js 18 或更新版本。驗證方式有兩種:首次使用時在瀏覽器登入(權杖儲存在本機 Ulinkly 設定中並與 Ulinkly CLI 共用),或為無介面與 CI 環境設定 ULINK_API_KEY 環境變數。需要 Ulinkly 帳號,登入流程中可免費註冊。
安裝前請注意
此伺服器可建立、修改並永久刪除連結、網域和 API 金鑰;刪除連結或網域無法復原,且會讓現有短網址立即失效。新建的 API 金鑰只會顯示一次。它會持有帳號憑證(共用的本機權杖檔案或 ULINK_API_KEY),並將專案、連結與分析資料傳送給 Ulinkly。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ulink,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Ulinkly MCP Server

Connect your Ulinkly deep linking projects to Claude Code, Cursor, Windsurf, and other AI assistants.

The Model Context Protocol (MCP) standardizes how Large Language Models (LLMs) talk to external services like Ulinkly. It connects AI assistants directly with your Ulinkly account and allows them to perform tasks like managing projects, creating smart links, configuring domains, and more. See the full list of tools.

Setup

1. Install the MCP server

Choose your MCP client and run the corresponding command:

Claude Code:

bash
claude mcp add ulink -- npx -y @ulinkly/mcp-server@latest

Cursor:

Open Settings > MCP > Add new MCP server, or add to .cursor/mcp.json:

json
{  "mcpServers": {    "ulink": {      "command": "npx",      "args": ["-y", "@ulinkly/mcp-server@latest"]    }  }}

Windsurf:

Open Settings > MCP > Add new MCP server, or add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "ulink": {      "command": "npx",      "args": ["-y", "@ulinkly/mcp-server@latest"]    }  }}

If you don't see your MCP client listed above, check your client's MCP documentation and use the following server command:

npx -y @ulinkly/mcp-server@latest

2. Authenticate

The MCP server shares authentication with the Ulinkly CLI. If you've already logged in via ulink login, the MCP server will use those tokens automatically — no extra login needed.

Otherwise, your MCP client will open a browser window for authentication on first use. Tokens are saved to ~/.ulink/config.json and shared with the CLI. The session persists and tokens refresh automatically.

API Key (alternative)

For CI environments or headless servers, set the ULINK_API_KEY environment variable to skip the browser flow:

Claude Code:

bash
claude mcp add ulink -e ULINK_API_KEY=your-api-key -- npx -y @ulinkly/mcp-server@latest

Manual config:

json
{  "mcpServers": {    "ulink": {      "command": "npx",      "args": ["-y", "@ulinkly/mcp-server@latest"],      "env": {        "ULINK_API_KEY": "your-api-key"      }    }  }}

You can generate an API key from the Ulinkly dashboard under Project Settings > API Keys, or by using the create_api_key tool.

3. Start building

Once connected, your AI assistant can manage your Ulinkly projects directly. Try asking it to:

  • "List my Ulinkly projects"
  • "Create a new smart link for my app"
  • "Show click analytics for my latest link"
  • "Add a custom domain to my project"

Tools

The following Ulinkly tools are available to the LLM, organized by category.

Project Management
  • list_projects: Lists all Ulinkly projects owned by or shared with the authenticated user.
  • get_project: Gets detailed information about a specific project, including configuration and membership.
  • create_project: Creates a new project with a name and default fallback URL.
  • update_project: Updates the name or default URL of an existing project.
  • configure_project: Sets platform-specific configuration (iOS bundle ID, Android package name, deeplink schemas, SHA-256 fingerprints).
Link Management
  • create_link: Creates a unified or dynamic smart link with platform-specific URLs, parameters, and metadata. Supports allowQueryPassthrough (see below).
  • list_links: Lists all links in a project with pagination.
  • get_link: Gets detailed information about a specific link.
  • update_link: Updates a link's URLs, parameters, or metadata. Supports allowQueryPassthrough (see below).
  • delete_link: Permanently deletes a link. This is irreversible.
  • get_link_analytics: Gets click analytics for a link, including total clicks and breakdowns by platform, country, and referrer.
Query Passthrough

Both create_link and update_link accept an allowQueryPassthrough boolean field (default: false). When enabled, query parameters appended to the link URL at click time (e.g. https://go.example.com/abc?orderId=123&ref=email) are merged into the resolved link's parameters and override any stored parameter with the same key. Parameter values always arrive as strings. The feature works on both immediate app open and after a deferred install — no SDK change is required.

Validation rules for passthrough parameters: keys must match [A-Za-z0-9_-]{1,64}, a maximum of 25 parameters are allowed, each value must be ≤ 1 024 characters, the total payload must be ≤ 4 KB, and the key debug is reserved.

Domain Management
  • list_domains: Lists all domains (shared and custom) associated with a project.
  • add_domain: Adds a custom domain to a project. Requires DNS configuration and verification.
  • verify_domain: Triggers DNS verification for a custom domain.
  • delete_domain: Removes a custom domain from a project. Links using this domain will stop working.
API Keys
  • list_api_keys: Lists all API keys for a project (metadata only, not the key value).
  • create_api_key: Creates a new API key. The full key is only returned once — store it securely.
  • revoke_api_key: Permanently revokes an API key. Applications using this key will immediately lose access.
Account & Billing
  • get_subscription: Gets a project's subscription plan, status, and renewal date. Accepts an optional projectId.
  • list_plans: Lists all available subscription plans with pricing and limits. Accepts an optional billingPeriod (monthly/yearly).
  • get_usage: Gets a project's usage statistics for the current billing period (clicks, links, API calls). Accepts an optional projectId.

Environment Variables

VariableDefaultDescription
ULINK_API_KEY—API key for authentication (skips browser OAuth flow)

Requirements

  • Node.js 18 or later

Resources

License

MIT

來源:README.md,提交 03b7410

工具

24

check_auth_status

Check Auth Status

Check whether valid Ulinkly authentication credentials exist. Returns authentication state without triggering any login flow. Call this first to determine if the authenticate tool needs to be called.

無需輸入參數。

authenticate

Authenticate

Authenticate with Ulinkly by opening a browser window for sign-in or sign-up. No existing account required — new users can create a free account during this flow. This is the first tool to call if check_auth_status reports no valid credentials. If a browser cannot be opened automatically, the response includes an 'authUrl' — present it to the user as a clickable link to open manually, then continue. After success, all other Ulinkly tools become usable.

無需輸入參數。

get_onboarding_status

Get Onboarding Status

Get the onboarding progress for a Ulinkly project, including which setup steps are complete and what to do next. Requires authentication. Use this after creating a project to guide users through setup.

輸入參數projectId必填

list_projects

List Projects

List all Ulinkly projects owned by or shared with the authenticated user. Returns an array of project objects including id, name, slug, and default URL.

無需輸入參數。

get_project

Get Project

Retrieve detailed information about a specific Ulinkly project by its ID, including configuration, domains, and membership details.

輸入參數projectId必填

create_project

Create Project

Create a new Ulinkly project. A project is the top-level container for links, domains, and API keys. Requires a name and a default fallback URL.

輸入參數name必填defaultUrl必填

update_project

Update Project

Update the name and/or default URL of an existing Ulinkly project. Only the fields you provide will be changed.

輸入參數nameprojectId必填defaultUrl

configure_project

Configure Project

Update platform-specific configuration for a Ulinkly project, such as iOS bundle identifier, Android package name, deeplink schemas, and SHA-256 fingerprints. These settings are used for deep link resolution on mobile platforms.

輸入參數iosTeamIdprojectId必填iosDeeplinkSchemaandroidPackageNameiosBundleIdentifierandroidDeeplinkSchemaandroidSha256Fingerprints

list_domains

List Domains

List all domains associated with a Ulinkly project, including shared domains and any custom domains that have been added. Shows verification status for each domain.

輸入參數projectId必填

add_domain

Add Domain

Add a custom domain to a Ulinkly project. After adding, you must configure DNS records and verify the domain before it can be used for links.

輸入參數host必填projectId必填

verify_domain

Verify Domain

Trigger DNS verification for a custom domain. The domain's DNS records must be correctly configured before verification will succeed. Returns the current verification status.

輸入參數domainId必填

delete_domain

Delete Domain

Remove a custom domain from a Ulinkly project. Any links using this domain will stop working. This action is irreversible.

輸入參數domainId必填

list_api_keys

List API Keys

List all API keys for a Ulinkly project. API keys are used for server-side and SDK authentication. Returns key metadata (name, prefix, creation date) but never the full key value.

輸入參數projectId必填

create_api_key

Create API Key

Create a new API key for a Ulinkly project. The full key value is only returned once in the response and cannot be retrieved again. Store it securely.

輸入參數name必填projectId必填

revoke_api_key

Revoke API Key

Permanently revoke an API key. Any applications using this key will immediately lose access. This action cannot be undone.

輸入參數apiKeyId必填

get_subscription

Get Subscription

Retrieve the active subscription for a specific project, including plan name, billing period, status, and renewal date. Subscriptions are per-project.

輸入參數projectId

list_plans

List Plans

List all available Ulinkly subscription plans with their features, limits, and pricing. Useful for comparing plans or determining upgrade options.

輸入參數billingPeriod

get_usage

Get Usage

Retrieve usage statistics for a specific project's active billing period, including link clicks, links created, and API calls against plan limits. Usage is per-project.

輸入參數projectId

版本歷史

2
  1. v0.1.22最新Oct 30, 2026
  2. v0.1.15Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分