SchoolBusTrack MCP by usefulapi

Read pupils, routes, bus positions, trips, boarding lists and incidents in SchoolBusTrack.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
84%
이름 품질
75%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (3)

  • LOWTool 'schoolbustrack_list_bus_locations' name length outside 3-30 rangeschoolbustrack_list_bus_locations에서
  • LOWTool 'schoolbustrack_get_bus_location' name length outside 3-30 rangeschoolbustrack_get_bus_location에서
  • LOWTool 'schoolbustrack_get_trip_manifest' name length outside 3-30 rangeschoolbustrack_get_trip_manifest에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,257토큰 (도구 정의)
~1.4 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.76%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "schoolbustrack": {
      "url": "https://schoolbustrack.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://schoolbustrack.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (12)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢schoolbustrack_ping

Show which school this key acts for, its name, its scopes and its rate limit. Good first call. SchoolBusTrack API: GET /v1/ping.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_list_students(limit, cursor, updatedSince, campusId, classId, ...)

List pupils with their class, campus, route assignment and active flag. Guardian and emergency contact details are never returned. Needs students:read. SchoolBusTrack API: GET /v1/students.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Page size, 1–200 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "The nextCursor from the previous page.",
      "type": "string"
    },
    "updatedSince": {
      "description": "ISO 8601 instant. Returns records changed at or after it, oldest change first (for syncs).",
      "type": "string"
    },
    "campusId": {
      "description": "Only records of this campus id.",
      "type": "string"
    },
    "classId": {
      "description": "Only pupils in this class id.",
      "type": "string"
    },
    "routeId": {
      "description": "Only pupils assigned to this route id.",
      "type": "string"
    },
    "enrollmentNumber": {
      "description": "Only the pupil with this enrollment number.",
      "type": "string"
    },
    "includeInactive": {
      "description": "Include inactive records (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_get_student(studentId)

Get one pupil by id: class, campus, route assignment and status. Guardian and emergency contact details are never returned. Needs students:read. SchoolBusTrack API: GET /v1/students/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "studentId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The pupil id (from schoolbustrack_list_students)."
    }
  },
  "required": [
    "studentId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_list_routes(limit, cursor, updatedSince, campusId, type, ...)

List bus routes with their type, schedule, stop count, bus and driver. Needs routes:read. SchoolBusTrack API: GET /v1/routes.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Page size, 1–200 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "The nextCursor from the previous page.",
      "type": "string"
    },
    "updatedSince": {
      "description": "ISO 8601 instant. Returns records changed at or after it, oldest change first (for syncs).",
      "type": "string"
    },
    "campusId": {
      "description": "Only records of this campus id.",
      "type": "string"
    },
    "type": {
      "description": "Only routes of this type.",
      "type": "string",
      "enum": [
        "pickup",
        "dropoff",
        "bidirectional"
      ]
    },
    "code": {
      "description": "Only the route with this code.",
      "type": "string"
    },
    "includeInactive": {
      "description": "Include inactive records (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_get_route(routeId)

Get one route by id, with its ordered stops. Needs routes:read. SchoolBusTrack API: GET /v1/routes/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "routeId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The route id (from schoolbustrack_list_routes)."
    }
  },
  "required": [
    "routeId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_list_buses(limit, cursor, updatedSince, campusId, status, ...)

List buses with registration, seats, status, tracker state and last known location. Needs buses:read. SchoolBusTrack API: GET /v1/buses.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Page size, 1–200 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "The nextCursor from the previous page.",
      "type": "string"
    },
    "updatedSince": {
      "description": "ISO 8601 instant. Returns records changed at or after it, oldest change first (for syncs).",
      "type": "string"
    },
    "campusId": {
      "description": "Only records of this campus id.",
      "type": "string"
    },
    "status": {
      "description": "Only buses with this status.",
      "type": "string",
      "enum": [
        "active",
        "maintenance",
        "inactive"
      ]
    },
    "registrationNumber": {
      "description": "Only the bus with this registration number.",
      "type": "string"
    },
    "includeInactive": {
      "description": "Include inactive records (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_list_bus_locations

Get the latest position of every bus, with speed, heading and whether the fix is stale. Needs locations:read. SchoolBusTrack API: GET /v1/buses/locations.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_get_bus_location(busId)

Get the latest position of one bus by id. Needs locations:read. SchoolBusTrack API: GET /v1/buses/{id}/location.

입력 스키마

{
  "type": "object",
  "properties": {
    "busId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The bus id (from schoolbustrack_list_buses)."
    }
  },
  "required": [
    "busId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_list_trips(limit, cursor, updatedSince, date, from, ...)

List scheduled, running and completed trips. Filter by school day or time range, status, route, bus, driver or campus. Needs trips:read. SchoolBusTrack API: GET /v1/trips.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Page size, 1–200 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "The nextCursor from the previous page.",
      "type": "string"
    },
    "updatedSince": {
      "description": "ISO 8601 instant. Returns records changed at or after it, oldest change first (for syncs).",
      "type": "string"
    },
    "date": {
      "description": "A school-local day: yyyy-mm-dd or today.",
      "type": "string",
      "pattern": "^(today|\\d{4}-\\d{2}-\\d{2})$"
    },
    "from": {
      "description": "ISO 8601 instant, UTC with Z.",
      "type": "string"
    },
    "to": {
      "description": "ISO 8601 instant, UTC with Z.",
      "type": "string"
    },
    "status": {
      "description": "Only trips with this status.",
      "type": "string",
      "enum": [
        "scheduled",
        "in_progress",
        "completed",
        "cancelled"
      ]
    },
    "routeId": {
      "description": "Only trips on this route id.",
      "type": "string"
    },
    "busId": {
      "description": "Only trips of this bus id.",
      "type": "string"
    },
    "driverId": {
      "description": "Only trips of this driver id.",
      "type": "string"
    },
    "campusId": {
      "description": "Only records of this campus id.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_get_trip(tripId)

Get one trip by id: status, times, distance, duration, its stops and student count. Needs trips:read. SchoolBusTrack API: GET /v1/trips/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "tripId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The trip id (from schoolbustrack_list_trips)."
    }
  },
  "required": [
    "tripId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_get_trip_manifest(tripId)

Get the boarding list of one trip: each pupil with status and last event, grouped by stop, plus unlisted pupils and counts. Needs trips:read. SchoolBusTrack API: GET /v1/trips/{id}/manifest.

입력 스키마

{
  "type": "object",
  "properties": {
    "tripId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The trip id (from schoolbustrack_list_trips)."
    }
  },
  "required": [
    "tripId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢schoolbustrack_list_incidents(limit, cursor, updatedSince, status, severity, ...)

List incidents and SOS alerts, newest first, with status, severity, bus, trip and driver. Needs incidents:read. SchoolBusTrack API: GET /v1/incidents.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Page size, 1–200 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "The nextCursor from the previous page.",
      "type": "string"
    },
    "updatedSince": {
      "description": "ISO 8601 instant. Returns records changed at or after it, oldest change first (for syncs).",
      "type": "string"
    },
    "status": {
      "description": "Only incidents with this status.",
      "type": "string"
    },
    "severity": {
      "description": "Only incidents with this severity.",
      "type": "string"
    },
    "type": {
      "description": "Only incidents of this type.",
      "type": "string"
    },
    "isSos": {
      "description": "true for SOS alerts only, false for the rest.",
      "type": "boolean"
    },
    "busId": {
      "description": "Only incidents on this bus id.",
      "type": "string"
    },
    "tripId": {
      "description": "Only incidents on this trip id.",
      "type": "string"
    },
    "driverId": {
      "description": "Only incidents of this driver id.",
      "type": "string"
    },
    "from": {
      "description": "ISO 8601 instant, UTC with Z.",
      "type": "string"
    },
    "to": {
      "description": "ISO 8601 instant, UTC with Z.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 12개