# Daylily Catalog (remote · daylilycatalog.com)

Search daylily catalogs and cultivar traits. Manage your grower catalog with scoped OAuth.

- Trust score: 62/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `daylilycatalog.com`: 62/100 (this document), [markdown](https://verifymcp.io/servers/makoncline-daylily-catalog/api-mcp-server.md), [page](https://verifymcp.io/servers/makoncline-daylily-catalog/api-mcp-server)

## Channel facts

- Endpoint: `https://daylilycatalog.com/api/mcp/server`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.2`

## 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-11-05.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (daylily.update_listing).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3184 tokens (~122/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 86/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 53% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 26 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Daylily Catalog MCP server?

Daylily Catalog is a hosted endpoint at https://daylilycatalog.com/api/mcp/server, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http makoncline-daylily-catalog 'https://daylilycatalog.com/api/mcp/server'
```

### Cursor

```json
{
  "mcpServers": {
    "makoncline-daylily-catalog": {
      "url": "https://daylilycatalog.com/api/mcp/server"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "makoncline-daylily-catalog": {
      "type": "http",
      "url": "https://daylilycatalog.com/api/mcp/server"
    }
  }
}
```

### Codex

```toml
[mcp_servers.makoncline-daylily-catalog]
url = "https://daylilycatalog.com/api/mcp/server"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "makoncline-daylily-catalog": {
      "type": "remote",
      "url": "https://daylilycatalog.com/api/mcp/server",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add makoncline-daylily-catalog --url 'https://daylilycatalog.com/api/mcp/server' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  makoncline-daylily-catalog:
    url: "https://daylilycatalog.com/api/mcp/server"
```

### Netclaw

```json
{
  "McpServers": {
    "makoncline-daylily-catalog": {
      "Transport": "http",
      "Url": "https://daylilycatalog.com/api/mcp/server"
    }
  }
}
```

### Vellum

```bash
assistant mcp add makoncline-daylily-catalog -t streamable-http -u 'https://daylilycatalog.com/api/mcp/server'
```

### Other

```json
{
  "mcpServers": {
    "makoncline-daylily-catalog": {
      "type": "http",
      "url": "https://daylilycatalog.com/api/mcp/server"
    }
  }
}
```

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-11-04 (score 62, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-11-03 (score 61)

First indexed and scored.

## MCP tools (26)

### `daylily.search_cultivars` (~170 tokens)

Search Cultivars

Use this when the user wants to find public daylily cultivar reference records by name, hybridizer, color, parentage, or general search text. Do not use it to answer questions about a signed-in user's own inventory; use daylily.list_listings for that. Prefer specific fields over q when the user asks for a known facet.

Input parameters:

- `color` (string): Public cultivar color-notes text filter.
- `cultivarName` (string): Public cultivar name filter.
- `hybridizer` (string): Public cultivar hybridizer name filter.
- `limit` (integer)
- `parentage` (string): Public cultivar parentage text filter.
- `q` (string): Broad public cultivar search text. Prefer field-specific filters when the user asks for a specific facet.

Output parameters:

- `results` (array)

### `daylily.get_cultivar` (~74 tokens)

Get Cultivar

Use this when the user has a Daylily Catalog cultivarReferenceId or normalizedName and needs the exact public cultivar record. Do not use it for fuzzy search; call daylily.search_cultivars first.

Input parameters:

- `cultivarReferenceId` (string)
- `normalizedName` (string)

Output parameters:

- `cultivar` (object|null)

### `daylily.search_public_listings` (~331 tokens)

Search Public Listings

Use this when a buyer asks for public Daylily Catalog inventory, growers, prices, photos, or availability-style searches. Returns only public listings from active catalogs and never includes private notes or hidden listings. Prefer specific filters over q and follow nextCursor until null for complete result sets.

Input parameters:

- `color` (string): Search linked cultivar color notes.
- `cultivarName` (string): Linked cultivar name text.
- `cursor` (string): Last seen row id from nextCursor. Keep the same filters and pass this cursor to continue paging.
- `description` (string): Public listing description text.
- `hasPhoto` (boolean): When true, only listings with uploaded listing photos.
- `hasPrice` (boolean): When true, only listings with a positive public price.
- `hybridizer` (string): Hybridizer text from the linked cultivar record.
- `limit` (integer)
- `listId` (string): Only listings that belong to this public list id.
- `listTitle` (string): Only listings in a public list with this title text.
- `parentage` (string): Parentage text from the linked cultivar record.
- `priceMax` (number): Maximum public listing price.
- `priceMin` (number): Minimum public listing price.
- `q` (string): Broad public listing search across listing title, description, cultivar name, hybridizer, color, and parentage.
- `sellerSlug` (string): Public seller slug or user id.
- `title` (string): Public listing title text.
- `year` (string): Cultivar registration or introduction year text.

Output parameters:

- `items` (array)
- `nextCursor` (string|null)

### `daylily.get_public_listing` (~89 tokens)

Get Public Listing

Use this when a buyer asks for one public listing by listing id, or by sellerSlug plus listingSlug. Returns public listing details only; hidden listings and private notes are excluded.

Input parameters:

- `id` (string): Public listing id.
- `listingSlug` (string): Listing slug for the seller's public catalog.
- `sellerSlug` (string): Seller profile slug when using listingSlug.

Output parameters:

- `listing` (object)

### `daylily.list_public_profiles` (~83 tokens)

List Public Profiles

Browse active public grower catalogs with listings. Returns a bounded page of seller summaries ordered by seller id; follow nextCursor for more. Use get_public_profile for one grower's full profile.

Input parameters:

- `cursor` (string): Last seen row id from nextCursor. Keep the same filters and pass this cursor to continue paging.
- `limit` (integer)

Output parameters:

- `items` (array)
- `nextCursor` (string|null)

### `daylily.get_public_profile` (~62 tokens)

Get Public Profile

Use this when a buyer asks about a public grower or catalog profile by seller slug. Returns public seller profile, public lists, profile images, and public listing/list counts.

Input parameters:

- `sellerSlug` (string, required): Public seller profile slug or user id.

Output parameters:

- `profile` (object|null)

### `daylily.list_public_profile_lists` (~57 tokens)

List Public Profile Lists

Use this when a buyer asks what public lists or collections a seller has. Use the returned list ids with daylily.list_public_listings.

Input parameters:

- `sellerSlug` (string, required): Public seller profile slug or user id.

Output parameters:

- `items` (array)
- `nextCursor` (string|null)

### `daylily.list_public_listings` (~328 tokens)

List Public Listings

Use this when a buyer asks to browse one seller's public catalog or one public list. Requires sellerSlug, and can filter by listId, listTitle, cultivar, color, price, photos, hybridizer, parentage, or year. Returns only public listings.

Input parameters:

- `color` (string): Search linked cultivar color notes.
- `cultivarName` (string): Linked cultivar name text.
- `cursor` (string): Last seen row id from nextCursor. Keep the same filters and pass this cursor to continue paging.
- `description` (string): Public listing description text.
- `hasPhoto` (boolean): When true, only listings with uploaded listing photos.
- `hasPrice` (boolean): When true, only listings with a positive public price.
- `hybridizer` (string): Hybridizer text from the linked cultivar record.
- `limit` (integer)
- `listId` (string): Only listings that belong to this public list id.
- `listTitle` (string): Only listings in a public list with this title text.
- `parentage` (string): Parentage text from the linked cultivar record.
- `priceMax` (number): Maximum public listing price.
- `priceMin` (number): Minimum public listing price.
- `q` (string): Broad public listing search across listing title, description, cultivar name, hybridizer, color, and parentage.
- `sellerSlug` (string, required): Public seller slug or user id.
- `title` (string): Public listing title text.
- `year` (string): Cultivar registration or introduction year text.

Output parameters:

- `items` (array)
- `nextCursor` (string|null)

### `daylily.search_help` (~58 tokens)

Search Daylily Help

Use this for short, sourced help with public cultivar search or member dashboard workflows, such as listing status, lists, photos, profile content, import, and billing. It does not read member records.

Input parameters:

- `query` (string, required)

Output parameters:

- `results` (array)

### `daylily.get_profile` (~95 tokens)

Get Profile

Use this when the signed-in user asks about their own Daylily Catalog profile, storefront copy, slug, location, images, or public profile content. Story content is read-only through remote MCP; use open_dashboard with edit_profile_content to edit it. The image IDs support reorder and dashboard removal review. If imagesHasMore is true, call daylily.list_images to discover the full image set. Requires OAuth.

Output parameters:

- `profile`

### `daylily.list_lists` (~119 tokens)

List Lists

Use this when the signed-in user asks to browse their catalog lists or resolve a list name to an id. Set listingId to page the lists containing one owned listing. Returns each list's title, description, status, and id. Use daylily.list_listings with listId to page a list's members. Requires OAuth.

Input parameters:

- `cursor` (string): Last seen row id from nextCursor. Keep the same filters and pass this cursor to continue paging.
- `limit` (integer)
- `listingId` (string)

Output parameters:

- `items` (array)
- `nextCursor`

### `daylily.get_list` (~61 tokens)

Get List

Use this when the signed-in user asks to inspect one list by id, including its description, status, and dashboard link. Call daylily.list_listings with listId for paged members. Requires OAuth.

Input parameters:

- `id` (string, required)

Output parameters:

- `list` (object)

### `daylily.list_listings` (~386 tokens)

List Listings

Use this when the signed-in user asks to search, filter, or page through their own listings. Returns compact rows. Follow nextCursor until null; a filtered page can be empty and still have a nextCursor. For cultivar details, first call daylily.search_cultivars on the public index, then filter owned listings by cultivarReferenceId. Search unlinked or legacy listing titles with q or title. Use daylily.get_listing for private notes, images, and full detail. Requires OAuth.

Input parameters:

- `cultivarReferenceId` (string): Exact linked cultivar reference id. Use daylily.search_cultivars to find the id on the local public index, then filter owned listings.
- `cursor` (string): Opaque nextCursor from the previous listing page. Keep the same filters.
- `description` (string): Listing description text.
- `hasPhoto` (boolean): When true, only listings with uploaded listing photos. This does not mean the linked public cultivar reference has a photo.
- `hasPrice` (boolean): When true, only listings with a positive price; when false, only listings without a positive price.
- `limit` (integer)
- `linkedToCultivar` (boolean): When true, only listings linked to a cultivar; when false, only unlinked listings.
- `listId` (string): Only listings that belong to this list id. If you only know the list name, call daylily.list_lists first.
- `priceMax` (number): Maximum listing price.
- `priceMin` (number): Minimum listing price.
- `q` (string): Search owned listing title, description, and private note. Search cultivar details with daylily.search_cultivars, then filter here by cultivarReferenceId.
- `status` (string): Listing status value.
- `title` (string): Listing title text.

Output parameters:

- `items` (array)
- `nextCursor`

### `daylily.get_listing` (~125 tokens)

Get Listing

Use this when the signed-in user asks to inspect one exact listing by id, including private notes, images, linked cultivar data, and up to 100 list memberships. If listsNextCursor is present, call daylily.list_lists with listingId and that cursor for the remaining memberships. If imagesHasMore is true, call daylily.list_images for the full image set. Do not use this for search or list expansion when daylily.list_listings can return the needed records in one paginated call. Requires OAuth.

Input parameters:

- `id` (string, required)

Output parameters:

- `listing` (object)

### `daylily.list_images` (~90 tokens)

List Images

Page every image ID for one owned listing or profile. Pages are ordered by image ID; use each image's order field for display order. Follow nextCursor until null before reordering or preparing removal review for a large legacy image set. Requires OAuth.

Input parameters:

- `cursor` (string)
- `limit` (integer)
- `referenceId` (string, required)
- `type` (string, required)

Output parameters:

- `items` (array)
- `nextCursor`

### `daylily.get_image` (~70 tokens)

Get Image

Get one owned listing or profile image by ID, including its resolved dashboard image URL. Use get_listing, get_profile, or list_images to find image IDs first. Requires OAuth.

Input parameters:

- `imageId` (string, required)
- `referenceId` (string, required)
- `type` (string, required)

Output parameters:

- `image` (object)

### `daylily.open_dashboard` (~179 tokens)

Open Dashboard Task

Use this when the signed-in member needs a precise dashboard screen to add listing or profile photos, edit a profile story or URL, or review deletion, image removal, story block removal, cultivar unlinking, or list member removal. Use manage_listing_images with the owned listing id or manage_profile_images to add photos through the browser cropper. For story block removal, pass its current blockId from get_profile. A link never performs the change on navigation. Requires OAuth.

Input parameters:

- `blockId` (string): Current profile story block id to focus for removal review.
- `destination` (string, required)
- `id` (string): Owned listing or list id for a record task.
- `imageId` (string): Owned image id for image removal review.
- `listingIds` (array): Current members of the list to select for removal review.

Output parameters:

- `canComplete` (boolean)
- `destination` (string)
- `nextStep` (string)
- `title` (string|null)
- `url` (string)

### `daylily.create_listing` (~132 tokens)

Create Listing

Create one listing. Non-Pro accounts can have up to 25 listings, including hidden listings. Set hidden=true to keep it private or hidden=false to publish it. Supply a unique requestId and reuse it when retrying the same creation. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `cultivarReferenceId` (string)
- `description` (string|null)
- `hidden` (boolean, required)
- `price` (number|null)
- `privateNote` (string|null)
- `requestId` (string, required)
- `title` (string, required)

Output parameters:

- `dashboardUrl` (string)
- `listing` (object)

### `daylily.update_listing` (~111 tokens)

Update Listing

Edit one owned listing. Supply the updatedAt value from the listing read. Omitted fields remain unchanged; null clears an optional field. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `description` (string|null)
- `expectedUpdatedAt` (string, required)
- `hidden` (boolean)
- `listingId` (string, required)
- `price` (number|null)
- `privateNote` (string|null)
- `title` (string)

Output parameters:

- `dashboardUrl` (string)
- `listing` (object)

### `daylily.create_list` (~81 tokens)

Create List

Create one list. Non-Pro accounts can have up to 1 list. Supply a unique requestId and reuse it when retrying the same creation. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `description` (string|null)
- `requestId` (string, required)
- `title` (string, required)

Output parameters:

- `dashboardUrl` (string)
- `list` (object)

### `daylily.update_list` (~80 tokens)

Update List

Edit the title or description of one owned list. Supply the updatedAt value from the list read. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `description` (string|null)
- `expectedUpdatedAt` (string, required)
- `listId` (string, required)
- `title` (string)

Output parameters:

- `dashboardUrl` (string)
- `list` (object)

### `daylily.add_listing_to_list` (~65 tokens)

Add Listing to List

Add one owned listing to one owned list. Repeating this call leaves the membership in place. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `listId` (string, required)
- `listingId` (string, required)

Output parameters:

- `dashboardUrl` (string)
- `listId` (string)
- `listingId` (string)

### `daylily.link_listing_to_cultivar` (~78 tokens)

Link Listing to Cultivar

Link one listing to a cultivar reference. An existing different link must be reviewed in the dashboard before replacement. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `cultivarReferenceId` (string, required)
- `listingId` (string, required)
- `syncName` (boolean)

Output parameters:

- `dashboardUrl` (string)
- `listing` (object)

### `daylily.sync_listing_cultivar_name` (~67 tokens)

Sync Listing Cultivar Name

Set one owned listing's title and URL slug to the name of its linked cultivar reference. Read the listing again if the link changes. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `listingId` (string, required)

Output parameters:

- `dashboardUrl` (string)
- `listing` (object)

### `daylily.update_profile` (~119 tokens)

Update Profile

Edit the title, description, or location of the member's public profile. Supply updatedAt from the profile read, or null if no profile exists. Open manage_profile_images to add profile photos. Use reorder_images to change their order. Open the dashboard for profile URL or story changes. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `description` (string|null)
- `expectedUpdatedAt` (string|null, required)
- `location` (string|null)
- `title` (string|null)

Output parameters:

- `dashboardUrl` (string)
- `profile` (object)

### `daylily.reorder_images` (~74 tokens)

Reorder Images

Place selected images first in the given order on one owned listing or profile. Other images keep their relative order. Requires a connected account and the catalog:write OAuth scope. Account tier limits apply.

Input parameters:

- `imageIds` (array, required)
- `referenceId` (string, required)
- `type` (string, required)

Output parameters:

- `imageIds` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/makoncline-daylily-catalog/api-mcp-server#diagnostics

## Score history

- 2026-11-05: 62
- 2026-11-04: 62
- 2026-11-03: 61

## Common questions

### What is the Daylily Catalog MCP server?

Daylily Catalog is an MCP server listed in the public MCP registry as io.github.makoncline/daylily-catalog. Search daylily catalogs and cultivar traits. Manage your grower catalog with scoped OAuth. This page covers its hosted endpoint (https://daylilycatalog.com/api/mcp/server).

### Is the Daylily Catalog MCP server safe to use?

Daylily Catalog scores 62 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Daylily Catalog MCP server expose?

Daylily Catalog exposes 26 tools: daylily.search_cultivars, daylily.get_cultivar, daylily.search_public_listings, daylily.get_public_listing, daylily.list_public_profiles, and 21 more. Their descriptions and schemas cost roughly 3,184 tokens of context every time the server is loaded.

### Does the Daylily Catalog MCP server require authentication?

No. We connected to Daylily Catalog without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Daylily Catalog MCP server still maintained?

Daylily Catalog is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://daylilycatalog.com/api/mcp/server
- Repository: https://github.com/makoncline/new-daylily-catalog
- Website: https://daylilycatalog.com/
- Changelog RSS feed: https://verifymcp.io/servers/makoncline-daylily-catalog/api-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/makoncline-daylily-catalog/api-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/makoncline-daylily-catalog/api-mcp-server
