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

B
Description quality
80%
Schema completeness
90%
Naming quality
93%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin pay_order
  • LOWTool 'get_shop' description lacks action verbin get_shop
  • LOWTool 'get_pickup_pass' description lacks action verbin get_pickup_pass

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,122Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (0.88% of 128k context)

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

npm@agentpickup/mcp0.2.0stdio

Remote endpoints

https://web-production-3cfc1.up.railway.app/mcpstreamable-http
https://agentpickup.app/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools