io.github.FlywheelStudio/ulink
NPM · @ULINKLY/MCP-SERVER · SCANNED AUG 3
Deep linking for iOS, Android & Flutter. Firebase Dynamic Links alternative.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to FlywheelStudio/ulink-mcp-server). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 60 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability81
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 1879 tokens (~78/item across 24 items; 24 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @ulinkly/mcp-server
claude mcp add flywheelstudio-ulink -- npx -y @ulinkly/mcp-server
codex mcp add flywheelstudio-ulink -- npx -y @ulinkly/mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"flywheelstudio-ulink": {
"type": "local",
"command": [
"npx",
"-y",
"@ulinkly/mcp-server"
],
"enabled": true
}
}
} openclaw mcp add flywheelstudio-ulink --command npx --arg -y --arg @ulinkly/mcp-server
mcp_servers:
flywheelstudio-ulink:
command: "npx"
args: ["-y", "@ulinkly/mcp-server"] {
"mcpServers": {
"flywheelstudio-ulink": {
"command": "npx",
"args": [
"-y",
"@ulinkly/mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 +56
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- The attested source repository moved: FlywheelStudio/ulink-mcp-server security
- Security disclosure: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: unverified → excellent ▲ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- First check of Schema quality: unverified functional
- Licence: MIT functional
- 1 Aug 26 −7
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 27 Jul 26 46
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@ulinkly/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- FlywheelStudio/ulink-mcp-server
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/FlywheelStudio/ulink-mcp-server/.github/workflows/publish.yml@refs/tags/v0.1.15
- Rekor log index:
- 1180036053
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:dc52959b5d8de7229ceb0c9855ad4d039b4b54e2ac51b211fb3f9bac9b113c7a0de6df359c2cae216cb59bd008e90e60038e1a26452986756273a7ff1
- Discovery method:
- attestation_endpoint
Dependencies 95 packages
95 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
add_domain Add Domain ~72
Add a custom domain to a ULink project. After adding, you must configure DNS records and verify the domain before it can be used for links.
| Name | Type | Req | Description |
|---|---|---|---|
| host | string | yes | The domain hostname to add (e.g. links.example.com) |
| projectId | string | yes | The project to add the domain to |
No output schema declared.
No examples provided.
authenticate Authenticate ~66
Authenticate with ULink 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. After success, all other ULink tools become usable.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
check_auth_status Check Auth Status ~41
Check whether valid ULink authentication credentials exist. Returns authentication state without triggering any login flow. Call this first to determine if the authenticate tool needs to be called.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
configure_project Configure Project ~187
Update platform-specific configuration for a ULink 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.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeeplinkSchema | string | — | Android deeplink URI scheme (e.g. myapp://) |
| androidPackageName | string | — | Android package name (e.g. com.example.app) |
| androidSha256Fingerprints | array | — | SHA-256 certificate fingerprints for Android App Links verification |
| iosBundleIdentifier | string | — | iOS bundle identifier (e.g. com.example.app) |
| iosDeeplinkSchema | string | — | iOS deeplink URI scheme (e.g. myapp://) |
| iosTeamId | string | — | Apple Developer Team ID |
| projectId | string | yes | The unique identifier of the project to configure |
No output schema declared.
No examples provided.
create_api_key Create API Key ~78
Create a new API key for a ULink project. The full key value is only returned once in the response and cannot be retrieved again. Store it securely.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | A descriptive name for the API key (e.g. 'Production Server') |
| projectId | string | yes | The project to create the API key for |
No output schema declared.
No examples provided.
create_link Create Link ~269
Create a new smart link in a ULink project. Supports unified links (single URL that routes by platform) and dynamic links (parameterised deep links). You must specify the project, domain, and link type. Optionally set platform-specific URLs, fallback URLs, custom slug, metadata, and parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| androidFallbackUrl | string | — | Android-specific fallback URL (e.g. Play Store link) |
| androidUrl | string | — | URL to open on Android devices |
| domainId | string | yes | The domain to host the link on |
| fallbackUrl | string | — | Fallback URL for unsupported platforms |
| iosFallbackUrl | string | — | iOS-specific fallback URL (e.g. App Store link) |
| iosUrl | string | — | URL to open on iOS devices |
| metadata | object | — | Arbitrary metadata attached to the link |
| name | string | — | Human-readable name for the link |
| parameters | object | — | Key-value parameters passed through the deep link |
| projectId | string | yes | The project to create the link in |
| slug | string | — | Custom slug for the short URL (auto-generated if omitted) |
| type | string | yes | Link type: 'unified' for smart routing or 'dynamic' for parameterised deep links |
No output schema declared.
No examples provided.
create_project Create Project ~71
Create a new ULink project. A project is the top-level container for links, domains, and API keys. Requires a name and a default fallback URL.
| Name | Type | Req | Description |
|---|---|---|---|
| defaultUrl | string | yes | Default fallback URL used when no platform-specific URL matches |
| name | string | yes | Human-readable name for the project |
No output schema declared.
No examples provided.
delete_domain Delete Domain ~48
Remove a custom domain from a ULink project. Any links using this domain will stop working. This action is irreversible.
| Name | Type | Req | Description |
|---|---|---|---|
| domainId | string | yes | The unique identifier of the domain to delete |
No output schema declared.
No examples provided.
delete_link Delete Link ~46
Permanently delete a link. This is irreversible and the short URL will stop working immediately. Use with caution.
| Name | Type | Req | Description |
|---|---|---|---|
| linkId | string | yes | The unique identifier of the link to delete |
No output schema declared.
No examples provided.
get_link Get Link ~46
Retrieve detailed information about a specific link by its ID, including all platform URLs, parameters, metadata, and current configuration.
| Name | Type | Req | Description |
|---|---|---|---|
| linkId | string | yes | The unique identifier of the link |
No output schema declared.
No examples provided.
get_link_analytics Get Link Analytics ~78
Retrieve click analytics for a specific link. Returns aggregated data such as total clicks, unique clicks, and breakdowns by platform, country, and referrer for the requested time period.
| Name | Type | Req | Description |
|---|---|---|---|
| linkId | string | yes | The unique identifier of the link |
| period | string | — | Time period for analytics data (defaults to 7d) |
No output schema declared.
No examples provided.
get_onboarding_status Get Onboarding Status ~63
Get the onboarding progress for a ULink 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.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | The project ID to check onboarding status for. |
No output schema declared.
No examples provided.
get_project Get Project ~44
Retrieve detailed information about a specific ULink project by its ID, including configuration, domains, and membership details.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | The unique identifier of the project |
No output schema declared.
No examples provided.
get_subscription Get Subscription ~66
Retrieve the active subscription for a specific project, including plan name, billing period, status, and renewal date. Subscriptions are per-project.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | — | The project ID to get the subscription for. If omitted, the API returns the subscription for the user's first project. |
No output schema declared.
No examples provided.
get_usage Get Usage ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | — | The project ID to get usage for. If omitted, the API returns usage for the user's first project. |
No output schema declared.
No examples provided.
list_api_keys List API Keys ~63
List all API keys for a ULink project. API keys are used for server-side and SDK authentication. Returns key metadata (name, prefix, creation date) but never the full key value.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | The project whose API keys to list |
No output schema declared.
No examples provided.
list_domains List Domains ~51
List all domains associated with a ULink project, including shared domains and any custom domains that have been added. Shows verification status for each domain.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | The project whose domains to list |
No output schema declared.
No examples provided.
list_links List Links ~84
List all links in a ULink project with optional pagination. Returns an array of link objects with their configuration, URLs, and metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Number of links to return (max 100) |
| offset | integer | — | Number of links to skip for pagination (starts at 0) |
| projectId | string | yes | The project whose links to list |
No output schema declared.
No examples provided.
list_plans List Plans ~52
List all available ULink subscription plans with their features, limits, and pricing. Useful for comparing plans or determining upgrade options.
| Name | Type | Req | Description |
|---|---|---|---|
| billingPeriod | string | — | Billing period to show pricing for (default: monthly). |
No output schema declared.
No examples provided.
list_projects List Projects ~39
List all ULink projects owned by or shared with the authenticated user. Returns an array of project objects including id, name, slug, and default URL.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
revoke_api_key Revoke API Key ~50
Permanently revoke an API key. Any applications using this key will immediately lose access. This action cannot be undone.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKeyId | string | yes | The unique identifier of the API key to revoke |
No output schema declared.
No examples provided.
update_link Update Link ~176
Update an existing link's properties. You can change the name, platform-specific URLs, fallback URLs, parameters, and metadata. Only the fields you provide will be modified.
| Name | Type | Req | Description |
|---|---|---|---|
| androidFallbackUrl | string | — | New Android-specific fallback URL |
| androidUrl | string | — | New URL to open on Android devices |
| fallbackUrl | string | — | New fallback URL for unsupported platforms |
| iosFallbackUrl | string | — | New iOS-specific fallback URL |
| iosUrl | string | — | New URL to open on iOS devices |
| linkId | string | yes | The unique identifier of the link to update |
| metadata | object | — | New arbitrary metadata attached to the link |
| name | string | — | New human-readable name for the link |
| parameters | object | — | New key-value parameters passed through the deep link |
No output schema declared.
No examples provided.
update_project Update Project ~71
Update the name and/or default URL of an existing ULink project. Only the fields you provide will be changed.
| Name | Type | Req | Description |
|---|---|---|---|
| defaultUrl | string | — | New default fallback URL |
| name | string | — | New name for the project |
| projectId | string | yes | The unique identifier of the project to update |
No output schema declared.
No examples provided.
verify_domain Verify Domain ~52
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.
| Name | Type | Req | Description |
|---|---|---|---|
| domainId | string | yes | The unique identifier of the domain to verify |
No output schema declared.
No examples provided.