The Philadelphia Inquirer Feeds API

Site-wide and per-category RSS feeds.

OpenAPI Specification

philadelphia-inquirer-feeds-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Dewey MCP Feeds API
  version: '0.1'
  summary: FastMCP server exposing read-only search over the Inquirer archive.
  description: Dewey MCP is a containerized FastMCP server for read-only search over a news archive backed by Azure AI Search. It exposes a single MCP tool, `search_archive`, that accepts a search query plus optional date and author filters and returns ranked article chunks with metadata. The server is open source under `phillymedia/dewey-mcp` and is the protocol surface for the broader Dewey AI librarian project (Lenfest Institute fellowship, supported by Microsoft and OpenAI). This OpenAPI describes the server's HTTP envelope (MCP protocol endpoint, liveness, and readiness probes); the MCP tool itself is described in `components.schemas`.
  contact:
    name: Dewey MCP
    url: https://github.com/phillymedia/dewey-mcp
servers:
- url: http://127.0.0.1:8000
  description: Default local server (configurable via MCP_HOST and MCP_PORT)
tags:
- name: Feeds
  description: Site-wide and per-category RSS feeds.
paths:
  /arc/outboundfeeds/rss/:
    get:
      operationId: getSiteRssFeed
      summary: Get Site-Wide RSS Feed
      description: Returns the top-level Inquirer.com RSS 2.0 feed of the most recent articles across all sections.
      tags:
      - Feeds
      parameters:
      - $ref: '#/components/parameters/outputType'
      responses:
        '200':
          description: RSS 2.0 XML document.
          content:
            application/rss+xml:
              schema:
                $ref: '#/components/schemas/RssFeed'
  /arc/outboundfeeds/rss/category/{category}/:
    get:
      operationId: getCategoryRssFeed
      summary: Get Category RSS Feed
      description: Returns an RSS 2.0 feed scoped to a single Inquirer.com section such as news, sports, business, opinion, entertainment, food, life, health, or real-estate.
      tags:
      - Feeds
      parameters:
      - name: category
        in: path
        required: true
        description: Section slug.
        schema:
          type: string
          enum:
          - news
          - sports
          - business
          - opinion
          - politics
          - entertainment
          - life
          - food
          - health
          - real-estate
      - $ref: '#/components/parameters/outputType'
      responses:
        '200':
          description: RSS 2.0 XML document scoped to the requested category.
          content:
            application/rss+xml:
              schema:
                $ref: '#/components/schemas/RssFeed'
        '404':
          description: Unknown category slug.
components:
  parameters:
    outputType:
      name: outputType
      in: query
      required: false
      description: Output serialization. Must be `xml` for RSS.
      schema:
        type: string
        enum:
        - xml
        default: xml
  schemas:
    RssFeed:
      type: object
      description: RSS 2.0 channel with a list of recent articles.
      properties:
        title:
          type: string
          example: Inquirer.com
        link:
          type: string
          format: uri
          example: https://www.inquirer.com
        description:
          type: string
        lastBuildDate:
          type: string
          format: date-time
        ttl:
          type: integer
          description: Hours until the feed should be refreshed.
          example: 60
        items:
          type: array
          maxItems: 20
          items:
            $ref: '#/components/schemas/RssItem'
      required:
      - title
      - link
      - items
    RssItem:
      type: object
      description: A single RSS item representing an Inquirer.com article.
      properties:
        title:
          type: string
        link:
          type: string
          format: uri
        description:
          type: string
        author:
          type: string
        category:
          type: array
          items:
            type: string
        pubDate:
          type: string
          format: date-time
        guid:
          type: string
        content_encoded:
          type: string
          description: Full article HTML body in CDATA.
      required:
      - title
      - link
      - pubDate