Noun Project · Capability
Noun Project API V2 — Collection
Collection — Search and retrieve curated icon collections (icon sets) from the Noun Project. 2 operations. Lead operation: Search Collections by query term. Self-contained Naftiko capability covering one Noun Project business surface.
What You Can Do
GET
Searchcollections
— Search curated icon collections by query term.
/v1/collections
GET
Getcollection
— Retrieve a single icon collection with full metadata and member icons.
/v1/collections/{collection_id}
MCP Tools
search-collections
Search curated icon collections by query term.
read-only
idempotent
get-collection
Retrieve a single icon collection with full metadata and member icons.
read-only
idempotent
Capability Spec
naftiko: "1.0.0-alpha2"
info:
label: "Noun Project API V2 — Collection"
description: >-
Collection — Search and retrieve curated icon collections (icon sets) from the
Noun Project. 2 operations. Lead operation: Search Collections by query term.
Self-contained Naftiko capability covering one Noun Project business surface.
tags:
- Noun Project
- Collections
- Icon Sets
created: "2026-05-28"
modified: "2026-05-28"
binds:
- namespace: env
keys:
NOUN_PROJECT_OAUTH_KEY: NOUN_PROJECT_OAUTH_KEY
NOUN_PROJECT_OAUTH_SECRET: NOUN_PROJECT_OAUTH_SECRET
capability:
consumes:
- type: http
namespace: "noun-project-collection"
baseUri: "https://api.thenounproject.com"
description: "Noun Project API V2 — Collection business capability. Self-contained, no shared references."
authentication:
type: oauth1
consumerKey: "{{env.NOUN_PROJECT_OAUTH_KEY}}"
consumerSecret: "{{env.NOUN_PROJECT_OAUTH_SECRET}}"
signatureMethod: HMAC-SHA1
resources:
- name: "collection-search"
path: "/v2/collection"
operations:
- name: "searchCollections"
method: GET
description: "Search curated icon collections by query term."
inputParameters:
- name: query
in: query
type: string
required: true
description: "Search term used to match collection titles, tags, and descriptions."
- name: blacklist
in: query
type: boolean
required: false
description: "When true, applies the client's configured blocklist to results."
- name: limit
in: query
type: integer
required: false
description: "Maximum number of collections returned per page."
- name: prev_page
in: query
type: string
required: false
description: "Cursor token for backward pagination."
- name: next_page
in: query
type: string
required: false
description: "Cursor token for forward pagination."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "collection-detail"
path: "/v2/collection/{collection_id}"
operations:
- name: "getCollection"
method: GET
description: "Retrieve a single icon collection with full metadata and member icons."
inputParameters:
- name: collection_id
in: path
type: integer
required: true
description: "Numeric identifier of the collection."
- name: blacklist
in: query
type: boolean
required: false
description: "When true, returns 404 if the collection is on the client's blocklist."
- name: thumbnail_size
in: query
type: integer
required: false
description: "Pixel dimension for returned thumbnail URLs."
- name: include_svg
in: query
type: boolean
required: false
description: "When true, includes raw SVG markup in each member icon."
- name: limit
in: query
type: integer
required: false
description: "Maximum number of member icons returned per page."
- name: prev_page
in: query
type: string
required: false
description: "Cursor token for backward pagination."
- name: next_page
in: query
type: string
required: false
description: "Cursor token for forward pagination."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
exposes:
- type: rest
namespace: "noun-project-collection-rest"
port: 8080
description: "REST adapter for Noun Project API V2 — Collection. One Spectral-compliant resource per consumed operation."
resources:
- path: "/v1/collections"
name: "collections"
description: "REST surface for collection search."
operations:
- method: GET
name: "searchCollections"
description: "Search curated icon collections by query term."
call: "noun-project-collection.searchCollections"
with:
query: "rest.query"
blacklist: "rest.blacklist"
limit: "rest.limit"
prev_page: "rest.prev_page"
next_page: "rest.next_page"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/collections/{collection_id}"
name: "collection-detail"
description: "REST surface for retrieving a single collection."
operations:
- method: GET
name: "getCollection"
description: "Retrieve a single icon collection with full metadata and member icons."
call: "noun-project-collection.getCollection"
with:
collection_id: "rest.collection_id"
blacklist: "rest.blacklist"
thumbnail_size: "rest.thumbnail_size"
include_svg: "rest.include_svg"
limit: "rest.limit"
prev_page: "rest.prev_page"
next_page: "rest.next_page"
outputParameters:
- type: object
mapping: "$."
- type: mcp
namespace: "noun-project-collection-mcp"
port: 9090
transport: http
description: "MCP adapter for Noun Project API V2 — Collection. One tool per consumed operation."
tools:
- name: "search-collections"
description: "Search curated icon collections by query term."
hints:
readOnly: true
destructive: false
idempotent: true
call: "noun-project-collection.searchCollections"
with:
query: "tools.query"
blacklist: "tools.blacklist"
limit: "tools.limit"
prev_page: "tools.prev_page"
next_page: "tools.next_page"
outputParameters:
- type: object
mapping: "$."
- name: "get-collection"
description: "Retrieve a single icon collection with full metadata and member icons."
hints:
readOnly: true
destructive: false
idempotent: true
call: "noun-project-collection.getCollection"
with:
collection_id: "tools.collection_id"
blacklist: "tools.blacklist"
thumbnail_size: "tools.thumbnail_size"
include_svg: "tools.include_svg"
limit: "tools.limit"
prev_page: "tools.prev_page"
next_page: "tools.next_page"
outputParameters:
- type: object
mapping: "$."