agentPickup

io.github.dav3trad3rPublished by GitHub account dav3trad3rv0.3.1Updated Nov 5, 2026

Find pickup shops near you, order, pay by card or USDC (x402), and get the QR to collect in person.

The publisher's own server: Useful Work

VerifiedStreamable HTTPWeb executableLocation & LifestyleFinanceBusiness & Commerce

Overview

AI-generated overview

Lets an assistant find nearby pickup shops, place orders, pay by card or USDC over x402, and hand over the QR pass to collect in person.

What you can do
  • Find shops by coordinates, place name or query, with address, hours, distance and matching items
  • Inspect a shop's menu, prices, pickup location and accepted payments
  • Create pickup orders for in-person collection, by wallet payment or a card checkout link
  • Pay orders in USDC over x402 and retrieve the pickup pass, code and QR
  • Run group orders: start one with a shareable code, join and pay a share, check status, close early
When to use it
Useful when a user wants something bought online and collected at a local shop, such as a coffee run or a nearby store pickup, and is willing to pay by card or from a crypto wallet. Also fits multi-person orders where each person pays their own share.
Requirements
Remote endpoint at agentpickup.app, or the npm package run locally with Node 22.13 or later. Local use needs AGENTPICKUP_SHOP_URL and, for actual payment, AGENTPICKUP_WALLET_KEY holding USDC; AGENTPICKUP_MAX_PER_ORDER, AGENTPICKUP_NETWORKS and AGENTPICKUP_DIRECTORY_URL are optional. The user's email is needed for pickup QR delivery.
Before you install
pay_order spends real money from the configured wallet; without AGENTPICKUP_WALLET_KEY it only quotes. The wallet key is a private key, so use a wallet holding only what you are willing to let an agent spend, and keep AGENTPICKUP_MAX_PER_ORDER low. Orders send the user's email to the shop, and group orders share a join code. Confirm items and total before paying.

Installation

In SourceWeft

  1. Open agentPickup in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.dav3trad3r%2Fagentpickup/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "agentpickup": {
      "type": "http",
      "url": "https://agentpickup.app/mcp"
    }
  }
}

README

@agentpickup/mcp

An MCP server for agentPickup shops. It lets an AI agent find pickup shops near its user, see what they sell, order, pay by card or in USDC over x402, and hand its user the QR they show at the counter to collect.

Tools

ToolWhat it does
find_shopsShops near a point (lat/lng), in a suburb (place) or selling something (query), from the agentPickup directory: each one's shop_url, address, hours, open now, distance and matching items
get_shopItems and prices, the pickup location, and how the shop takes payment
create_pickup_orderCreates an order. Needs the user's email, where the shop sends the receipt and pickup QR. A test shop marks it paid straight away, with no money moving. Where the shop takes cards, payment: "card" returns a checkout link for the user to pay on instead
pay_orderPays the order's x402 link from your wallet and returns the pass link. With no wallet set up, returns the price and pay link instead. For a card order, returns its checkout link
order_statusWaiting for payment, paid, ready, collected or expired
get_pickup_passFetches the pass link, pickup code and QR again by signing in as the paying wallet (Sign-In-With-X)
start_group_orderStarts a group order (a coffee run) with a closing time; returns the code to share and a key to close it early
join_group_orderAdds the user's items to a group order by its code; pay the share with pay_order before it closes
group_order_statusWho's in, what they ordered, who has paid, and whether the shop's order is ready or collected
close_group_orderCloses a group order early, as its organiser; the shop gets one combined order and the organiser its QR

Use it

Try it against the hosted demo shop first. It pays with the demo's own small wallet, within the demo's caps:

json
{ "mcpServers": { "agentpickup": { "type": "http", "url": "https://agentpickup.app/mcp" } } }

Or run it locally against any agentPickup shop, with your own wallet:

