Skip to main content
Glama
README.md
# OSU MCP Server

A comprehensive MCP (Model Context Protocol) server that provides access to The Ohio State University's content APIs across multiple campus services including transportation, academics, dining, recreation, libraries, events, and more.

## Features

This server provides **50+ tools** across **14 different service categories** for LLMs:

### Athletics
- **get_athletics_all**: Get information about all OSU athletics programs and schedules
- **search_sports**: Search for specific sports or teams
- **get_sport_by_gender**: Find sports programs by gender
- **get_upcoming_games**: Get upcoming games and events across all sports

### Buildings
- **get_buildings**: Get information about all OSU buildings
- **search_buildings**: Search for buildings by name or building number
- **get_building_details**: Get detailed information about a specific building
- **find_room_type**: Find buildings with specific room types (lactation, sanctuary, wellness, gender inclusive restrooms)

### Bus Transportation
- **get_bus_routes**: Get information about all OSU bus routes
- **get_bus_stops**: Get stops and route information for a specific bus line
- **get_bus_vehicles**: Get real-time vehicle locations for a specific route

### Academic Calendar & Holidays
- **get_academic_calendar**: Get the academic calendar with important dates
- **get_university_holidays**: Get university holidays
- **search_calendar_events**: Search for specific events in the academic calendar
- **get_holidays_by_year**: Get holidays for a specific year

### Classes
- **search_classes**: Search for OSU classes by keyword, subject, instructor, etc.

### Campus Events
- **get_campus_events**: Get information about all campus events
- **search_campus_events**: Search for campus events by title or description
- **get_events_by_tag**: Find events by specific tags or categories
- **get_events_by_location**: Find events at a specific location
- **get_events_by_date_range**: Find events within a specific date range

### Dining
- **get_dining_locations**: Get all OSU dining locations with basic information
- **get_dining_locations_with_menus**: Get dining locations with menu section information
- **get_dining_menu**: Get detailed menu items for a specific dining location section

### University Directory & People Search
- **get_university_directory**: Get the university directory information
- **search_people**: Search for people in the OSU directory by first and/or last name

### Food Trucks
- **get_foodtruck_events**: Get information about all food truck events on campus
- **search_foodtrucks**: Search for food trucks by name or cuisine type
- **get_foodtrucks_by_location**: Find food trucks at a specific location

### Library Services
- **get_library_locations**: Get information about all OSU library locations
- **search_library_locations**: Search for library locations by name
- **get_library_rooms**: Get information about all available library study rooms
- **search_library_rooms**: Search for library study rooms by name or location
- **get_rooms_by_capacity**: Find library study rooms by capacity
- **get_rooms_with_amenities**: Find library study rooms with specific amenities

### BuckID Merchants
- **get_buckid_merchants**: Get information about all merchants that accept BuckID
- **search_merchants**: Search for merchants by name or category
- **get_merchants_by_food_type**: Find merchants by food/cuisine type
- **get_merchants_with_meal_plan**: Find merchants that accept meal plans

### Parking
- **get_parking_availability**: Get real-time parking availability for all OSU parking garages

### Recreation Sports
- **get_recsports_facilities**: Get information about all OSU recreation sports facilities
- **search_recsports_facilities**: Search for recreation sports facilities by name
- **get_facility_details**: Get detailed information about a specific recreation facility
- **get_facility_hours**: Get current operating hours for all recreation facilities
- **get_facility_events**: Get scheduled events for recreation sports facilities

### Student Organizations
- **get_student_organizations**: Get information about all student organizations
- **search_student_orgs**: Search for student organizations by name or keywords
- **get_orgs_by_type**: Find student organizations by type or category
- **get_orgs_by_career_level**: Find organizations for specific career levels

## Installation

1. Clone this repository
2. Install dependencies:
   ```bash
   npm install
   ```
3. Build the server:
   ```bash
   npm run build
   ```

## Usage

### With Claude Desktop

Add this server to your Claude Desktop configuration file:

**On macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`

**On Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "osu": {
      "command": "node",
      "args": ["/path/to/ohio-state-mcp-server/build/index.js"]
    }
  }
}
```

### Standalone Usage

You can also run the server directly:

```bash
npm start
```

## Development

To run in development mode with automatic rebuilding:

```bash
npm run dev
```

## API Information

This server uses The Ohio State University's content APIs.

## License

MIT

TDQS

C2.9/5.0

Scored across 49 tools

Disambiguation3/5

Most tools target a distinct resource, but several overlapping pairs exist: get_dining_locations vs get_dining_locations_with_menus, get_campus_events vs search_campus_events vs get_events_by_*, and get_athletics_all vs search_sports vs get_sport_by_gender. These overlapping boundaries could cause an agent to pick the wrong tool, though descriptions help clarify differences.

Naming Consistency4/5

The dominant pattern is get_/search_ plus a resource noun, with filter variants like get_events_by_tag and get_rooms_by_capacity. Minor deviations include find_room_type, search_student_orgs vs get_student_organizations, and get_buckid_merchants vs search_merchants, but the overall convention is still readable and predictable.

Tool Count2/5

49 tools is far above the comfortable range for reliable tool selection. While the broad OSU campus domain justifies a large surface, many tools are near-duplicates or filter variants that could be consolidated, making the set feel heavy and harder for an agent to navigate.

Completeness4/5

The server provides broad read-only coverage across dining, athletics, transit, buildings, events, library, parking, rec sports, and student organizations, with get/search/filter patterns for most domains. Minor gaps exist, such as no dedicated class detail lookup or foodtruck date filtering, but core information retrieval is not blocked.

Maintenance

ActivityInactive
ResponsivenessNo issues