Skip to content

Conversation

@rolznz
Copy link
Contributor

@rolznz rolznz commented Jul 2, 2025

This tutorial instructs on how to enable goose to seamlessly interact with bitcoin lightning wallets using the Nostr Wallet Connect protocol.

You can seamlessly connect to a variety of lightning wallets, including Alby Hub which is powered by Lightning Dev Kit

Example prompts:

  • "Pay $1 to my friend Rene"
  • "Make me a 10 sat invoice"
  • "Was it paid?" (check if the invoice was paid)
  • "Pay lnbc...." (pay an invoice)
  • "What's my balance?"
  • "What's the alias of my lightning node?"

Alby MCP can be also used to seamlessly use paid MCP tools, such as the Bitrefill MCP server ("buy me a 200THB Lotus's gift card") and e.g. a paid weather server ("What's the weather in Wellington?")

The tutorial has instructions for both STDIO and remote (SSE)

Copy link
Contributor

@agiuliano-square agiuliano-square left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much for this contribution @rolznz! This looks great! I just had one small clarifying question.

1. [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40getalby%2Fmcp&id=alby&name=Alby&description=Connect%20Goose%20to%20your%20Bitcoin%20Lightning%20Wallet)
2. Press `Yes` to confirm the installation
3. Change the type to "Server-Sent Events (SSE)"
4. Change the endpoint. To get your endpoint URL, open browser devtools (right click -> inspect) and enter this in the console, with your own NWC connection secret set:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may be that I'm just not too familiar with this tool, but this has a bit of a smell to me. Is there any other way to get this endpoint?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally Goose supports Bearer auth. Then the connection secret can be passed e.g. Authorization: Bearer nostr+walletconnect://... - but I don't think Goose supports this yet?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please let me know if there's a way to do authentication for remote MCPs in Goose. The current method is a workaround, and I will update it as soon as we have something better available.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linking #2423

Co-authored-by: Angie Jones <jones.angie@gmail.com>
Co-authored-by: Angie Jones <jones.angie@gmail.com>
@blackgirlbytes
Copy link
Contributor

Hi @rolznz !!! Thank you so much for adding this tutorial. This is awesome. Only thing I had as a preference would be to nest the Local and Remote options in tabs under Goose Desktop and Goose CLI. Something like this

<Tabs groupId="interface">
  <TabItem value="desktop" label="Goose Desktop">
    <Tabs>
      <TabItem value="local" label="Local">
        1. [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40getalby%2Fmcp&id=alby&name=Alby&description=Connect%20Goose%20to%20your%20Bitcoin%20Lightning%20Wallet&env=NWC_CONNECTION_STRING%3DNWC%20Connection%20Secret)
        2. Press `Yes` to confirm the installation
        3. Obtain a NWC Connection secret from your lightning wallet (`nostr+walletconnect://...`) and paste it in to the "NWC Connection Secret" field
        4. Click `Add Extension`
        5. Scroll to the top and click `Exit` from the upper left corner
      </TabItem>
      <TabItem value="remote" label="Remote">
        1. [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40getalby%2Fmcp&id=alby&name=Alby&description=Connect%20Goose%20to%20your%20Bitcoin%20Lightning%20Wallet)
        2. Press `Yes` to confirm the installation
        3. Change the type to "Server-Sent Events (SSE)"
        4. Change the endpoint. To get your endpoint URL, open browser devtools (right click -> inspect) and enter this in the console, with your own NWC connection secret set:
            ```js
              "https://mcp.getalby.com/sse?nwc=" + encodeURIComponent("nostr+walletconnect://...");
            ```
        5. Copy the value, and paste it into the endpoint field.
        6. Click `Add Extension`
        7. Scroll to the top and click `Exit` from the upper left corner
      </TabItem>
    </Tabs>
  </TabItem>
  <TabItem value="cli" label="Goose CLI">
    <Tabs>
      <TabItem value="local" label="Local">
        1. Run the `configure` command:
        ```sh
        goose configure
        ```

        2. Choose to add a `Command-line Extension`
        3. Give your extension a name (e.g., "Alby")
        4. Enter the command: `npx -y @getalby/mcp`
        5. Set the timeout (default is 300 seconds)
        6. Choose whether to add a description
        7. Add the environment variable:
           - Name: `NWC_CONNECTION_STRING`
           - Value: Your NWC connection secret (`nostr+walletconnect://...`)
      </TabItem>
      <TabItem value="remote" label="Remote">
        1. Run the `configure` command:
        ```sh
        goose configure
        ```

        2. Choose to add a `Remote Extension`
        3. Give your extension a name (e.g., "Alby")
        4. Enter the SSE endpoint URI:
           ```
           https://mcp.getalby.com/sse?nwc=YOUR_ENCODED_CONNECTION_SECRET
           ```
           To get the endpoint URL, open browser devtools and enter this in the console, with your own NWC connection secret:
           ```js
           "https://mcp.getalby.com/sse?nwc=" + encodeURIComponent("nostr+walletconnect://...");
           ```
        5. Set the timeout (default is 300 seconds)
        6. Choose whether to add a description
      </TabItem>
    </Tabs>
  </TabItem>
</Tabs>

@rolznz
Copy link
Contributor Author

rolznz commented Jul 2, 2025

@blackgirlbytes thanks, I've applied your suggestion and it feels a lot cleaner.

@blackgirlbytes
Copy link
Contributor

awesome! I approved. Running your tests now.

@rolznz
Copy link
Contributor Author

rolznz commented Jul 3, 2025