json
{  "mcpServers": {    "agentpickup": {      "command": "npx",      "args": ["-y", "@agentpickup/mcp"],      "env": {        "AGENTPICKUP_SHOP_URL": "https://orders.yourshop.com",        "AGENTPICKUP_WALLET_KEY": "0x…",        "AGENTPICKUP_MAX_PER_ORDER": "$25"      }    }  }}
SettingDefault
AGENTPICKUP_SHOP_URLthe demo shopThe shop to order from. Tool calls can also name another shop with shop_url
AGENTPICKUP_WALLET_KEYnoneAn EVM private key holding USDC. Without it, pay_order only quotes
AGENTPICKUP_MAX_PER_ORDER$25The most the wallet pays for one order
AGENTPICKUP_NETWORKSeip155:84532Networks the wallet may pay on. Base Sepolia (test USDC) unless you add eip155:8453 for Base mainnet
AGENTPICKUP_DIRECTORY_URLhttps://agentpickup.app/directory/v1/shopsWhere find_shops searches. off leaves the tool out

Use a wallet that holds only what you're willing to let an agent spend. The tools tell the model to confirm items and the total with the user before paying.

Host it in your own server

ts
import { createMcpHandler, walletPayer } from "@agentpickup/mcp";
const mcp = createMcpHandler({ shopUrl: "https://orders.yourshop.com" }); // no wallet: pay_order quotesapp.all("/mcp", (c) => mcp(c.req.raw)); // Streamable HTTP, stateless, any Request/Response runtime

Node 22.13 or later. Licence: FSL-1.1-ALv2 (free to use and self-host; becomes Apache-2.0 two years after each release).

Source: packages/mcp/README.md at commit f70d35d

Tools

10

find_shops

Find pickup shops

Find agentPickup shops to order from: near a point (lat/lng), in a suburb or city (place), or selling something (query). Returns each shop's shop_url, pickup address, hours, whether it's open now, distance, and matching menu items.

Parameterslatlnglimitplacequeryopen_nowradius_km

get_shop

See what a shop sells

What the shop sells (item ids and prices), where to collect, and which payments it takes.

Parametersshop_url

create_pickup_order

Order for pickup

Create an order to collect in person. Returns the order id and total; pay it with pay_order. The shop emails the pickup QR to `email` once it's paid. Where the shop takes cards, `payment: "card"` returns a checkout link for the user to pay on instead.

Parametersnameemailrequireditemsrequiredpaymentshop_url

pay_order

Pay for an order

Pay an order in USDC over x402 from wallet 0xd253e213cE143Aa0E1e1cAfc92f7AE82c98aB3bB. This spends money: confirm the items and total with the user first. Returns the pickup pass link.

Parametersorder_idrequiredshop_url

order_status

Check an order

Whether an order is waiting for payment, paid, ready to collect, collected or expired.

Parametersorder_idrequiredshop_url

get_pickup_pass

Get the pickup pass

The pass link, pickup code and QR content for an order this wallet paid, by signing in with the wallet (Sign-In-With-X).

Parametersorder_idrequiredshop_url

start_group_order

Start a group order

Start a group order (a coffee run) at a shop. Returns a code to share: each person's agent joins with it and pays for their own items. When it closes, the shop gets one combined order and the organiser is emailed its pickup QR.

Parameterstitleshop_urlorganiser_namerequiredorganiser_emailrequiredcloses_in_minutes

join_group_order

Join a group order

Add the user's items to a group order with its code. Returns the order id; pay it with pay_order before the group closes. The organiser collects everything, so the user gets a receipt, not a QR.

Parameterscoderequirednamerequiredemailrequireditemsrequiredshop_url

group_order_status

Check a group order

Who's in a group order, what they ordered, who has paid, and whether it has closed and been collected.

Parameterscoderequiredshop_url

close_group_order

Close a group order now

Close a group order early, as its organiser. Unpaid shares are left out; the shop gets the rest as one order.

Parameterscoderequiredshop_urlorganiser_keyrequired

Version history

3
  1. v0.3.1LatestNov 5, 2026
  2. v0.2.0Nov 3, 2026
  3. v0.1.1Nov 3, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Usefulwork integrations