PakBus MCP
An official MCP server for PakBus that allows AI agents to search for places, plan multi-modal bus and metro journeys, retrieve departure times, check fares, view route details, and access service notices across 46 city networks in Pakistan.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://pakbus.app/mcpWhat you can do with it
- Plan a journey between two locations with fare and time estimates
- Find the next bus departures from a specific stop
- Search for places and stations by name
- Get route details including stops and fares
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- pakbus 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 6 advertised
- Resources
- 1 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
list_cities — List cities
Lists the Pakistani cities with PakBus routes, the number of routes in each and the city name in Urdu.
{
"type": "object",
"properties": {}
}{
"title": "List cities",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}find_places — Find places
Finds bus stops, stations and the places around them by name, in one city or in every city. Accepts common English spellings of Pakistani place names, such as Faizabad or Faiz Abad. Returns the place_id and city each other tool needs. When nothing matches in a city, it lists the stops in that city served by the most routes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Search one city network. Leave out to search every city."
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Place name in English letters, such as Liberty Chowk or Saddar."
}
},
"additionalProperties": false
}{
"title": "Find places",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}plan_journey — Plan a journey
Plans bus and metro journeys between two places in one city network. Returns the first journey leaving at or after the departure time as numbered steps with boarding stops, changes, walking, times and fare, a link that opens it in PakBus, and up to two later departures on one line. When the first bus has live positions and the journey leaves within the hour, it also says when the next one reaches the boarding stop. Apps that show interactive views also get a map of the journey.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city",
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"pattern": "^[a-z0-9]{1,16}$",
"description": "place_id of the destination, from find_places."
},
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "City network from find_places or list_cities, such as Lahore, Attock or Rawalpindi."
},
"from": {
"type": "string",
"pattern": "^[a-z0-9]{1,16}$",
"description": "place_id of the start, from find_places."
},
"depart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"description": "Departure date and time in Pakistan local time, as YYYY-MM-DDTHH:MM. Leave out to leave now. Search again with a later time for later journeys."
},
"max_changes": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Most changes between buses, 0 for direct journeys only. Defaults to 2. When none are found within the limit, journeys with up to 5 changes are returned."
}
},
"additionalProperties": false
}{
"title": "Plan a journey",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}place_departures — Next departures
Lists the next three departures today from a place for each route and direction that boards there, soonest first, with the minutes until each, the last bus of the day, the fare and the stops each direction serves after the place. Routes with live bus positions give live times counted from where each bus is now.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city",
"place"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "City network from find_places or list_cities, such as Lahore, Attock or Rawalpindi."
},
"place": {
"type": "string",
"pattern": "^[a-z0-9]{1,16}$",
"description": "place_id from find_places."
}
},
"additionalProperties": false
}{
"title": "Next departures",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}service_notices — Service changes
Lists current and announced service changes in a city network, such as closed stations, skipped stops or diversions, for every route or for one route by code, name or service. plan_journey, place_departures and route_details already include the changes on the routes they use.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "City network from find_places or list_cities, such as Lahore, Attock or Rawalpindi."
},
"route": {
"type": "string",
"maxLength": 80,
"description": "Route code, name or service. Leave out for every change in the city."
}
},
"additionalProperties": false
}{
"title": "Service changes",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}route_details — Route details
Lists a city's routes with fares, or shows one route: its stops in order in each direction, its fare, the day’s departure times from the first stop and, for routes with live bus positions, where each bus is now. Finds a route by code such as EV5701, by name such as Orange Line, or by service such as Green Electric Bus.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "City network from find_places or list_cities, such as Lahore, Attock or Rawalpindi."
},
"route": {
"type": "string",
"maxLength": 80,
"description": "Route code, name or service. Leave out to list every route in the city."
}
},
"additionalProperties": false
}{
"title": "Route details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
journey_map — Journey map
Map of a planned journey with its route, boarding stops and steps.
ui://pakbus/journey-map30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 443 ms
- 95th percentile latency
- 443 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 443 ms · metadata changed · 6 tool(s), 1 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http pakbus-mcp https://pakbus.app/mcpCodex
codex mcp add pakbus-mcp --url https://pakbus.app/mcpCursor
{
"mcpServers": {
"pakbus-mcp": {
"url": "https://pakbus.app/mcp"
}
}
}Cline
{
"mcpServers": {
"pakbus-mcp": {
"type": "streamableHttp",
"url": "https://pakbus.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"pakbus-mcp": {
"type": "http",
"url": "https://pakbus.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http pakbus-mcp https://pakbus.app/mcpClaude Desktop
{
"mcpServers": {
"pakbus-mcp": {
"url": "https://pakbus.app/mcp"
}
}
}Windsurf
{
"mcpServers": {
"pakbus-mcp": {
"serverUrl": "https://pakbus.app/mcp"
}
}
}Let your agent find its tools
Find servers like PakBus MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run PakBus MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.