naftiko: 1.0.0-alpha2 info: label: Marginalia Search API — Search description: 'Marginalia Search API — Search. 1 operations. Lead operation: Execute a web search. Self-contained Naftiko capability covering one Marginalia Search business surface.' tags: - Marginalia Search - Search created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MARGINALIA_SEARCH_API_KEY: MARGINALIA_SEARCH_API_KEY capability: consumes: - type: http namespace: marginalia-search-search baseUri: https://api2.marginalia-search.com description: Marginalia Search API — Search business capability. Self-contained, no shared references. resources: - name: search path: /search operations: - name: search method: GET description: Execute a web search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: query in: query type: string description: Search terms. required: true - name: count in: query type: integer description: Number of results to return. - name: timeout in: query type: integer description: Maximum execution time in milliseconds. - name: dc in: query type: integer description: Maximum results per domain. - name: page in: query type: integer description: Result page (1-indexed). - name: nsfw in: query type: integer description: NSFW content filtering (experimental). - name: filter in: query type: string description: Apply a named filter previously created via /filter. authentication: type: apikey key: API-Key value: '{{env.MARGINALIA_SEARCH_API_KEY}}' placement: header exposes: - type: rest namespace: marginalia-search-search-rest port: 8080 description: REST adapter for Marginalia Search API — Search. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/search name: search description: REST surface for search. operations: - method: GET name: search description: Execute a web search call: marginalia-search-search.search with: query: rest.query count: rest.count timeout: rest.timeout dc: rest.dc page: rest.page nsfw: rest.nsfw filter: rest.filter outputParameters: - type: object mapping: $. - type: mcp namespace: marginalia-search-search-mcp port: 9090 transport: http description: MCP adapter for Marginalia Search API — Search. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: execute-web-search description: Execute a web search hints: readOnly: true destructive: false idempotent: true call: marginalia-search-search.search with: query: tools.query count: tools.count timeout: tools.timeout dc: tools.dc page: tools.page nsfw: tools.nsfw filter: tools.filter outputParameters: - type: object mapping: $.