Skip to content

[Story] Deep Linking for ToolHive Studio #956

@therealnb

Description

@therealnb

Story Title

As a user, I want to open a specific server install page by clicking on a link

Description

Deep Linking Implementation for ToolHive Studio

Enable one-click navigation from error messages or documentation directly to ToolHive Studio's server installation page, providing a seamless UX when handling missing secrets or configuration issues.

Use Case

When an MCP server reports a missing secret or configuration issue, provide a clickable link that:

  1. Opens ToolHive Studio (or focuses if already open)
  2. Navigates to the correct server installation page
  3. Opens the installation dialog automatically

UX Improvement

Before: User sees error → Must manually open Studio → Navigate to Registry → Search for server → Click install (5 steps)
After: User sees error → Clicks link → Done! (1 click) ✨


Functionality Required

Custom URL Protocol (toolhive://)

  • Registered on all platforms (macOS, Windows, Linux)
  • Supported Action:
    • install-server - Navigate to server installation page with auto-opening dialog

Example:

toolhive://install-server?server=github&registry=official

Automatic Dialog Opening

When navigating via deep link, the registry page automatically:

  1. Navigates to the correct server's registry page
  2. Opens the installation dialog
  3. User can immediately fill in configuration and install

Acceptance Criteria

  1. Deep link from terminal:

    open "toolhive://install-server?server=github"
  2. HTTP control endpoint:

    curl -X POST http://127.0.0.1:51234/navigate \
      -H "Content-Type: application/json" \
      -d '{"url": "toolhive://install-server?server=github"}'
  3. App not running: Deep link launches app and navigates

  4. App already running: Deep link focuses app and navigates

Target Release

v0.0.0

Priority

Medium

Additional Context

meta-mcp doc https://docs.google.com/document/d/1N8ZEnc-t2pkvOYGGmS61Byu_1mqgqRe5M52Eh-CfAd4/edit?tab=t.0

https://github.com/StacklokLabs/research/issues/80
https://github.com/StacklokLabs/research/issues/79

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions