agentPickup
Find pickup shops near you, order, pay in USDC over x402, and get the QR to collect in person.
Should I use this
Quality & Safety
Findings (4)
- HIGH
- MEDIUMin pay_order
- LOWin get_shop
- LOWin get_pickup_pass
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"agentpickup": {
"command": "npx",
"args": [
"@agentpickup/mcp"
]
}
}
}Runnable packages
0.2.0stdioRemote endpoints
https://web-production-3cfc1.up.railway.app/mcpstreamable-httphttps://agentpickup.app/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢find_shops(query, place, lat, lng, radius_km, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "What the user wants, e.g. \"flat white\" or \"croissant\". Leave out to list everything.",
"type": "string",
"maxLength": 100
},
"place": {
"description": "A suburb, street or city to match against shop addresses, e.g. \"Surry Hills\".",
"type": "string",
"maxLength": 100
},
"lat": {
"description": "Where the user is: latitude. Send with lng.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"description": "Where the user is: longitude. Send with lat.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius_km": {
"description": "With lat/lng: how far to look. Default 10.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"open_now": {
"description": "Only shops open now (shops without listed hours stay in).",
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_shop(shop_url)
What the shop sells (item ids and prices), where to collect, and which payments it takes.
Input Schema
{
"type": "object",
"properties": {
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_pickup_order(items, email, name, shop_url)
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.
Input Schema
{
"type": "object",
"properties": {
"items": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Item id from get_shop"
},
"qty": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"id",
"qty"
]
}
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The user's email. The pickup QR goes here."
},
"name": {
"description": "Name for the order, shown to staff",
"type": "string",
"maxLength": 100
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"items",
"email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪pay_order(order_id, shop_url)
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.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢order_status(order_id, shop_url)
Whether an order is waiting for payment, paid, ready to collect, collected or expired.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_pickup_pass(order_id, shop_url)
The pass link, pickup code and QR content for an order this wallet paid, by signing in with the wallet (Sign-In-With-X).
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence