Quote Garden · Capability
Quote Garden — Quote Discovery
Self-contained Naftiko capability covering the entire read-only Quote Garden v3 surface: fetch a random quote, page through filtered quote listings, and discover the full author and genre vocabularies. Four GET operations, no authentication, optional author/genre/query filters.
What You Can Do
GET
Getrandomquote
— Get Random Quote
/v1/quotes/random
GET
Listquotes
— List Quotes
/v1/quotes
GET
Listgenres
— List Genres
/v1/genres
GET
Listauthors
— List Authors
/v1/authors
MCP Tools
quote-garden-get-random-quote
Get Random Quote
read-only
quote-garden-list-quotes
List Quotes
read-only
idempotent
quote-garden-list-genres
List Genres
read-only
idempotent
quote-garden-list-authors
List Authors
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Quote Garden — Quote Discovery
description: >-
Self-contained Naftiko capability covering the entire read-only Quote Garden v3 surface:
fetch a random quote, page through filtered quote listings, and discover the full author
and genre vocabularies. Four GET operations, no authentication, optional author/genre/query
filters.
tags:
- Quote Garden
- Quotes
- Authors
- Genres
- Open Source
- Free API
created: '2026-05-30'
modified: '2026-05-30'
binds: []
capability:
consumes:
- type: http
namespace: quote-garden
baseUri: https://quote-garden.onrender.com/api/v3
description: Quote Garden v3 REST endpoints. No authentication. CORS-enabled.
resources:
- name: quotes-random
path: /quotes/random
operations:
- name: getRandomQuote
method: GET
description: Get Random Quote
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: author
in: query
type: string
description: Filter to quotes by this exact author name.
- name: genre
in: query
type: string
description: Filter to quotes tagged with this genre.
- name: query
in: query
type: string
description: Full-text search across quoteText, quoteAuthor, and quoteGenre.
- name: count
in: query
type: integer
description: Number of random quotes to return (default 1).
- name: quotes
path: /quotes
operations:
- name: listQuotes
method: GET
description: List Quotes
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: author
in: query
type: string
- name: genre
in: query
type: string
- name: query
in: query
type: string
- name: page
in: query
type: integer
- name: limit
in: query
type: integer
- name: genres
path: /genres
operations:
- name: listGenres
method: GET
description: List Genres
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: page
in: query
type: integer
- name: limit
in: query
type: integer
- name: authors
path: /authors
operations:
- name: listAuthors
method: GET
description: List Authors
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: page
in: query
type: integer
- name: limit
in: query
type: integer
authentication:
type: none
exposes:
- type: rest
namespace: quote-garden-rest
port: 8080
description: REST adapter for Quote Garden — one Spectral-compliant resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/quotes/random
name: quotes-random
description: REST surface for the random-quote endpoint.
operations:
- method: GET
name: getRandomQuote
description: Get Random Quote
call: quote-garden.getRandomQuote
with:
author: rest.author
genre: rest.genre
query: rest.query
count: rest.count
outputParameters:
- type: object
mapping: $.
- path: /v1/quotes
name: quotes
description: REST surface for the paginated quote-list endpoint.
operations:
- method: GET
name: listQuotes
description: List Quotes
call: quote-garden.listQuotes
with:
author: rest.author
genre: rest.genre
query: rest.query
page: rest.page
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/genres
name: genres
description: REST surface for the genres endpoint.
operations:
- method: GET
name: listGenres
description: List Genres
call: quote-garden.listGenres
with:
page: rest.page
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/authors
name: authors
description: REST surface for the authors endpoint.
operations:
- method: GET
name: listAuthors
description: List Authors
call: quote-garden.listAuthors
with:
page: rest.page
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: quote-garden-mcp
port: 9090
transport: http
description: MCP adapter for Quote Garden — one tool per consumed operation, routed inline through this capability's consumes block.
tools:
- name: quote-garden-get-random-quote
description: Get Random Quote
hints:
readOnly: true
destructive: false
idempotent: false
call: quote-garden.getRandomQuote
with:
author: tools.author
genre: tools.genre
query: tools.query
count: tools.count
outputParameters:
- type: object
mapping: $.
- name: quote-garden-list-quotes
description: List Quotes
hints:
readOnly: true
destructive: false
idempotent: true
call: quote-garden.listQuotes
with:
author: tools.author
genre: tools.genre
query: tools.query
page: tools.page
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: quote-garden-list-genres
description: List Genres
hints:
readOnly: true
destructive: false
idempotent: true
call: quote-garden.listGenres
with:
page: tools.page
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: quote-garden-list-authors
description: List Authors
hints:
readOnly: true
destructive: false
idempotent: true
call: quote-garden.listAuthors
with:
page: tools.page
limit: tools.limit
outputParameters:
- type: object
mapping: $.