naftiko: 1.0.0-alpha2 info: label: Factset IRN API v1 — Notes description: 'Factset IRN API v1 — Notes. 19 operations. Lead operation: Factset Get all the notes in the specified date range filtered on the given identifiers. Self-contained Naftiko capability covering one Factset business surface.' tags: - Factset - Notes created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FACTSET_API_KEY: FACTSET_API_KEY capability: consumes: - type: http namespace: irn-notes-notes-2 baseUri: https://api.factset.com/research/irn description: Factset IRN API v1 — Notes business capability. Self-contained, no shared references. resources: - name: v1-notes path: /v1/notes operations: - name: getnotes method: GET description: Factset Get all the notes in the specified date range filtered on the given identifiers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: start in: query type: string description: StartDate - name: end in: query type: string description: EndDate - name: identifiers in: query type: array description: Set of identifiers to filter on - name: authors in: query type: array description: Set of authors to filter on - name: subjects in: query type: array description: Set of subjects to filter on - name: recommendations in: query type: array description: Set of recommendations to filter on - name: sentiments in: query type: array description: Set of sentiments to filter on - name: limit in: query type: integer description: Limit on the number of notes retrieved - name: offset in: query type: integer description: Fetch notes after the offset - name: modifiedSince in: query type: string description: Only return notes which have been modified or created since a particular time - name: states in: query type: array description: Set of states to filter on - name: filterOnRelatedSymbols in: query type: boolean description: Include notes whose related symbols match the identifier filter - name: includeRelatedEntities in: query type: boolean description: When set to true fetches notes tagged with all the entities related to identifiers param - name: X-IRN-Include-Deleted in: header type: boolean - name: createnote method: POST description: Factset Create a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-IRN-Contributor-Username in: header type: string - name: X-IRN-Contributor-Serial in: header type: string - name: body in: body type: object description: Request body (JSON). required: true - name: v1-notes-noteId path: /v1/notes/{noteId} operations: - name: getnote method: GET description: Factset Get details of a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string description: Note Id required: true - name: updatenote method: PUT description: Factset Update a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string description: Note Id required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deletenote method: DELETE description: Factset Delete a Note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: v1-notes-noteId-attachments path: /v1/notes/{noteId}/attachments operations: - name: getattachments method: GET description: Factset Get all the attachments belonging to a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string description: Note Id required: true - name: createattachment method: POST description: Factset Create an attachment for an existing note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-notes-noteId-attachments-attachmentId path: /v1/notes/{noteId}/attachments/{attachmentId} operations: - name: softdeletenoteattachment method: DELETE description: Factset Delete attachment from note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string description: Note Id required: true - name: attachmentId in: path type: string description: Attachment Id required: true - name: v1-notes-noteId-attachments-attachmentId-download path: /v1/notes/{noteId}/attachments/{attachmentId}/download operations: - name: downloadattachment method: GET description: Factset Download an attachment from a Note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: attachmentId in: path type: string required: true - name: v1-notes-noteId-comments path: /v1/notes/{noteId}/comments operations: - name: getcomments method: GET description: Factset Get all comments for a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: createcomment method: POST description: Factset Create a comment to a Note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-notes-noteId-comments-commentId path: /v1/notes/{noteId}/comments/{commentId} operations: - name: getcomment method: GET description: Factset Get details of a comment belonging to a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: commentId in: path type: string required: true - name: patchcomment method: PATCH description: Factset Edit a comment for a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: commentId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deletecomment method: DELETE description: Factset Delete a Comment from a Note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: commentId in: path type: string required: true - name: v1-notes-noteId-comments-commentId-attachments path: /v1/notes/{noteId}/comments/{commentId}/attachments operations: - name: getcommentattachments method: GET description: Factset Get attachments summary of a comment belonging to a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: commentId in: path type: string required: true - name: createcommentattachment method: POST description: Factset Create a comment attachment to a Note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: commentId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-notes-noteId-comments-commentId-attachments-attachmentId-download path: /v1/notes/{noteId}/comments/{commentId}/attachments/{attachmentId}/download operations: - name: downloadcommentattachmentforcomment method: GET description: Factset Download single attachment detail of a comment belonging to a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string required: true - name: commentId in: path type: string required: true - name: attachmentId in: path type: string required: true - name: v1-notes-noteId-events path: /v1/notes/{noteId}/events operations: - name: getevents method: GET description: Factset Get all the record events that belong to a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string description: Note Id required: true - name: v1-notes-noteId-events-recordEventId path: /v1/notes/{noteId}/events/{recordEventId} operations: - name: getrecordevent method: GET description: Factset Get details of a record event of a note outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: noteId in: path type: string description: Note Id required: true - name: recordEventId in: path type: string description: Record Event Id required: true authentication: type: bearer token: '{{env.FACTSET_API_KEY}}' exposes: - type: rest namespace: irn-notes-notes-2-rest port: 8080 description: REST adapter for Factset IRN API v1 — Notes. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/notes name: v1-notes description: REST surface for v1-notes. operations: - method: GET name: getnotes description: Factset Get all the notes in the specified date range filtered on the given identifiers call: irn-notes-notes-2.getnotes with: start: rest.start end: rest.end identifiers: rest.identifiers authors: rest.authors subjects: rest.subjects recommendations: rest.recommendations sentiments: rest.sentiments limit: rest.limit offset: rest.offset modifiedSince: rest.modifiedSince states: rest.states filterOnRelatedSymbols: rest.filterOnRelatedSymbols includeRelatedEntities: rest.includeRelatedEntities X-IRN-Include-Deleted: rest.X-IRN-Include-Deleted outputParameters: - type: object mapping: $. - method: POST name: createnote description: Factset Create a note call: irn-notes-notes-2.createnote with: X-IRN-Contributor-Username: rest.X-IRN-Contributor-Username X-IRN-Contributor-Serial: rest.X-IRN-Contributor-Serial body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid} name: v1-notes-noteid description: REST surface for v1-notes-noteId. operations: - method: GET name: getnote description: Factset Get details of a note call: irn-notes-notes-2.getnote with: noteId: rest.noteId outputParameters: - type: object mapping: $. - method: PUT name: updatenote description: Factset Update a note call: irn-notes-notes-2.updatenote with: noteId: rest.noteId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletenote description: Factset Delete a Note call: irn-notes-notes-2.deletenote with: noteId: rest.noteId outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/attachments name: v1-notes-noteid-attachments description: REST surface for v1-notes-noteId-attachments. operations: - method: GET name: getattachments description: Factset Get all the attachments belonging to a note call: irn-notes-notes-2.getattachments with: noteId: rest.noteId outputParameters: - type: object mapping: $. - method: POST name: createattachment description: Factset Create an attachment for an existing note call: irn-notes-notes-2.createattachment with: noteId: rest.noteId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/attachments/{attachmentid} name: v1-notes-noteid-attachments-attachmentid description: REST surface for v1-notes-noteId-attachments-attachmentId. operations: - method: DELETE name: softdeletenoteattachment description: Factset Delete attachment from note call: irn-notes-notes-2.softdeletenoteattachment with: noteId: rest.noteId attachmentId: rest.attachmentId outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/attachments/{attachmentid}/download name: v1-notes-noteid-attachments-attachmentid-download description: REST surface for v1-notes-noteId-attachments-attachmentId-download. operations: - method: GET name: downloadattachment description: Factset Download an attachment from a Note call: irn-notes-notes-2.downloadattachment with: noteId: rest.noteId attachmentId: rest.attachmentId outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/comments name: v1-notes-noteid-comments description: REST surface for v1-notes-noteId-comments. operations: - method: GET name: getcomments description: Factset Get all comments for a note call: irn-notes-notes-2.getcomments with: noteId: rest.noteId outputParameters: - type: object mapping: $. - method: POST name: createcomment description: Factset Create a comment to a Note call: irn-notes-notes-2.createcomment with: noteId: rest.noteId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/comments/{commentid} name: v1-notes-noteid-comments-commentid description: REST surface for v1-notes-noteId-comments-commentId. operations: - method: GET name: getcomment description: Factset Get details of a comment belonging to a note call: irn-notes-notes-2.getcomment with: noteId: rest.noteId commentId: rest.commentId outputParameters: - type: object mapping: $. - method: PATCH name: patchcomment description: Factset Edit a comment for a note call: irn-notes-notes-2.patchcomment with: noteId: rest.noteId commentId: rest.commentId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletecomment description: Factset Delete a Comment from a Note call: irn-notes-notes-2.deletecomment with: noteId: rest.noteId commentId: rest.commentId outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/comments/{commentid}/attachments name: v1-notes-noteid-comments-commentid-attachments description: REST surface for v1-notes-noteId-comments-commentId-attachments. operations: - method: GET name: getcommentattachments description: Factset Get attachments summary of a comment belonging to a note call: irn-notes-notes-2.getcommentattachments with: noteId: rest.noteId commentId: rest.commentId outputParameters: - type: object mapping: $. - method: POST name: createcommentattachment description: Factset Create a comment attachment to a Note call: irn-notes-notes-2.createcommentattachment with: noteId: rest.noteId commentId: rest.commentId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/comments/{commentid}/attachments/{attachmentid}/download name: v1-notes-noteid-comments-commentid-attachments-attachmentid-download description: REST surface for v1-notes-noteId-comments-commentId-attachments-attachmentId-download. operations: - method: GET name: downloadcommentattachmentforcomment description: Factset Download single attachment detail of a comment belonging to a note call: irn-notes-notes-2.downloadcommentattachmentforcomment with: noteId: rest.noteId commentId: rest.commentId attachmentId: rest.attachmentId outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/events name: v1-notes-noteid-events description: REST surface for v1-notes-noteId-events. operations: - method: GET name: getevents description: Factset Get all the record events that belong to a note call: irn-notes-notes-2.getevents with: noteId: rest.noteId outputParameters: - type: object mapping: $. - path: /v1/v1/notes/{noteid}/events/{recordeventid} name: v1-notes-noteid-events-recordeventid description: REST surface for v1-notes-noteId-events-recordEventId. operations: - method: GET name: getrecordevent description: Factset Get details of a record event of a note call: irn-notes-notes-2.getrecordevent with: noteId: rest.noteId recordEventId: rest.recordEventId outputParameters: - type: object mapping: $. - type: mcp namespace: irn-notes-notes-2-mcp port: 9090 transport: http description: MCP adapter for Factset IRN API v1 — Notes. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: factset-get-all-notes-specified description: Factset Get all the notes in the specified date range filtered on the given identifiers hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getnotes with: start: tools.start end: tools.end identifiers: tools.identifiers authors: tools.authors subjects: tools.subjects recommendations: tools.recommendations sentiments: tools.sentiments limit: tools.limit offset: tools.offset modifiedSince: tools.modifiedSince states: tools.states filterOnRelatedSymbols: tools.filterOnRelatedSymbols includeRelatedEntities: tools.includeRelatedEntities X-IRN-Include-Deleted: tools.X-IRN-Include-Deleted outputParameters: - type: object mapping: $. - name: factset-create-note description: Factset Create a note hints: readOnly: false destructive: false idempotent: false call: irn-notes-notes-2.createnote with: X-IRN-Contributor-Username: tools.X-IRN-Contributor-Username X-IRN-Contributor-Serial: tools.X-IRN-Contributor-Serial body: tools.body outputParameters: - type: object mapping: $. - name: factset-get-details-note description: Factset Get details of a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getnote with: noteId: tools.noteId outputParameters: - type: object mapping: $. - name: factset-update-note description: Factset Update a note hints: readOnly: false destructive: false idempotent: true call: irn-notes-notes-2.updatenote with: noteId: tools.noteId body: tools.body outputParameters: - type: object mapping: $. - name: factset-delete-note description: Factset Delete a Note hints: readOnly: false destructive: true idempotent: true call: irn-notes-notes-2.deletenote with: noteId: tools.noteId outputParameters: - type: object mapping: $. - name: factset-get-all-attachments-belonging description: Factset Get all the attachments belonging to a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getattachments with: noteId: tools.noteId outputParameters: - type: object mapping: $. - name: factset-create-attachment-existing-note description: Factset Create an attachment for an existing note hints: readOnly: false destructive: false idempotent: false call: irn-notes-notes-2.createattachment with: noteId: tools.noteId body: tools.body outputParameters: - type: object mapping: $. - name: factset-delete-attachment-note description: Factset Delete attachment from note hints: readOnly: false destructive: true idempotent: true call: irn-notes-notes-2.softdeletenoteattachment with: noteId: tools.noteId attachmentId: tools.attachmentId outputParameters: - type: object mapping: $. - name: factset-download-attachment-note description: Factset Download an attachment from a Note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.downloadattachment with: noteId: tools.noteId attachmentId: tools.attachmentId outputParameters: - type: object mapping: $. - name: factset-get-all-comments-note description: Factset Get all comments for a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getcomments with: noteId: tools.noteId outputParameters: - type: object mapping: $. - name: factset-create-comment-note description: Factset Create a comment to a Note hints: readOnly: false destructive: false idempotent: false call: irn-notes-notes-2.createcomment with: noteId: tools.noteId body: tools.body outputParameters: - type: object mapping: $. - name: factset-get-details-comment-belonging description: Factset Get details of a comment belonging to a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getcomment with: noteId: tools.noteId commentId: tools.commentId outputParameters: - type: object mapping: $. - name: factset-edit-comment-note description: Factset Edit a comment for a note hints: readOnly: false destructive: false idempotent: true call: irn-notes-notes-2.patchcomment with: noteId: tools.noteId commentId: tools.commentId body: tools.body outputParameters: - type: object mapping: $. - name: factset-delete-comment-note description: Factset Delete a Comment from a Note hints: readOnly: false destructive: true idempotent: true call: irn-notes-notes-2.deletecomment with: noteId: tools.noteId commentId: tools.commentId outputParameters: - type: object mapping: $. - name: factset-get-attachments-summary-comment description: Factset Get attachments summary of a comment belonging to a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getcommentattachments with: noteId: tools.noteId commentId: tools.commentId outputParameters: - type: object mapping: $. - name: factset-create-comment-attachment-note description: Factset Create a comment attachment to a Note hints: readOnly: false destructive: false idempotent: false call: irn-notes-notes-2.createcommentattachment with: noteId: tools.noteId commentId: tools.commentId body: tools.body outputParameters: - type: object mapping: $. - name: factset-download-single-attachment-detail description: Factset Download single attachment detail of a comment belonging to a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.downloadcommentattachmentforcomment with: noteId: tools.noteId commentId: tools.commentId attachmentId: tools.attachmentId outputParameters: - type: object mapping: $. - name: factset-get-all-record-events description: Factset Get all the record events that belong to a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getevents with: noteId: tools.noteId outputParameters: - type: object mapping: $. - name: factset-get-details-record-event description: Factset Get details of a record event of a note hints: readOnly: true destructive: false idempotent: true call: irn-notes-notes-2.getrecordevent with: noteId: tools.noteId recordEventId: tools.recordEventId outputParameters: - type: object mapping: $.