naftiko: "1.0.0-alpha2" info: label: "Spaceflight News API — Reports" description: >- Reports surface for the Spaceflight News API (SNAPI). 2 operations. Lead operation: Spaceflight News List Reports. Self-contained Naftiko capability covering one Spaceflight News business surface — official mission, program, and agency reports from publishers like Boeing, NASA, and ESA. Filterable by news site, date range, and full-text search. Reports do not carry launch or event relationships. tags: - Spaceflight News - News - Reports created: "2026-05-30" modified: "2026-05-30" binds: - namespace: env keys: {} capability: consumes: - type: http namespace: "spaceflight-news-reports" baseUri: "https://api.spaceflightnewsapi.net/v4" description: "SNAPI v4 Reports surface. Public, no authentication required." resources: - name: "reports" path: "/reports/" operations: - name: "listReports" method: GET description: "List spaceflight reports with filtering, ordering, and pagination." inputParameters: - name: "limit" in: query type: integer required: false description: "Number of results to return per page." - name: "news_site" in: query type: string required: false description: "Comma-separated news site names to include." - name: "news_site_exclude" in: query type: string required: false description: "Comma-separated news site names to exclude." - name: "offset" in: query type: integer required: false description: "Initial index of the page to return." - name: "ordering" in: query type: array required: false description: "Sort by published_at, -published_at, updated_at, or -updated_at." - name: "published_at_gt" in: query type: string required: false description: "Published after the given ISO 8601 timestamp (excluded)." - name: "published_at_gte" in: query type: string required: false description: "Published on or after the given ISO 8601 timestamp." - name: "published_at_lt" in: query type: string required: false description: "Published before the given ISO 8601 timestamp (excluded)." - name: "published_at_lte" in: query type: string required: false description: "Published on or before the given ISO 8601 timestamp." - name: "search" in: query type: string required: false description: "Search phrase across title or summary." - name: "summary_contains" in: query type: string required: false description: "Phrase to match in the summary." - name: "summary_contains_all" in: query type: string required: false description: "Comma-separated keywords that must ALL appear in summary." - name: "summary_contains_one" in: query type: string required: false description: "Comma-separated keywords; at least one must appear in summary." - name: "title_contains" in: query type: string required: false description: "Phrase to match in the title." - name: "title_contains_all" in: query type: string required: false description: "Comma-separated keywords that must ALL appear in title." - name: "title_contains_one" in: query type: string required: false description: "Comma-separated keywords; at least one must appear in title." - name: "updated_at_gt" in: query type: string required: false description: "Updated after the given ISO 8601 timestamp (excluded)." - name: "updated_at_gte" in: query type: string required: false description: "Updated on or after the given ISO 8601 timestamp." - name: "updated_at_lt" in: query type: string required: false description: "Updated before the given ISO 8601 timestamp (excluded)." - name: "updated_at_lte" in: query type: string required: false description: "Updated on or before the given ISO 8601 timestamp." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "report" path: "/reports/{id}/" operations: - name: "retrieveReport" method: GET description: "Retrieve a single report by its integer ID." inputParameters: - name: "id" in: path type: integer required: true description: "Unique integer identifying this report." outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "spaceflight-news-reports-rest" port: 8080 description: "REST adapter for SNAPI Reports." resources: - path: "/v1/reports" name: "reports" description: "REST surface for the reports collection." operations: - method: GET name: "listReports" description: "List spaceflight reports." call: "spaceflight-news-reports.listReports" with: limit: "rest.limit" news_site: "rest.news_site" news_site_exclude: "rest.news_site_exclude" offset: "rest.offset" ordering: "rest.ordering" published_at_gt: "rest.published_at_gt" published_at_gte: "rest.published_at_gte" published_at_lt: "rest.published_at_lt" published_at_lte: "rest.published_at_lte" search: "rest.search" summary_contains: "rest.summary_contains" summary_contains_all: "rest.summary_contains_all" summary_contains_one: "rest.summary_contains_one" title_contains: "rest.title_contains" title_contains_all: "rest.title_contains_all" title_contains_one: "rest.title_contains_one" updated_at_gt: "rest.updated_at_gt" updated_at_gte: "rest.updated_at_gte" updated_at_lt: "rest.updated_at_lt" updated_at_lte: "rest.updated_at_lte" outputParameters: - type: object mapping: "$." - path: "/v1/reports/{id}" name: "report" description: "REST surface for a single report." operations: - method: GET name: "retrieveReport" description: "Retrieve a single report by ID." call: "spaceflight-news-reports.retrieveReport" with: id: "rest.id" outputParameters: - type: object mapping: "$." - type: mcp namespace: "spaceflight-news-reports-mcp" port: 9090 transport: http description: "MCP adapter for SNAPI Reports." tools: - name: "list-reports" description: "List spaceflight reports with filtering, ordering, and pagination." hints: readOnly: true destructive: false idempotent: true call: "spaceflight-news-reports.listReports" with: limit: "tools.limit" news_site: "tools.news_site" news_site_exclude: "tools.news_site_exclude" offset: "tools.offset" ordering: "tools.ordering" published_at_gt: "tools.published_at_gt" published_at_gte: "tools.published_at_gte" published_at_lt: "tools.published_at_lt" published_at_lte: "tools.published_at_lte" search: "tools.search" summary_contains: "tools.summary_contains" summary_contains_all: "tools.summary_contains_all" summary_contains_one: "tools.summary_contains_one" title_contains: "tools.title_contains" title_contains_all: "tools.title_contains_all" title_contains_one: "tools.title_contains_one" updated_at_gt: "tools.updated_at_gt" updated_at_gte: "tools.updated_at_gte" updated_at_lt: "tools.updated_at_lt" updated_at_lte: "tools.updated_at_lte" outputParameters: - type: object mapping: "$." - name: "retrieve-report" description: "Retrieve a single report by ID." hints: readOnly: true destructive: false idempotent: true call: "spaceflight-news-reports.retrieveReport" with: id: "tools.id" outputParameters: - type: object mapping: "$."