naftiko: "1.0.0-alpha2" info: label: "Noun Project API V2 — Blocklist" description: >- Blocklist — Manage per-client blocklists for icon IDs, collection IDs, and terms in the Noun Project API. 3 operations. Lead operation: Get Client Blocklist returns the current blocklist (cached 10 minutes). Self-contained Naftiko capability covering one Noun Project business surface. tags: - Noun Project - Blocklist - Content Moderation 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-blocklist" baseUri: "https://api.thenounproject.com" description: "Noun Project API V2 — Blocklist 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: "client-blocklist" path: "/v2/client/blacklist" operations: - name: "getBlocklist" method: GET description: "Return the current blocklist for the calling client key." inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "client-blocklist-id" path: "/v2/client/blacklist/id" operations: - name: "addBlocklistIds" method: POST description: "Add icon IDs or collection IDs to the client blocklist." inputParameters: - name: type in: query type: string required: false description: "Type of identifier being blocked (icon or collection)." - name: body in: body type: object required: true description: "Request body containing blocklist identifiers and overwrite flag." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "client-blocklist-term" path: "/v2/client/blacklist/term" operations: - name: "addBlocklistTerms" method: POST description: "Add terms and phrases to the client blocklist." inputParameters: - name: body in: body type: object required: true description: "Request body containing blocklist terms and overwrite flag." outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "noun-project-blocklist-rest" port: 8080 description: "REST adapter for Noun Project API V2 — Blocklist." resources: - path: "/v1/blocklist" name: "blocklist" description: "REST surface for the client blocklist." operations: - method: GET name: "getBlocklist" description: "Return the current blocklist for the calling client key." call: "noun-project-blocklist.getBlocklist" with: {} outputParameters: - type: object mapping: "$." - path: "/v1/blocklist/ids" name: "blocklist-ids" description: "REST surface for adding blocklist identifiers." operations: - method: POST name: "addBlocklistIds" description: "Add icon IDs or collection IDs to the client blocklist." call: "noun-project-blocklist.addBlocklistIds" with: type: "rest.type" body: "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/blocklist/terms" name: "blocklist-terms" description: "REST surface for adding blocklist terms." operations: - method: POST name: "addBlocklistTerms" description: "Add terms and phrases to the client blocklist." call: "noun-project-blocklist.addBlocklistTerms" with: body: "rest.body" outputParameters: - type: object mapping: "$." - type: mcp namespace: "noun-project-blocklist-mcp" port: 9090 transport: http description: "MCP adapter for Noun Project API V2 — Blocklist." tools: - name: "get-blocklist" description: "Return the current blocklist for the calling client key." hints: readOnly: true destructive: false idempotent: true call: "noun-project-blocklist.getBlocklist" with: {} outputParameters: - type: object mapping: "$." - name: "add-blocklist-ids" description: "Add icon IDs or collection IDs to the client blocklist." hints: readOnly: false destructive: false idempotent: false call: "noun-project-blocklist.addBlocklistIds" with: type: "tools.type" body: "tools.body" outputParameters: - type: object mapping: "$." - name: "add-blocklist-terms" description: "Add terms and phrases to the client blocklist." hints: readOnly: false destructive: false idempotent: false call: "noun-project-blocklist.addBlocklistTerms" with: body: "tools.body" outputParameters: - type: object mapping: "$."