Search / io.github.dav3trad3r/agentpickup
agentPickup
R0· no sign-inLets AI agents buy from physical businesses: find, order, pay, and collect in person with a QR.
v0.7.4 · active · repository · website · descriptor JSON · versions
Search / io.github.dav3trad3r/agentpickup
R0· no sign-inLets AI agents buy from physical businesses: find, order, pay, and collect in person with a QR.
v0.7.4 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"agentpickup": {
"type": "http",
"url": "https://agentpickup.app/mcp"
}
}
}claude mcp add --transport http agentpickup https://agentpickup.app/mcp[mcp_servers.agentpickup]
url = "https://agentpickup.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"agentpickup": {
"type": "remote",
"url": "https://agentpickup.app/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"agentpickup": {
"type": "http",
"url": "https://agentpickup.app/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=agentpickup&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYWdlbnRwaWNrdXAuYXBwL21jcCJ9"
}{
"servers": {
"agentpickup": {
"type": "http",
"url": "https://agentpickup.app/mcp"
}
}
}{
"mcpServers": {
"agentpickup": {
"httpUrl": "https://agentpickup.app/mcp"
}
}
}extensions:
"agentpickup":
enabled: true
name: "agentpickup"
type: streamable_http
uri: "https://agentpickup.app/mcp"
timeout: 300
protocol.modernprotocol.statelessprotocol.transportprotocol.list_ttlauth.prm, auth.as_metadata, auth.cimdauth.secret_in_urltools.descriptionstools.description_lengthtools.schemastools.annotationstools.directory_hintstools.token_costtools.api_dumptools.hidden_textstability.changesstability.rug_pullstability.new_linksdeps.known_vulns, deps.mcp_sdk_version, deps.resolvablecreate_alertchangedinput schemaanswer_offerchangedinput schemamake_offerchangedinput schemasearch_listingschangedinput schemacreate_listingchangedinput schemastart_sellingchangedinput schemamy_payoutsaddedWhat the person has made selling on agentPickup's marketplace: each item handed over, with its price, agentPickup's 2.5% fee, Stripe's card fee, what they got and when it reaches their Stripe balance; payments still held until a handover; and, from Stripe, their balance, recent payouts to their bank and the bank account (last four digits only). Casual sellers have no Stripe dashboard, so this is where they see their money: present it however suits them (a table, totals, a chart). If Stripe needs anything more from them, start_selling gives a fresh Stripe link. Needs sign-in.
start_sellingchangeddescription, input schemameaning changedSets the person up to sell items on agentPickup: makes their seller account with Stripe, which checks their identity and bank account, and returns the link to finish Stripe's sign-up. Give the person the link: they complete it themselves, and the assistant never handles their details. Call again for a fresh link. Needs sign-in.
Sets the person up to be paid for what they sell on agentPickup's marketplace, through Stripe, and returns the link to Stripe's sign-up. Give the person the link: they complete it themselves, and the assistant never handles their details. seller_type casual (the usual case) is a person selling their own things: Stripe asks only for their name, date of birth, address and bank account (sometimes photo ID), and there's no Stripe login to set up; agentPickup shows them their money afterwards (my_payouts). business is a registered business that wants its own full Stripe account and dashboard. Ask the person if it isn't clear. A listing can only go up once this is finished. Call again for a fresh link. Needs sign-in.
my_alertsaddedLists the person's alerts for items on agentPickup's marketplace; with stop_alert_id, stops that one first. Needs sign-in.
create_alertaddedSets an alert on agentPickup's marketplace for something the person wants that isn't listed yet (or that they want more of): words, a category, a top price, and a place and distance. When a matching item is listed, they get an email. Up to 10 alerts; my_alerts lists or stops them. Needs sign-in.
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +website +reachable +uptime-100% +updated-1d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@agentpickup/[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://agentpickup.app/mcp streamable-http | none | yes | 100% | 557 ms | 2025-11-25 | 2026-11-14 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@agentpickup/mcp | npm | 0.7.4 | – | AGENTPICKUP_WALLET_KEY |
add_listing_photos | ChatGPT only: adds photos the person attached in the chat to one of their draft listings (up to 8 in all), which ChatGPT passes as files with download links. Never use photos from the web or anywhere else: a listing shows the seller's own item. Other assistants can't pass attached photos to a tool: give the person the listing's upload page link instead (create_listing and get_listing return it). Location and camera details are removed from every photo. Needs sign-in. |
answer_offer | Answers an offer in a conversation about an item: the seller accepts, declines or counters a buyer's offer (a counter is between the offer and the price); the buyer accepts or declines the seller's counter. Accepting lets the buyer buy at that price within 24 hours. Only what the person decided. Needs sign-in. |
ask_about_shopread-only | Answer a question about a shop that its menu doesn't: dietary needs and allergies (gluten-free, vegan, nuts), reviews, opening hours, where it is, parking, wait times, prices. Use it whenever the user asks something like that about a shop. Send the question in a few words, without names or other personal details. It answers from what the shop has said, says plainly what the shop hasn't, and tells the shop which topics people ask about (never the question itself). |
ask_seller | Asks the seller of an item on agentPickup's marketplace a question before buying: is it still available, its condition, sizes, whether it fits. Opens a private conversation between the person and the seller, shown as a card; the seller gets an email if they don't read it soon. Contact details, other apps and links aren't shared until the person buys, and payment only goes through agentPickup. The seller is emailed if they don't read it within a couple of minutes; their answer appears in this conversation (open_deal) and the person is emailed when it arrives. Send only what the person asked, in their words. Needs sign-in. |
buy_listing | Buys an item from agentPickup's marketplace at its listed price, for the person to pick up in person. Reserves it for 30 minutes and returns Stripe's payment page: the person pays there themselves. Their card is held, not charged, until they collect the item and the seller confirms the handover. Check the item and the price with them first. Needs sign-in. |
cancel_pickup_orderdestructive | Cancel a pickup order when the user asks, with the claim create_pickup_order returned. An unpaid order just closes. A paid one can be cancelled until the shop starts making it, and what was paid goes back the way it was paid (a card refund can take a few business days to show). Once the shop has started it, or it's ready, the user asks staff at the counter instead. |
cancel_purchasedestructive | Cancels a purchase before the handover, when the person (the buyer, or the seller) asks to. The buyer's card was only held, so the hold is released and nothing is charged, and the other side is told. When the buyer cancels, the item goes back on sale; when the seller cancels, the listing comes down unless put_back_on_sale. Confirm with the person first, then pass confirmed: true. Not possible after the handover. Needs sign-in. |
close_group_orderdestructive | Close a group order early, as its organiser. Unpaid shares are left out; the shop gets the rest as one order. |
create_alert | Sets an alert on agentPickup's marketplace for something the person wants that isn't listed yet (or that they want more of): words, a category, a top price, and a place and distance. When a matching item is listed, they get an email. Up to 10 alerts; my_alerts lists or stops them. Needs sign-in. |
create_listing | Drafts a listing for something the person wants to sell on agentPickup's marketplace, or changes one of their drafts (pass listing_id). Physical goods only, handed over in person: no services, rentals, tickets, vouchers, gift cards, digital items, weapons, drugs, vapes, alcohol, animals, fireworks or vehicles (the full rules: https://agentpickup.app/marketplace-rules). Write the title and description from what the person tells you and shows you: honest, including faults, and never invent details. Leave out phone numbers, emails and links. If they don't give a price, suggest a fair one and check it with them. The draft shows as a listing card; the person adds photos and signs the seller declaration themselves to put it up. Needs sign-in. |
create_pickup_orderdestructive | Create an order to collect in person. Returns the order id, total and a claim (keep it); pay it with pay_order. The shop emails the pickup pass to `email` once it's paid, and where the chat shows cards the order shows as one that becomes the pass. Where the shop takes cards, `payment: "card"` returns a checkout link for the user to pay on instead. |
email_publish_link | Emails the person a link to read the seller declaration, sign it and put their listing up. Use it when they can't see the listing card (it needs a photo first). Needs sign-in. |
end_listingdestructive | Takes one of the person's own listings off agentPickup's marketplace, for example when they've sold it elsewhere or changed their mind: buyers can no longer find, offer on or buy it. Works on a draft, a listing waiting for a check, or a live one; an item someone is paying for or has bought can't be taken down (use cancel_purchase for that sale). Confirm with the person first. To put it back up later, open it with get_listing and they sign again in the card, or change it first with create_listing and its listing_id. Needs sign-in. |
find_shopsread-only | 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. |
get_listingread-only | Shows one listing as a card: photos, price, condition, description, suburb and pickup times. The seller sees their own draft. |
get_pickup_passread-only | Get the pickup pass again for a paid order, when the user asks for their QR, pickup code or pass link (lost the email, closed the card). Returns the pass link, the six-character pickup code and the QR, shown as the pass card. Needs the claim create_pickup_order returned. An unpaid order has no pass yet: to see where an order is up to, use order_status instead. |
get_shopread-only | What the shop sells (item ids and prices, with photos, dietary labels, allergens, what's sold out, and what's in stock where the shop's POS counts it), where to collect, and which payments it takes. In chat apps that show cards, the menu appears as a card with the photos. |
group_order_statusread-only | Check a group order by its code, when the user asks who's in, what's been ordered or whether it has closed. Returns each person's name, items and whether they've paid, the total paid so far, when it closes, and, once it has closed, the status of the shop's combined order (paid, ready or collected). Anyone with the code can check it; it changes nothing. To add the user's own items, use join_group_order; to close it early as the organiser, use close_group_order. |
join_group_orderdestructive | 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. |
make_offer | Offers the seller less than the asking price for an item on agentPickup's marketplace, in the person's conversation with them. If the seller has set a lowest price and the offer reaches it, it's accepted on the spot and the item is reserved for the person to pay on Stripe's page; otherwise the seller accepts, counters or declines (within 24 hours). Up to 3 offers on an item a day. Offer only the amount the person chose. Needs sign-in. |
message_deal | Sends something in a deal's chat, to the other side: a message, a proposed pickup time, accepting the other side's proposed time, or (the seller only) the pickup address. Send only what the person asked you to, in their words. Payment only goes through agentPickup: messages asking for another payment, and links, aren't sent. The other side sees it in their chat and gets an email if they don't read it soon. Needs sign-in. |
my_accountread-only | Shows the agentPickup account the person is signed in with, and whether they can sell items yet. Needs the person to sign in to agentPickup; the assistant shows the sign-in button. |
my_alerts | Lists the person's alerts for items on agentPickup's marketplace; with stop_alert_id, stops that one first. Needs sign-in. |
my_dealsread-only | The person's purchases and sales on agentPickup's marketplace and where each is up to: waiting for payment, paid (with the buyer's pickup pass, or the seller's handover code), collected, or released. Needs sign-in. |
my_listingsread-only | The person's own listings on agentPickup, newest first, with where each one is up to. Needs sign-in. |
my_payoutsread-only | What the person has made selling on agentPickup's marketplace: each item handed over, with its price, agentPickup's 2.5% fee, Stripe's card fee, what they got and when it reaches their Stripe balance; payments still held until a handover; and, from Stripe, their balance, recent payouts to their bank and the bank account (last four digits only). Casual sellers have no Stripe dashboard, so this is where they see their money: present it however suits them (a table, totals, a chart). If Stripe needs anything more from them, start_selling gives a fresh Stripe link. Needs sign-in. |
open_dealread-only | Opens the chat for one of the person's purchases or sales, where buyer and seller arrange the pickup: messages, the agreed pickup time and the address; or a conversation of questions before buying (enq_ ids). Shows it as a card. Without sale_id, their most recent one. agentPickup never shares either side's contact details; they share what they choose in the chat once the buyer has paid. Needs sign-in. |
order_statusread-only | Check where an order is up to, when the user asks if it's paid or ready, or before telling them to go and collect. Returns its status (waiting for payment, paid, being made, ready to collect, collected, expired or cancelled), and the checkout link while it's unpaid. Works with the order id alone. With the claim, a paid order's pass comes back as well and the chat's order card updates. When the user only wants their QR or pickup code again, use get_pickup_pass instead. |
pay_orderdestructive | Get the payment details for an order made with create_pickup_order. No wallet is set up in this server, so it pays nothing: for an x402 order it returns the USDC price and pay link for another x402 client to pay; for a card order, the checkout link for the user to pay on. |
publish_listing | Signs the seller declaration and puts one of the person's draft listings up for sale on agentPickup's marketplace for 30 days, where buyers can find, ask about, offer on and buy it. Only the listing card calls this, when the person ticks the declaration and presses Sign and publish: it's hidden from assistants, so a person always signs for themselves (where the card can't be shown, email_publish_link emails them a page to sign instead). The person must be signed in, set up to be paid (start_selling), and the listing needs a photo. A listing that mentions something checked by hand (food, knives, batteries, recalls) is held for agentPickup's check, usually within a day, instead of going straight up. Returns the listing card. |
remove_listing_photodestructive | Takes one photo off one of the person's listings: a wrong, blurry or doubled one, or one that doesn't match the description. photo_id is the photo's id (ph_...) or its address, as get_listing's card or see_listing_photos gives it. Check with the person first. If the listing was up, it goes back to a draft for them to sign again. The card's photo strip has a remove button for each photo too. Needs sign-in. |
search_listingsread-only | Searches things people are selling on agentPickup's marketplace, picked up in person: by words, category, top price and distance. Items are collected in person, so before searching for someone, ask where they are and how far they're happy to travel if they haven't said, then pass near (a suburb) or lat/lng, with within_km. Shows the results as a grid card the person can tap to open an item; returns each item's listing_id, title, price, condition, suburb, distance and first photo. |
see_listing_photosread-only | Shows you a listing's photos (up to 4), so you can check them against the description or answer the person's questions about how the item looks. The person already sees them on the card; this is for you. |
set_dietary_notedestructive | Add or change the dietary note on an order before it's paid (an allergy, an intolerance, in the user's words), at a shop that takes dietary notes. An empty note removes it. The order's card shows it within a few seconds. Once the order is paid it's with the shop already: the user tells staff at the counter instead. |
set_my_name | Sets the name the person shows buyers and sellers on agentPickup's marketplace, in deal chats and on their listings: a first name or nickname they choose (letters only, up to 30). Never their email or phone. Needs sign-in. |
share_agentpickupread-only | A QR code and link the user can share so friends can add agentPickup to Claude, ChatGPT or Grok and order too. Use when the user asks how to share agentPickup, invite friends, or get others using it. Name a shop to share it with that shop picked. |
start_group_orderdestructive | Start a group order (a team lunch, an office order) at a shop, when the user wants to order together with others now. 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. To share agentPickup itself with a friend, use share_agentpickup instead. |
start_selling | Sets the person up to be paid for what they sell on agentPickup's marketplace, through Stripe, and returns the link to Stripe's sign-up. Give the person the link: they complete it themselves, and the assistant never handles their details. seller_type casual (the usual case) is a person selling their own things: Stripe asks only for their name, date of birth, address and bank account (sometimes photo ID), and there's no Stripe login to set up; agentPickup shows them their money afterwards (my_payouts). business is a registered business that wants its own full Stripe account and dashboard. Ask the person if it isn't clear. A listing can only go up once this is finished. Call again for a fresh link. Needs sign-in. |
Schemas: list_tools.
{
"name": "io.github.dav3trad3r/agentpickup",
"icons": [
{
"src": "https://agentpickup.app/favicon.svg",
"mimeType": "image/svg+xml"
}
],
"title": "agentPickup",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://agentpickup.app/mcp",
"type": "streamable-http"
}
],
"version": "0.7.4",
"packages": [
{
"version": "0.7.4",
"transport": {
"type": "stdio"
},
"identifier": "@agentpickup/mcp",
"registryType": "npm",
"environmentVariables": [
{
"name": "AGENTPICKUP_SHOP_URL",
"format": "string",
"description": "The agentPickup shop to order from"
},
{
"name": "AGENTPICKUP_WALLET_KEY",
"format": "string",
"isSecret": true,
"description": "Private key of a wallet used only for this, holding just what you mean to spend in USDC. It pays over x402, up to AGENTPICKUP_MAX_PER_ORDER per order. Without it, pay_order only quotes"
},
{
"name": "AGENTPICKUP_MAX_PER_ORDER",
"format": "string",
"description": "Most the wallet pays for one order, e.g. $25"
},
{
"name": "AGENTPICKUP_NETWORKS",
"format": "string",
"description": "Comma-separated CAIP-2 networks the wallet may pay on (default eip155:84532)"
},
{
"name": "AGENTPICKUP_DIRECTORY_URL",
"format": "string",
"description": "Where find_shops searches (default the agentpickup.app directory); off to leave it out"
}
]
}
],
"repository": {
"url": "https://github.com/Tokenise-au/agentpickup-sdk",
"source": "github",
"subfolder": "packages/mcp"
},
"websiteUrl": "https://agentpickup.app",
"description": "Lets AI agents buy from physical businesses: find, order, pay, and collect in person with a QR."
}