{
  "schemaVersion": "1.0",
  "item": {
    "slug": "mta",
    "name": "NYC MTA Transit",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/brianleach/mta",
    "canonicalUrl": "https://clawhub.ai/brianleach/mta",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/mta",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mta",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CLAUDE.md",
      "README.md",
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "scripts/mta.mjs"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/mta"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/mta",
    "agentPageUrl": "https://openagent3.xyz/skills/mta/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mta/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mta/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "NYC MTA Transit",
        "body": "Real-time New York City MTA transit data — subway arrivals (GTFS-RT protobuf), bus predictions (SIRI JSON API), service alerts, and route information. Subway and alerts work with zero config; bus data requires a free API key."
      },
      {
        "title": "When to Use",
        "body": "User asks about NYC subway, MTA, the train, or specific lines (1/2/3, A/C/E, N/Q/R/W, etc.)\nUser asks \"when is the next train\" in a New York City context\nUser mentions specific NYC stations (Times Square, Penn Station, Grand Central, Union Square, etc.)\nUser asks about NYC bus routes (M1, B52, Bx12, Q44, S79, etc.)\nUser asks about MTA service alerts, delays, planned work, weekend service changes\nUser asks about MTA fares, MetroCard, OMNY\nUser asks about subway status or weekend service changes\nUser asks about nearby subway stops or bus stops in NYC"
      },
      {
        "title": "Data Sources",
        "body": "NYC MTA is multiple transit agencies with different data formats:"
      },
      {
        "title": "Subway Real-Time Feeds (GTFS-RT Protobuf, NO key required)",
        "body": "Feeds are grouped by line division. Each returns protobuf binary with NYCT extensions (direction, track info).\n\nFeedLinesURL1234567/GS1, 2, 3, 4, 5, 6, 7, Grand Central Shuttlehttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfsACEA, C, E, Rockaway Shuttle, Franklin Shuttlehttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-aceBDFMB, D, F, Mhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-bdfmGGhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-gJZJ, Zhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-jzLLhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-lNQRWN, Q, R, Whttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-nqrwSIRStaten Island Railwayhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-si\n\nFeeds update every ~30 seconds. No API key required."
      },
      {
        "title": "Bus Real-Time (SIRI JSON API, requires MTA_BUS_API_KEY)",
        "body": "Get a free key at: https://register.developer.obanyc.com/\n\nEndpointDescriptionSIRI StopMonitoringArrivals at a specific bus stopSIRI VehicleMonitoringAll vehicles on a bus routeOneBusAway Stop InfoStop details and nearby stopsOneBusAway RoutesRoute discovery\n\nRate limit: 1 request per 30 seconds."
      },
      {
        "title": "Service Alerts (GTFS-RT Protobuf, NO key required)",
        "body": "FeedURLSubway Alertshttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/subway-alertsBus Alertshttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/bus-alertsAll Alertshttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/all-alerts"
      },
      {
        "title": "GTFS Static Feed",
        "body": "FeedURLSubwayhttp://web.mta.info/developers/data/nyct/subway/google_transit.zip"
      },
      {
        "title": "Script: scripts/mta.mjs",
        "body": "Main entry point. Supports these commands:\n\n# Subway arrivals\nnode scripts/mta.mjs arrivals --stop-search \"times square\"\nnode scripts/mta.mjs arrivals --stop-search \"penn station\" --line A\nnode scripts/mta.mjs arrivals --stop 127N\nnode scripts/mta.mjs arrivals --station \"Grand Central\"\n\n# Bus arrivals (requires MTA_BUS_API_KEY)\nnode scripts/mta.mjs bus-arrivals --stop MTA_308209\nnode scripts/mta.mjs bus-arrivals --stop MTA_308209 --route M1\n\n# Vehicle tracking\nnode scripts/mta.mjs vehicles --line 1\nnode scripts/mta.mjs bus-vehicles --route B52\n\n# Service alerts\nnode scripts/mta.mjs alerts\nnode scripts/mta.mjs alerts --subway\nnode scripts/mta.mjs alerts --bus\nnode scripts/mta.mjs alerts --line A\n\n# Routes and stops\nnode scripts/mta.mjs routes\nnode scripts/mta.mjs bus-routes\nnode scripts/mta.mjs stops --search \"grand central\"\nnode scripts/mta.mjs stops --near 40.7484,-73.9856\nnode scripts/mta.mjs bus-stops --near 40.7484,-73.9856\nnode scripts/mta.mjs bus-stops --route M1\nnode scripts/mta.mjs route-info --line A\n\n# Maintenance\nnode scripts/mta.mjs refresh-gtfs"
      },
      {
        "title": "Setup: Bus API Key",
        "body": "Subway and alert commands work with zero configuration. For bus commands:\n\nGet a free key at https://register.developer.obanyc.com/\nSet environment variable: MTA_BUS_API_KEY"
      },
      {
        "title": "Setup: GTFS Static Data",
        "body": "On first use, run node scripts/mta.mjs refresh-gtfs to download subway stop/route data to ~/.mta/gtfs/. Refresh periodically (data updates hourly)."
      },
      {
        "title": "NYC Subway Lines Reference",
        "body": "LineColorRouteTerminals1Red7th Ave LocalVan Cortlandt Park-242 St ↔ South Ferry2Red7th Ave ExpressWakefield-241 St ↔ Flatbush Ave-Brooklyn College3Red7th Ave ExpressHarlem-148 St ↔ New Lots Ave4GreenLexington Ave ExpressWoodlawn ↔ Crown Heights-Utica Ave5GreenLexington Ave ExpressEastchester-Dyre Ave ↔ Flatbush Ave-Brooklyn College6GreenLexington Ave LocalPelham Bay Park ↔ Brooklyn Bridge-City Hall7PurpleFlushingFlushing-Main St ↔ 34 St-Hudson YardsABlue8th Ave ExpressInwood-207 St ↔ Far Rockaway / Ozone Park-Lefferts BlvdCBlue8th Ave Local168 St ↔ Euclid AveEBlue8th Ave LocalJamaica Center ↔ World Trade CenterBOrange6th Ave ExpressBedford Park Blvd ↔ Brighton BeachDOrange6th Ave ExpressNorwood-205 St ↔ Coney Island-Stillwell AveFOrange6th Ave LocalJamaica-179 St ↔ Coney Island-Stillwell AveMOrange6th Ave LocalMiddle Village-Metropolitan Ave ↔ Forest Hills-71 AveGLight GreenBrooklyn-Queens CrosstownCourt Sq ↔ Church AveJBrownNassau StJamaica Center ↔ Broad StZBrownNassau St ExpressJamaica Center ↔ Broad St (Peak only)LGray14th St-Canarsie8 Ave ↔ Canarsie-Rockaway PkwyNYellowBroadway ExpressAstoria-Ditmars Blvd ↔ Coney Island-Stillwell AveQYellowBroadway Express96 St ↔ Coney Island-Stillwell AveRYellowBroadway LocalForest Hills-71 Ave ↔ Bay Ridge-95 StWYellowBroadway LocalAstoria-Ditmars Blvd ↔ Whitehall St-South FerrySGray42nd St ShuttleTimes Sq-42 St ↔ Grand Central-42 StSGrayFranklin Ave ShuttleFranklin Ave ↔ Prospect ParkSGrayRockaway Park ShuttleBroad Channel ↔ Rockaway Park-Beach 116 StSIRBlueStaten Island RailwaySt George ↔ Tottenville"
      },
      {
        "title": "Key Bus Routes Reference",
        "body": "RouteNameBoroughM15th Ave / Madison AveManhattanM151st Ave / 2nd AveManhattanM3434th Street CrosstownManhattanM4242nd Street CrosstownManhattanM60LaGuardia Airport LinkManhattan/QueensB44Nostrand AveBrooklynB52Gates Ave/Greene AveBrooklynBx12Fordham Road/Pelham PkwyBronxQ44Merrick Blvd/Cross IslandQueensS79Hylan BlvdStaten IslandX27Bay Ridge-Downtown Manhattan ExpressBrooklyn"
      },
      {
        "title": "MTA Fares Reference (2025)",
        "body": "Fare TypePriceSubway/Bus (OMNY tap or MetroCard)$2.90Bus-to-bus / subway-to-bus transferFree within 2 hoursExpress Bus$7.007-Day Unlimited$34.0030-Day Unlimited$132.00Single Ride (vending machine only)$3.25Reduced Fare$1.45\n\nPayment via OMNY (contactless tap), MetroCard, or Ventra. Free transfers between subway and bus within 2 hours with OMNY."
      },
      {
        "title": "Tips for Users",
        "body": "Subway stop IDs end with N (northbound/uptown) or S (southbound/downtown). Example: 127N = Times Sq northbound\nSubway works with zero config — no API key needed for any subway command\nBus requires a free API key — get one at https://register.developer.obanyc.com/\nAlerts always work — no key needed\nMultiple subway feeds exist; the skill automatically fetches the right one(s) for the line requested\nUse --stop-search for fuzzy name matching, --stop for exact stop IDs"
      },
      {
        "title": "Error Handling",
        "body": "If MTA_BUS_API_KEY is not set, bus commands print a helpful message with the signup URL; subway commands still work\nInvalid station/stop searches show \"No matching station found\"\nNetwork errors and API error responses produce friendly messages\nIf a subway feed returns empty data, note that real-time data may be temporarily unavailable"
      },
      {
        "title": "Response Formatting",
        "body": "When presenting transit info to the user:\n\nLead with the most actionable info (next arrival time, active alerts)\nShow line letter/number + direction (e.g., \"A train toward Far Rockaway, arriving 3 min\")\nFor subway: show \"Approaching\" for trains at the station, minutes for upcoming\nShow track info when available (actual vs scheduled track)\nAlways mention active service alerts for the line being queried\nFor buses: show route + destination + minutes/stops away\nTimes in 12-hour format with AM/PM"
      },
      {
        "title": "External Endpoints",
        "body": "EndpointData SentData Receivedapi-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs*None (GET only)Subway positions/arrivals (Protobuf)api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/*-alertsNone (GET only)Service alerts (Protobuf)bustime.mta.info/api/siri/*API key (query param)Bus arrivals/positions (JSON)bustime.mta.info/api/where/*API key (query param)Stop/route discovery (JSON)web.mta.info/developers/data/nyct/subway/*None (GET only)GTFS static data (ZIP)\n\nSubway and alert endpoints are open access with no authentication. Bus endpoints require a free API key passed as a query parameter."
      },
      {
        "title": "Security & Privacy",
        "body": "Subway: No credentials required — subway and alert feeds are open access, no API keys or tokens\nBus: Free API key required — passed as a URL query parameter to MTA's official BusTime API\nNo user data transmitted — requests contain only API keys and route/stop identifiers, no personal information\nLocal storage only — GTFS static data is cached locally at ~/.mta/gtfs/; no data is written elsewhere\nNo telemetry — this skill does not phone home or collect usage data\nInput handling — stop names and route IDs from user input are used only for local filtering, never interpolated into shell commands"
      },
      {
        "title": "Trust Statement",
        "body": "This skill reads publicly available transit data from MTA's official feeds and APIs. The bus API key is used only for MTA BusTime API authentication. The skill does not access, store, or transmit any personal information beyond the API key configured by the user."
      }
    ],
    "body": "NYC MTA Transit\n\nReal-time New York City MTA transit data — subway arrivals (GTFS-RT protobuf), bus predictions (SIRI JSON API), service alerts, and route information. Subway and alerts work with zero config; bus data requires a free API key.\n\nWhen to Use\nUser asks about NYC subway, MTA, the train, or specific lines (1/2/3, A/C/E, N/Q/R/W, etc.)\nUser asks \"when is the next train\" in a New York City context\nUser mentions specific NYC stations (Times Square, Penn Station, Grand Central, Union Square, etc.)\nUser asks about NYC bus routes (M1, B52, Bx12, Q44, S79, etc.)\nUser asks about MTA service alerts, delays, planned work, weekend service changes\nUser asks about MTA fares, MetroCard, OMNY\nUser asks about subway status or weekend service changes\nUser asks about nearby subway stops or bus stops in NYC\nData Sources\n\nNYC MTA is multiple transit agencies with different data formats:\n\nSubway Real-Time Feeds (GTFS-RT Protobuf, NO key required)\n\nFeeds are grouped by line division. Each returns protobuf binary with NYCT extensions (direction, track info).\n\nFeed\tLines\tURL\n1234567/GS\t1, 2, 3, 4, 5, 6, 7, Grand Central Shuttle\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs\nACE\tA, C, E, Rockaway Shuttle, Franklin Shuttle\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-ace\nBDFM\tB, D, F, M\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-bdfm\nG\tG\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-g\nJZ\tJ, Z\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-jz\nL\tL\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-l\nNQRW\tN, Q, R, W\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-nqrw\nSIR\tStaten Island Railway\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-si\n\nFeeds update every ~30 seconds. No API key required.\n\nBus Real-Time (SIRI JSON API, requires MTA_BUS_API_KEY)\n\nGet a free key at: https://register.developer.obanyc.com/\n\nEndpoint\tDescription\nSIRI StopMonitoring\tArrivals at a specific bus stop\nSIRI VehicleMonitoring\tAll vehicles on a bus route\nOneBusAway Stop Info\tStop details and nearby stops\nOneBusAway Routes\tRoute discovery\n\nRate limit: 1 request per 30 seconds.\n\nService Alerts (GTFS-RT Protobuf, NO key required)\nFeed\tURL\nSubway Alerts\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/subway-alerts\nBus Alerts\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/bus-alerts\nAll Alerts\thttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/all-alerts\nGTFS Static Feed\nFeed\tURL\nSubway\thttp://web.mta.info/developers/data/nyct/subway/google_transit.zip\nImplementation\nScript: scripts/mta.mjs\n\nMain entry point. Supports these commands:\n\n# Subway arrivals\nnode scripts/mta.mjs arrivals --stop-search \"times square\"\nnode scripts/mta.mjs arrivals --stop-search \"penn station\" --line A\nnode scripts/mta.mjs arrivals --stop 127N\nnode scripts/mta.mjs arrivals --station \"Grand Central\"\n\n# Bus arrivals (requires MTA_BUS_API_KEY)\nnode scripts/mta.mjs bus-arrivals --stop MTA_308209\nnode scripts/mta.mjs bus-arrivals --stop MTA_308209 --route M1\n\n# Vehicle tracking\nnode scripts/mta.mjs vehicles --line 1\nnode scripts/mta.mjs bus-vehicles --route B52\n\n# Service alerts\nnode scripts/mta.mjs alerts\nnode scripts/mta.mjs alerts --subway\nnode scripts/mta.mjs alerts --bus\nnode scripts/mta.mjs alerts --line A\n\n# Routes and stops\nnode scripts/mta.mjs routes\nnode scripts/mta.mjs bus-routes\nnode scripts/mta.mjs stops --search \"grand central\"\nnode scripts/mta.mjs stops --near 40.7484,-73.9856\nnode scripts/mta.mjs bus-stops --near 40.7484,-73.9856\nnode scripts/mta.mjs bus-stops --route M1\nnode scripts/mta.mjs route-info --line A\n\n# Maintenance\nnode scripts/mta.mjs refresh-gtfs\n\nSetup: Bus API Key\n\nSubway and alert commands work with zero configuration. For bus commands:\n\nGet a free key at https://register.developer.obanyc.com/\nSet environment variable: MTA_BUS_API_KEY\nSetup: GTFS Static Data\n\nOn first use, run node scripts/mta.mjs refresh-gtfs to download subway stop/route data to ~/.mta/gtfs/. Refresh periodically (data updates hourly).\n\nNYC Subway Lines Reference\nLine\tColor\tRoute\tTerminals\n1\tRed\t7th Ave Local\tVan Cortlandt Park-242 St ↔ South Ferry\n2\tRed\t7th Ave Express\tWakefield-241 St ↔ Flatbush Ave-Brooklyn College\n3\tRed\t7th Ave Express\tHarlem-148 St ↔ New Lots Ave\n4\tGreen\tLexington Ave Express\tWoodlawn ↔ Crown Heights-Utica Ave\n5\tGreen\tLexington Ave Express\tEastchester-Dyre Ave ↔ Flatbush Ave-Brooklyn College\n6\tGreen\tLexington Ave Local\tPelham Bay Park ↔ Brooklyn Bridge-City Hall\n7\tPurple\tFlushing\tFlushing-Main St ↔ 34 St-Hudson Yards\nA\tBlue\t8th Ave Express\tInwood-207 St ↔ Far Rockaway / Ozone Park-Lefferts Blvd\nC\tBlue\t8th Ave Local\t168 St ↔ Euclid Ave\nE\tBlue\t8th Ave Local\tJamaica Center ↔ World Trade Center\nB\tOrange\t6th Ave Express\tBedford Park Blvd ↔ Brighton Beach\nD\tOrange\t6th Ave Express\tNorwood-205 St ↔ Coney Island-Stillwell Ave\nF\tOrange\t6th Ave Local\tJamaica-179 St ↔ Coney Island-Stillwell Ave\nM\tOrange\t6th Ave Local\tMiddle Village-Metropolitan Ave ↔ Forest Hills-71 Ave\nG\tLight Green\tBrooklyn-Queens Crosstown\tCourt Sq ↔ Church Ave\nJ\tBrown\tNassau St\tJamaica Center ↔ Broad St\nZ\tBrown\tNassau St Express\tJamaica Center ↔ Broad St (Peak only)\nL\tGray\t14th St-Canarsie\t8 Ave ↔ Canarsie-Rockaway Pkwy\nN\tYellow\tBroadway Express\tAstoria-Ditmars Blvd ↔ Coney Island-Stillwell Ave\nQ\tYellow\tBroadway Express\t96 St ↔ Coney Island-Stillwell Ave\nR\tYellow\tBroadway Local\tForest Hills-71 Ave ↔ Bay Ridge-95 St\nW\tYellow\tBroadway Local\tAstoria-Ditmars Blvd ↔ Whitehall St-South Ferry\nS\tGray\t42nd St Shuttle\tTimes Sq-42 St ↔ Grand Central-42 St\nS\tGray\tFranklin Ave Shuttle\tFranklin Ave ↔ Prospect Park\nS\tGray\tRockaway Park Shuttle\tBroad Channel ↔ Rockaway Park-Beach 116 St\nSIR\tBlue\tStaten Island Railway\tSt George ↔ Tottenville\nKey Bus Routes Reference\nRoute\tName\tBorough\nM1\t5th Ave / Madison Ave\tManhattan\nM15\t1st Ave / 2nd Ave\tManhattan\nM34\t34th Street Crosstown\tManhattan\nM42\t42nd Street Crosstown\tManhattan\nM60\tLaGuardia Airport Link\tManhattan/Queens\nB44\tNostrand Ave\tBrooklyn\nB52\tGates Ave/Greene Ave\tBrooklyn\nBx12\tFordham Road/Pelham Pkwy\tBronx\nQ44\tMerrick Blvd/Cross Island\tQueens\nS79\tHylan Blvd\tStaten Island\nX27\tBay Ridge-Downtown Manhattan Express\tBrooklyn\nMTA Fares Reference (2025)\nFare Type\tPrice\nSubway/Bus (OMNY tap or MetroCard)\t$2.90\nBus-to-bus / subway-to-bus transfer\tFree within 2 hours\nExpress Bus\t$7.00\n7-Day Unlimited\t$34.00\n30-Day Unlimited\t$132.00\nSingle Ride (vending machine only)\t$3.25\nReduced Fare\t$1.45\n\nPayment via OMNY (contactless tap), MetroCard, or Ventra. Free transfers between subway and bus within 2 hours with OMNY.\n\nTips for Users\nSubway stop IDs end with N (northbound/uptown) or S (southbound/downtown). Example: 127N = Times Sq northbound\nSubway works with zero config — no API key needed for any subway command\nBus requires a free API key — get one at https://register.developer.obanyc.com/\nAlerts always work — no key needed\nMultiple subway feeds exist; the skill automatically fetches the right one(s) for the line requested\nUse --stop-search for fuzzy name matching, --stop for exact stop IDs\nError Handling\nIf MTA_BUS_API_KEY is not set, bus commands print a helpful message with the signup URL; subway commands still work\nInvalid station/stop searches show \"No matching station found\"\nNetwork errors and API error responses produce friendly messages\nIf a subway feed returns empty data, note that real-time data may be temporarily unavailable\nResponse Formatting\n\nWhen presenting transit info to the user:\n\nLead with the most actionable info (next arrival time, active alerts)\nShow line letter/number + direction (e.g., \"A train toward Far Rockaway, arriving 3 min\")\nFor subway: show \"Approaching\" for trains at the station, minutes for upcoming\nShow track info when available (actual vs scheduled track)\nAlways mention active service alerts for the line being queried\nFor buses: show route + destination + minutes/stops away\nTimes in 12-hour format with AM/PM\nExternal Endpoints\nEndpoint\tData Sent\tData Received\napi-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs*\tNone (GET only)\tSubway positions/arrivals (Protobuf)\napi-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/*-alerts\tNone (GET only)\tService alerts (Protobuf)\nbustime.mta.info/api/siri/*\tAPI key (query param)\tBus arrivals/positions (JSON)\nbustime.mta.info/api/where/*\tAPI key (query param)\tStop/route discovery (JSON)\nweb.mta.info/developers/data/nyct/subway/*\tNone (GET only)\tGTFS static data (ZIP)\n\nSubway and alert endpoints are open access with no authentication. Bus endpoints require a free API key passed as a query parameter.\n\nSecurity & Privacy\nSubway: No credentials required — subway and alert feeds are open access, no API keys or tokens\nBus: Free API key required — passed as a URL query parameter to MTA's official BusTime API\nNo user data transmitted — requests contain only API keys and route/stop identifiers, no personal information\nLocal storage only — GTFS static data is cached locally at ~/.mta/gtfs/; no data is written elsewhere\nNo telemetry — this skill does not phone home or collect usage data\nInput handling — stop names and route IDs from user input are used only for local filtering, never interpolated into shell commands\nTrust Statement\n\nThis skill reads publicly available transit data from MTA's official feeds and APIs. The bus API key is used only for MTA BusTime API authentication. The skill does not access, store, or transmit any personal information beyond the API key configured by the user."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/brianleach/mta",
    "publisherUrl": "https://clawhub.ai/brianleach/mta",
    "owner": "brianleach",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/mta",
    "downloadUrl": "https://openagent3.xyz/downloads/mta",
    "agentUrl": "https://openagent3.xyz/skills/mta/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mta/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mta/agent.md"
  }
}