naftiko: 1.0.0-alpha2 info: label: USPTO Patent & Trademark API — Patents description: 'USPTO Patent & Trademark API — Patents. 3 operations. Lead operation: Search patent applications. Self-contained Naftiko capability covering one Uspto business surface.' tags: - Uspto - Patents created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: USPTO_API_KEY: USPTO_API_KEY capability: consumes: - type: http namespace: patent-patents baseUri: https://data.uspto.gov/api/v1 description: USPTO Patent & Trademark API — Patents business capability. Self-contained, no shared references. resources: - name: patent-applications-search path: /patent/applications/search operations: - name: searchpatentapplications method: GET description: Search patent applications outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: query in: query type: string description: Keyword search query - name: inventor in: query type: string description: Inventor name (last name, first name) - name: assignee in: query type: string description: Assignee/applicant company name - name: filingDateStart in: query type: string description: Filing date range start - name: filingDateEnd in: query type: string description: Filing date range end - name: cpcClassification in: query type: string description: CPC (Cooperative Patent Classification) code - name: patentType in: query type: string - name: status in: query type: string - name: offset in: query type: integer - name: limit in: query type: integer - name: patent-applications-applicationNumber path: /patent/applications/{applicationNumber} operations: - name: getpatentapplication method: GET description: Get patent application details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: applicationNumber in: path type: string description: USPTO application number (e.g., 16123456) required: true - name: patent-grants-patentNumber path: /patent/grants/{patentNumber} operations: - name: getgrantedpatent method: GET description: Get a granted patent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: patentNumber in: path type: string description: USPTO patent number (without US prefix) required: true authentication: type: apikey key: X-API-KEY value: '{{env.USPTO_API_KEY}}' placement: header exposes: - type: rest namespace: patent-patents-rest port: 8080 description: REST adapter for USPTO Patent & Trademark API — Patents. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/patent/applications/search name: patent-applications-search description: REST surface for patent-applications-search. operations: - method: GET name: searchpatentapplications description: Search patent applications call: patent-patents.searchpatentapplications with: query: rest.query inventor: rest.inventor assignee: rest.assignee filingDateStart: rest.filingDateStart filingDateEnd: rest.filingDateEnd cpcClassification: rest.cpcClassification patentType: rest.patentType status: rest.status offset: rest.offset limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/patent/applications/{applicationnumber} name: patent-applications-applicationnumber description: REST surface for patent-applications-applicationNumber. operations: - method: GET name: getpatentapplication description: Get patent application details call: patent-patents.getpatentapplication with: applicationNumber: rest.applicationNumber outputParameters: - type: object mapping: $. - path: /v1/patent/grants/{patentnumber} name: patent-grants-patentnumber description: REST surface for patent-grants-patentNumber. operations: - method: GET name: getgrantedpatent description: Get a granted patent call: patent-patents.getgrantedpatent with: patentNumber: rest.patentNumber outputParameters: - type: object mapping: $. - type: mcp namespace: patent-patents-mcp port: 9090 transport: http description: MCP adapter for USPTO Patent & Trademark API — Patents. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: search-patent-applications description: Search patent applications hints: readOnly: true destructive: false idempotent: true call: patent-patents.searchpatentapplications with: query: tools.query inventor: tools.inventor assignee: tools.assignee filingDateStart: tools.filingDateStart filingDateEnd: tools.filingDateEnd cpcClassification: tools.cpcClassification patentType: tools.patentType status: tools.status offset: tools.offset limit: tools.limit outputParameters: - type: object mapping: $. - name: get-patent-application-details description: Get patent application details hints: readOnly: true destructive: false idempotent: true call: patent-patents.getpatentapplication with: applicationNumber: tools.applicationNumber outputParameters: - type: object mapping: $. - name: get-granted-patent description: Get a granted patent hints: readOnly: true destructive: false idempotent: true call: patent-patents.getgrantedpatent with: patentNumber: tools.patentNumber outputParameters: - type: object mapping: $.