unstuckmcp

dtdannen/unstuckmcp

3.4

If you are the rightful owner of unstuckmcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Unstuck AI is an MCP server that facilitates AI agents in paying humans with Bitcoin to solve visual tasks via a Nostr marketplace.

unstuck-ai

MCP server enabling AI agents to instantly pay humans sats (Bitcoin) to solve visual roadblocks (captchas, web navigation, computer use) via a Nostr marketplace. Includes the MCP server and web app for humans to bid on tasks, complete them, and get paid.

🎥 Video Demonstrations

Quick Start with Goose

Want to use this with Goose? See for complete setup instructions.

⚠️ IMPORTANT: Goose Version Distinction

There are two different AI assistants named "Goose":

  • Block's Goose (https://github.com/block/goose) - Version 1.0.x+, has MCP support with --with-remote-extension
  • goose-ai (PyPI package) - Version 0.9.x, different project, NO MCP support

This project requires Block's Goose for MCP integration. Install it from: https://block.github.io/goose/docs/getting-started/installation

  1. Install dependencies: cd mcp_server && pip install -r requirements.txt
  2. Configure environment variables in mcp_server/.env
  3. Add the extension to your Goose config (~/.config/goose/config.yaml)
  4. Run goose session and ask for visual help!

Development Plan

Components:

  1. MCP Server

    • sends a kind 5109 event request for visual computer interaction help
    • listens for feedback responses for prices and corresponding invoices
    • selects an offer by paying the invoice
    • receives the result, returns it as the result of the MCP tool call
    • (testing) check invoice was paid in payment simulator before sending 6109
    • get image upload working on digital ocean
    • get goose or claude to take a screenshot and call the mcp tool correctly
    • provide a docker container to run an MCP based agent (like the claude computer use demo here https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo)
      • you should be able to navigate to a webpage on your computer that lets you interact with Goose running in the VM
      • it should work as if you were running it locally
      • we expect it will be easier to get automation tools working in this VM, because you can safely get goose to work with full permissions
    • get goose to execute the action that the human gives (from the result of the mcp tool call)
      • translate coordinates to correct coordinates on screen
      • get an automation library to work that performs clicking, double clicking, and dragging
    • change hosting of screenshots from digital ocean spaces to a blossom server
    • have the mcp server post a kind 1 note linking to the job to advertise it among social media and increase the odds of a human being notified more quickly
  2. Unstuck Frontend (Job Board and Workspace)

    • User login via Nostr
    • Pull job offers from Nostr relays
    • Allow user to set a default job amount in sats
    • Display job offers
    • Allow user to select a job
      • generate a lightning invoice for the amount
      • broadcast a kind 7000 event with the invoice and price
      • show a notification when the invoice was paid
        • one suggestion is to use bitconnect instead of webln + browser extension (current demo shows alby extension)
    • Show a workspace like page for the user to do the work
    • Send the final job result event when the user is done
  3. Misc

How to use

Currently, the demo requires digital ocean spaces credentials for hosting the uploaded screenshots (any boto3 provider might work easily, like AWS) and it requires a Nostr Wallet Connect string (this is how the MCP Server pays the human's invoice). These should go into the .env file.

cp .env.example .env

Then put the credentials needed. The NOSTR_PRIVATE_KEY is for the AI agent, you probably want to generate a new one to use (i.e. it's not meant to be your personal nsec).

Set up python env

cd mcp_server/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

then start the mcp server from within the mcp_server folder

fastmcp run unstuck_ai/server.py:mcp --transport sse

then in another terminal run goose

goose session --with-remote-extension http://127.0.0.1:8000/sse

and then you can try using it with a propmt to goose like:

( O)> can you use the unstuck ai tool to get help so I can open safari on my machine? First take a screenshot of my screen, save it and print the file path, and then give that file path when you call the tool. There are lots of screenshots, so make sure you save the screenshot with a timestamp and record that timestamp so you use the right screenshot

This is a robust way to take screenshots:

screencapture -x /Users/dustin/screenshot_$(date +"%Y%m%d_%H%M%S").png

This is a robust way to check for the most recent screenshot

ls -la /Users/dustin/screenshot_*.png | tail -1

Make sure the file exists before calling the unstuck ai tool