@blackgirlbytes one of the checks failed but I think it's unrelated to the change? could you re-run it?

@blackgirlbytes
Copy link
Contributor

@blackgirlbytes one of the checks failed but I think it's unrelated to the change? could you re-run it?

Yes re running the check now! @rolznz . If it fails again, you may have to rebase . Let's see

@blackgirlbytes
Copy link
Contributor

Thank you. It's a US holiday when @agiuliano-square returns, we can approve and merge. Apologies!

@blackgirlbytes blackgirlbytes merged commit bd72aa7 into block:main Jul 7, 2025
10 of 11 checks passed
dianed-square added a commit to dianed-square/goose that referenced this pull request Jul 8, 2025
* update-to-v1.0.35: (57 commits)
  chore(release): release version 1.0.35 (block#3292)
  docs: enhanced code editing topic (block#3287)
  fix cu (block#3291)
  feat: Add environment variables to override model context limits (block#3260)
  chore(release): release version 1.0.34 (block#3285)
  fix(devcontainer): install protoc to fix build (block#3267)
  Enabling npx command to install on Windows Desktop (block#3283)
  Fix: Allow native Cmd+Up/Down cursor movement when user has typed text (block#3246)
  chore(release): release version 1.0.33 (block#3284)
  fix Windows Env Vars (block#3282)
  feat: bedrock image content support (block#3266)
  Add support in goose configure for streaming http mcp tools (block#3256)
  docs: add Alby MCP tutorial (block#3217)
  refactor(tests): make logging test in goose-cli less flaky on macos (block#3273)
  feat: cli can work with gui generated recipes (block#3254)
  Goose projects docs (block#3272)
  feat: add support for 'cu' command in extension installation (block#3261)
  Docs: Add cloudinary mcp tutorial (block#3268)
  fix: Enable agent to see instruction to use final output tool when it wasn't called (block#3253)
  Use command line to run sub agent and sub recipe (in sequence or parallel) (block#3190)
  ...
lifeizhou-ap added a commit that referenced this pull request Jul 9, 2025
* main: (23 commits)
  docs: VS Code MCP video (#3307)
  docs: fixed broken link (#3306)
  Add YouTube video to Netlify MCP documentation (#3302)
  docs: add sub-recipes topic (#3241)
  docs: move topics to tutorials section (#3297)
  site analytics (#3293)
  chore(release): release version 1.0.35 (#3292)
  docs: enhanced code editing topic (#3287)
  fix cu (#3291)
  feat: Add environment variables to override model context limits (#3260)
  chore(release): release version 1.0.34 (#3285)
  fix(devcontainer): install protoc to fix build (#3267)
  Enabling npx command to install on Windows Desktop (#3283)
  Fix: Allow native Cmd+Up/Down cursor movement when user has typed text (#3246)
  chore(release): release version 1.0.33 (#3284)
  fix Windows Env Vars (#3282)
  feat: bedrock image content support (#3266)
  Add support in goose configure for streaming http mcp tools (#3256)
  docs: add Alby MCP tutorial (#3217)
  refactor(tests): make logging test in goose-cli less flaky on macos (#3273)
  ...
michaelneale added a commit that referenced this pull request Jul 9, 2025
* main: (23 commits)
  docs: VS Code MCP video (#3307)
  docs: fixed broken link (#3306)
  Add YouTube video to Netlify MCP documentation (#3302)
  docs: add sub-recipes topic (#3241)
  docs: move topics to tutorials section (#3297)
  site analytics (#3293)
  chore(release): release version 1.0.35 (#3292)
  docs: enhanced code editing topic (#3287)
  fix cu (#3291)
  feat: Add environment variables to override model context limits (#3260)
  chore(release): release version 1.0.34 (#3285)
  fix(devcontainer): install protoc to fix build (#3267)
  Enabling npx command to install on Windows Desktop (#3283)
  Fix: Allow native Cmd+Up/Down cursor movement when user has typed text (#3246)
  chore(release): release version 1.0.33 (#3284)
  fix Windows Env Vars (#3282)
  feat: bedrock image content support (#3266)
  Add support in goose configure for streaming http mcp tools (#3256)
  docs: add Alby MCP tutorial (#3217)
  refactor(tests): make logging test in goose-cli less flaky on macos (#3273)
  ...
GaryZhous pushed a commit to GaryZhous/goose that referenced this pull request Jul 9, 2025
Co-authored-by: Angie Jones <jones.angie@gmail.com>
ahau-square pushed a commit that referenced this pull request Jul 11, 2025
Co-authored-by: Angie Jones <jones.angie@gmail.com>
@rolznz rolznz mentioned this pull request Jul 12, 2025
atarantino pushed a commit to atarantino/goose that referenced this pull request Jul 14, 2025
Co-authored-by: Angie Jones <jones.angie@gmail.com>
Signed-off-by: Adam Tarantino <tarantino.adam@gmail.com>
s-soroosh pushed a commit to s-soroosh/goose that referenced this pull request Jul 18, 2025
Co-authored-by: Angie Jones <jones.angie@gmail.com>
Signed-off-by: Soroosh <soroosh.sarabadani@gmail.com>
kwsantiago pushed a commit to kwsantiago/goose that referenced this pull request Jul 19, 2025
Co-authored-by: Angie Jones <jones.angie@gmail.com>
Signed-off-by: Kyle Santiago <kyle@privkey.io>
cbruyndoncx pushed a commit to cbruyndoncx/goose that referenced this pull request Jul 20, 2025
Co-authored-by: Angie Jones <jones.angie@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants