naftiko: 1.0.0-alpha2 info: label: Sound Transit OneBusAway API — Stops description: 'Sound Transit OneBusAway API — Stops. 4 operations. Lead operation: Get Schedule For Stop. Self-contained Naftiko capability covering one Sound Transit business surface.' tags: - Sound Transit - Stops created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SOUND_TRANSIT_API_KEY: SOUND_TRANSIT_API_KEY capability: consumes: - type: http namespace: onebusaway-stops baseUri: https://api.pugetsound.onebusaway.org/api/where description: Sound Transit OneBusAway API — Stops business capability. Self-contained, no shared references. resources: - name: schedule-for-stop-id}.json path: /schedule-for-stop/{id}.json operations: - name: getscheduleforstop method: GET description: Get Schedule For Stop outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Stop identifier required: true - name: date in: query type: string description: Service date in YYYY-MM-DD format (default today) - name: stop-id}.json path: /stop/{id}.json operations: - name: getstop method: GET description: Get Stop outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique stop identifier required: true - name: stops-for-location.json path: /stops-for-location.json operations: - name: liststopsforlocation method: GET description: List Stops For Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: lat in: query type: number description: Latitude of the search location required: true - name: lon in: query type: number description: Longitude of the search location required: true - name: radius in: query type: integer description: Search radius in meters (default 500) - name: query in: query type: string description: Stop code or name search query - name: stops-for-route-id}.json path: /stops-for-route/{id}.json operations: - name: liststopsforroute method: GET description: List Stops For Route outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Route identifier required: true exposes: - type: rest namespace: onebusaway-stops-rest port: 8080 description: REST adapter for Sound Transit OneBusAway API — Stops. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/schedule-for-stop/id-json name: schedule-for-stop-id-json description: REST surface for schedule-for-stop-id}.json. operations: - method: GET name: getscheduleforstop description: Get Schedule For Stop call: onebusaway-stops.getscheduleforstop with: id: rest.id date: rest.date outputParameters: - type: object mapping: $. - path: /v1/stop/id-json name: stop-id-json description: REST surface for stop-id}.json. operations: - method: GET name: getstop description: Get Stop call: onebusaway-stops.getstop with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/stops-for-location-json name: stops-for-location-json description: REST surface for stops-for-location.json. operations: - method: GET name: liststopsforlocation description: List Stops For Location call: onebusaway-stops.liststopsforlocation with: lat: rest.lat lon: rest.lon radius: rest.radius query: rest.query outputParameters: - type: object mapping: $. - path: /v1/stops-for-route/id-json name: stops-for-route-id-json description: REST surface for stops-for-route-id}.json. operations: - method: GET name: liststopsforroute description: List Stops For Route call: onebusaway-stops.liststopsforroute with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: onebusaway-stops-mcp port: 9090 transport: http description: MCP adapter for Sound Transit OneBusAway API — Stops. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-schedule-stop description: Get Schedule For Stop hints: readOnly: true destructive: false idempotent: true call: onebusaway-stops.getscheduleforstop with: id: tools.id date: tools.date outputParameters: - type: object mapping: $. - name: get-stop description: Get Stop hints: readOnly: true destructive: false idempotent: true call: onebusaway-stops.getstop with: id: tools.id outputParameters: - type: object mapping: $. - name: list-stops-location description: List Stops For Location hints: readOnly: true destructive: false idempotent: true call: onebusaway-stops.liststopsforlocation with: lat: tools.lat lon: tools.lon radius: tools.radius query: tools.query outputParameters: - type: object mapping: $. - name: list-stops-route description: List Stops For Route hints: readOnly: true destructive: false idempotent: true call: onebusaway-stops.liststopsforroute with: id: tools.id outputParameters: - type: object mapping: $.