# Grabblist (remote · mcp.grabbitapp.com)

Save and organize web finds in persistent, user-controlled collections for AI assistants.

- Trust score: 75/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-14

## Components

- remote · `mcp.grabbitapp.com`: 75/100 (this document), [markdown](https://verifymcp.io/servers/com-grabbitapp-grabblist/api-mcp.md), [page](https://verifymcp.io/servers/com-grabbitapp-grabblist/api-mcp)

## Channel facts

- Endpoint: `https://mcp.grabbitapp.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-14.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 75/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3111 tokens (~135/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 40/100
  - Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-grabbitapp-grabblist https://mcp.grabbitapp.com/api/mcp
```

### Codex

```toml
[mcp_servers.com-grabbitapp-grabblist]
url = "https://mcp.grabbitapp.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-grabbitapp-grabblist": {
      "type": "remote",
      "url": "https://mcp.grabbitapp.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-grabbitapp-grabblist --url https://mcp.grabbitapp.com/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-grabbitapp-grabblist:
    url: "https://mcp.grabbitapp.com/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-grabbitapp-grabblist": {
      "type": "http",
      "url": "https://mcp.grabbitapp.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-14 (score 75, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-13 (score 75)

First indexed and scored.

## MCP tools (23)

### `ping` (~18 tokens)

Test connectivity to Grabblist and return service version.

### `get_wishlist` (~82 tokens)

Get all saved items from the user's Grabblist. Each item is a static snapshot — data reflects the moment it was saved, not current prices.

Input parameters:

- `limit` (number): Max items to return (default: 50)
- `platform` (string): Filter by platform (domain name, e.g. "amazon", "ebay", "trademe")

### `get_item` (~39 tokens)

Get full details of a saved item by ID. Returns a static snapshot from the user's Grabblist.

Input parameters:

- `id` (string, required): The item ID

### `add_item` (~450 tokens)

Save an item to the user's Grabblist. Creates a static snapshot — Grabblist does not monitor prices or auto-update data. Only include fields with values available from the source. If no image is provided, the server attempts to fetch og:image automatically.

Input parameters:

- `attributes` (object): Specs/details as key-value pairs
- `category` (string): Category — pick the best match
- `condition` (string): Condition if applicable: New, Used, Refurbished, Used - Like New, Used - Good, Used - Fair
- `currency` (string, required): Currency code: USD, NZD, AUD, EUR, GBP, etc.
- `description` (string): Description from the page (max 2000 chars)
- `image` (object): Main image URL. Server auto-fetches og:image if not provided.
- `images` (array): All image URLs found on the page
- `item_type` (string): What kind of item: product (buy), rental (Airbnb), service (cleaning), course (Udemy), listing (classified), event (ticket). Default: product.
- `location` (string): Seller location or pickup location
- `original_price` (number): Original price before discount (if on sale)
- `platform` (string, required): Site domain name without TLD: amazon.com→"amazon", ebay.co.nz→"ebay", kiwiquads.co.nz→"kiwiquads"
- `posted_at` (string): When the listing was originally posted (ISO 8601)
- `price` (number, required): Price as number (e.g. 99.99) — REQUIRED, extract from page
- `quantity` (integer): How many of this item
- `reason` (string): Why this change was made (shown to user in change history)
- `seller_name` (string): Seller or store name
- `seller_rating` (number): Seller rating 0-5
- `seller_reviews` (integer): Number of seller reviews
- `tags` (array): Tags for categorization
- `title` (string, required): Exact title from the page
- `url` (object, required): Direct public HTTP(S) page URL.

### `delete_item` (~69 tokens)

Remove one or more items from the user's Grabblist (soft-delete). Pass a single id or an array of ids for batch operations.

Input parameters:

- `id` (required): Item ID or array of item IDs to delete
- `reason` (string): Why this change was made (shown to user in change history)

### `restore_item` (~71 tokens)

Restore one or more deleted (archived) items back to the Grabblist. Pass a single id or an array of ids for batch restore.

Input parameters:

- `id` (required): Item ID or array of item IDs to restore
- `reason` (string): Why this change was made (shown to user in change history)

### `search_saved` (~40 tokens)

Search within the user's saved items by keyword

Input parameters:

- `limit` (number): Max results (default: 20)
- `query` (string, required): Search query

### `update_price` (~86 tokens)

Manually update the price on a saved item. Records old and new price for comparison. This is a manual correction, not automatic price tracking.

Input parameters:

- `id` (string, required): The item ID
- `price` (number, required): New current price
- `reason` (string): Why this change was made (shown to user in change history)
- `source` (string): Price update source

### `update_item` (~275 tokens)

Edit fields on one or more saved items. Pass a single id or an array of ids for batch updates (same fields applied to all). For batch: attributes are REPLACED not merged, og:image fallback is skipped.

Input parameters:

- `attributes` (object): Merge into existing attributes
- `category` (string): Item category
- `description` (string): Item description (max 2000 chars)
- `id` (required): Item ID or array of item IDs to update
- `image_url` (object): Main image URL
- `images` (array): All image URLs — replaces the entire images array
- `is_favorite` (boolean): Set true to favorite, false to unfavorite
- `item_type` (string): What kind of item this is
- `notes` (string): User or AI notes — personal comments, thoughts, comparisons
- `quantity` (integer): How many of this item
- `reason` (string): Why this change was made (shown to user in change history)
- `status` (string): Decision status: considering, shortlisted, decided, bought, rejected
- `tags` (array): Replace all tags with this list
- `target_price` (number): What the user wants to pay — not the actual price, but the goal price
- `title` (string): Item title

### `list_collections` (~221 tokens)

List all collections OR get a specific collection with its items. Without id: returns all collections with counts/values. With id: returns that collection's metadata and all items inside (with optional filters).

Input parameters:

- `created_by` (string): Filter by who added: "ai" for AI-added items (only when id is provided)
- `id` (string): Collection ID — if provided, returns that collection with all its items. If omitted, lists all collections.
- `max_price` (number): Maximum price filter (only when id is provided)
- `min_price` (number): Minimum price filter (only when id is provided)
- `platform` (string): Filter by platform domain name, e.g. "amazon", "ebay" (only when id is provided)
- `sort` (string): Sort order (only when id is provided, default: newest)
- `status` (string): Filter by decision status (only when id is provided)
- `tags` (array): Filter items that have ALL these tags (only when id is provided)

### `create_collection` (~229 tokens)

Create a new collection (folder) in the user's Grabblist to organize saved items.

Input parameters:

- `budget` (number): Total spending target for this collection (e.g. 1500 for "Build PC under $1500")
- `budget_currency` (string): Currency for the budget (default: NZD)
- `color` (string): Hex color for the collection (e.g. "#3B82F6", "#22C55E", "#A855F7", "#EC4899", "#F59E0B", "#EF4444"). Default: #3B82F6
- `description` (string): Short description of what this collection is for
- `icon` (string): Material Symbols icon name (e.g. "devices", "home", "shopping_bag", "checkroom", "directions_car", "favorite"). Default: inventory_2
- `name` (string, required): Collection name, e.g. "Gaming Setup" or "Gift Ideas"
- `reason` (string): Why this change was made (shown to user in change history)

### `add_to_collection` (~69 tokens)

Add a saved item to a collection. Both the item and collection must already exist.

Input parameters:

- `collection_id` (string, required): The collection ID
- `item_id` (string, required): The item ID to add
- `reason` (string): Why this change was made (shown to user in change history)

### `remove_from_collection` (~91 tokens)

Remove one or more items from a collection. Pass a single item_id or an array of item_ids for batch removal. Items are NOT deleted — they stay in the Grabblist.

Input parameters:

- `collection_id` (string, required): The collection ID
- `item_ids` (required): Item ID or array of item IDs to remove
- `reason` (string): Why this change was made (shown to user in change history)

### `delete_collection` (~59 tokens)

Permanently delete a collection. Items inside are not deleted — they stay in the Grabblist.

Input parameters:

- `id` (string, required): The collection ID to delete
- `reason` (string): Why this change was made (shown to user in change history)

### `update_collection` (~204 tokens)

Update a collection's name, icon, description, budget, or sharing status. Only provide the fields you want to change — omitted fields stay unchanged. Set is_public=true to share (returns public URL), is_public=false to unshare.

Input parameters:

- `budget` (number): New budget amount
- `budget_currency` (string): New budget currency
- `color` (string): Hex color (e.g. "#3B82F6", "#22C55E", "#EF4444")
- `description` (string): New description
- `icon` (string): Material Symbols icon name (e.g. "devices", "home", "shopping_bag")
- `id` (string, required): The collection ID to update
- `is_public` (boolean): Set true to share (generates public URL), false to unshare
- `name` (string): New collection name
- `reason` (string): Why this change was made (shown to user in change history)

### `link_items` (~144 tokens)

Create typed relations between items: alternative (A or B), complement (A and B together), upgrade (B replaces A), duplicate (same item different site), same_seller. Supports single pair (from_id, to_id, relation) or bulk (pairs array).

Input parameters:

- `from_id` (string): First item ID (for single pair mode)
- `pairs` (array): Array of pairs to link (for bulk mode)
- `reason` (string): Why this change was made (shown to user in change history)
- `relation` (string): Type of relationship (for single pair mode)
- `to_id` (string): Second item ID (for single pair mode)

### `get_item_graph` (~50 tokens)

Get all relations for an item — alternatives, complements, upgrades, duplicates. Returns the item and all connected items with their relation types.

Input parameters:

- `id` (string, required): The item ID to get relations for

### `unlink_items` (~68 tokens)

Remove a relation between two items.

Input parameters:

- `from_id` (string, required): First item ID
- `reason` (string): Why this change was made (shown to user in change history)
- `relation` (string, required): The relation type to remove
- `to_id` (string, required): Second item ID

### `get_item_history` (~51 tokens)

Get the change history for a saved item — who changed what and when.

Input parameters:

- `item_id` (string, required): The item ID
- `limit` (number): Max events to return (default: 20)

### `get_collection_activity` (~50 tokens)

Get recent activity on a collection — additions, removals, edits.

Input parameters:

- `collection_id` (string, required): The collection ID
- `limit` (number): Max events to return (default: 20)

### `set_pinned_items` (~86 tokens)

Set the pinned "Top Picks" items for a collection (max 3). Pinned items are highlighted on the share page.

Input parameters:

- `collection_id` (string, required): The collection ID
- `item_ids` (array, required): Items to pin, in display order (1st = top)
- `reason` (string): Why this change was made (shown to user in change history)

### `send_feedback` (~165 tokens)

Send feedback, bug report, or feature request to the Grabbit team. Use this when you encounter parsing failures, missing features, broken URLs, or have improvement suggestions. The team reads these to improve the product. Be specific about what went wrong and where.

Input parameters:

- `error` (string): Error message you received, if any
- `message` (string, required): What happened or what you propose. Be specific — the team reads this.
- `tool` (string): The tool you were using when the issue occurred (e.g. add_item, search_saved)
- `type` (string, required): Type: bug (something broken), parsing_failure (price/title/image not extracted), feature_request (wishlist), feedback (general feedback)
- `url` (string): The URL where the issue occurred

### `ask_agent` (~125 tokens)

Delegate a task to Grabblist's built-in AI assistant. The agent knows the user's Grabblist and can answer questions, compare items, give shopping advice, or analyze saved products. Use this when you want a second opinion or a specialized shopping assistant perspective. Requires the user to have an Anthropic API key configured in Settings.

Input parameters:

- `message` (string, required): The question or task for the Grabblist assistant
- `model` (string): AI model to use (default: sonnet). haiku=fast/cheap, sonnet=balanced, opus=most capable

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-grabbitapp-grabblist/api-mcp#diagnostics

## Score history

- 2026-08-14: 75
- 2026-08-13: 75

## Links

- Remote endpoint: https://mcp.grabbitapp.com/api/mcp
- Website: https://grabbitapp.com/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-grabbitapp-grabblist/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-grabbitapp-grabblist/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-grabbitapp-grabblist/api-mcp
