# Parklio PMS MCP

> Parklio PMS connects your AI client directly to smart parking hardware. Use it to check gateway health, remotely reboot barriers, update digital signs, and audit activity logs across multiple lots. It gives you hands-on control over entry/exit points without needing the main management dashboard.

## Overview
- **Category:** iot-hardware
- **Price:** Free
- **Tags:** parking-management, hardware-control, iot-gateway, access-control, remote-monitoring, system-health

## Description

Parklio PMS connects your AI client straight to the smart parking hardware. You can use it to talk to the system naturally—your agent handles all the complex API calls for everything from barrier gates and digital displays to LPR cameras. Before you do anything else, your first move is always logging in; you'll run the `pms_login` tool, which authenticates with the PMS and gives you a fresh token. You need that token before your agent can send out any commands or pull down any data.

**Discovery and Inventory**
To see what you’re working with, you start by listing the locations. Running `list_lots` shows you every single parking lot ID managed within the Parklio ecosystem. If you need deep details on one specific site, use `get_lot_details`; this pulls up that lot's current operational statistics and specific configuration data. You can also get a full list of all installed digital screens using `list_displays`. For physical hardware, running `list_gateways` gives you an inventory and the live status—online or offline—of every gateway unit, including barriers and cameras, across all those lots.

**System Health Checks**
When you need to know if the whole setup is breathing right, use `get_system_status`. This checks the high-level operational metrics for the entire Parklio network. If you suspect a specific piece of hardware is acting up—like one particular camera or barrier—you can run `list_gateways` again, and then check that unit's status to pinpoint the problem.

**Direct Hardware Control**
This is where you get hands-on. You don’t have to use the main dashboard; your agent lets you talk straight to the hardware. To troubleshoot or manually operate a specific gateway device, run `run_gateway_operation`. This sends direct commands—like opening a barrier, closing it, or even rebooting the unit entirely. If you're setting up new gear, you can use `create_gateway` to register a brand-new physical device, such as a camera or a barrier, and link it right into a specific parking lot.

**Signage and Messaging**
Need to warn people that the entrance is closed for maintenance? Use `update_display_message`. This tool lets your agent change the text visible on any connected digital sign immediately. You first run `list_displays` to see which screens are available, then you send the new message via `update_display_message`.

**Auditing and Logging**
If something goes wrong or you need to prove who did what, you check the logs. Use `get_activity_logs`; this retrieves historical records of every single system event and action that happened—you can track barrier movements, unauthorized access attempts, and any other critical action for security auditing.

This set of tools lets your AI client give you complete control over entry/exit points without needing to click through multiple menus. You're managing the whole operation using simple commands.

## Tools

### create_gateway
Registers a new physical device, like a barrier or camera, and links it to a specific parking lot.

### list_displays
Shows a list of all digital screens installed across your managed parking lots.

### run_gateway_operation
Sends direct commands (open/close, reboot) to troubleshoot or manually control specific gateway devices.

### list_gateways
Provides an inventory and current status of every hardware gateway (barriers, cameras) connected to the system.

### pms_login
Authenticates with the PMS and returns a fresh token needed to run subsequent API commands.

### get_activity_logs
Retrieves historical records of all system events and actions for security auditing.

### get_lot_details
Gets specific configuration data and current statistics for one designated parking lot.

### list_lots
Lists all parking lots currently managed within the Parklio ecosystem.

### get_system_status
Checks the overall operational health metrics of the entire Parklio system network.

### update_display_message
Changes the text visible on a digital sign for temporary notices like 'Maintenance' or 'Welcome'.

## Prompt Examples

**Prompt:** 
```
Show me all offline gateways.
```

**Response:** 
```
Found 2 offline gateways: 1. Exit Barrier at Lot A (Last seen 45m ago). 2. LPR Reader at Lot C (Last seen 2h ago). Recommend remote reboot.
```

**Prompt:** 
```
Update display at Lot B to show 'Valet Parking This Way'.
```

**Response:** 
```
Display updated successfully. Drivers entering Lot B will now see: 'Valet Parking This Way'.
```

**Prompt:** 
```
Reboot the entry barrier at Lot A.
```

**Response:** 
```
Reboot command sent to Gateway ID #101 (Entry Barrier Lot A). Status: Rebooting. Check system status in 2 minutes.
```

## Capabilities

### Discover all managed parking lots
Lists the IDs and details of every lot connected to your Parklio system.

### List all physical gateways
Retrieves a list of every hardware unit (barriers, cameras) installed across all managed lots.

### Get overall system health status
Checks the high-level operational metrics and uptime for the entire Parklio network.

### Execute remote hardware commands
Sends direct actions to a specific gateway, like opening a barrier or rebooting a device.

### Update digital signs
Changes the text displayed on any connected digital display screen in a parking lot.

### Review activity and audit logs
Gathers historical data, letting you track specific events like barrier movements or unauthorized access attempts.

## Use Cases

### The unexpected barrier failure
A field tech notices a gate is stuck. Instead of driving out there and manually checking it, they prompt their agent: 'Reboot the entry barrier at Lot A.' The agent calls `run_gateway_operation` and confirms the reboot command was sent, solving the issue remotely.

### Auditing unauthorized access
Security staff needs to know who entered an area last night. They ask their agent to pull all logs for a specific date range using `get_activity_logs`, immediately providing evidence of any gate overrides or unusual movements.

### Emergency signage change
The lot management team detects a system issue and needs to warn drivers. They tell the agent: 'Update the display message at Lot B to say System Maintenance.' The agent uses `update_display_message` without anyone needing physical access.

### Inventory check before expansion
An engineer planning a new lot first runs `list_lots` to confirm all existing IDs, and then uses `list_gateways` to map the current count and status of hardware across every location.

## Benefits

- You don't need to log into the web dashboard. Use `run_gateway_operation` or `get_system_status` directly through chat to open a barrier or reboot a failing camera when you see an issue.
- Audit trails are instant. Instead of digging through PDFs, ask for activity logs and get them via `get_activity_logs`, filtering by lot ID for quick security reviews.
- Updates happen immediately. Need to tell drivers there's maintenance? Use `update_display_message` instead of sending a physical sign or calling a crew member.
- System visibility is always on. Run `list_gateways` to see which devices are online and which ones have dropped off the network, letting you triage failures fast.
- It's fully discoverable. Use `list_lots` first to get all your site IDs, then use those IDs with `get_lot_details` to understand the specific metrics for that lot.

## How It Works

The bottom line is: you tell your AI client what to do, and it talks directly to Parklio to make it happen.

1. Subscribe to this server and provide your Parklio Auth Token and Base URL.
2. Your AI client uses the token to authenticate with the system, establishing a connection context.
3. You request an action (e.g., 'Reboot the entry barrier at Lot A'), and the agent executes the necessary API call via `run_gateway_operation`.

## Frequently Asked Questions

**How do I check if a specific barrier is online using list_gateways?**
The `list_gateways` tool gives you the current status of every device, showing which ones are active and which ones appear offline. You'll see 'Online/Offline' right in the output.

**What is the best way to check overall system health with get_system_status?**
Use `get_system_status` for a high-level view of all core metrics. It gives you an immediate, aggregated report on uptime and global operational status across all connected lots.

**Can I update the display message without knowing the lot ID? (update_display_message)**
No. You need to use `list_lots` first to confirm the correct Lot ID, and then pass that specific identifier along with the command to `update_display_message`.

**What tools can I use for security auditing? (get_activity_logs)**
`get_activity_logs` is your primary tool. It lets you view logs of barrier movements and system events, which is critical for investigating any unauthorized access or operational glitch.

**How do I authenticate before using any tools like get_lot_details or list_gateways? (pms_login)**
You must call `pms_login` first. This function returns a session token that you need for all subsequent API calls, ensuring your agent has permission to read data or perform actions.

**What steps are needed when I install new hardware? (create_gateway)**
You use `create_gateway` immediately after installation. You must provide the lot ID, a name for the device, and its type (like 'entry_barrier' or 'lpr_reader') so the system can map it correctly.

**If a barrier is jammed or offline, how do I force an operation? (run_gateway_operation)**
Use `run_gateway_operation` to manually control the device. You can execute commands like 'open_barrier', 'close_barrier', or 'reboot' for remote troubleshooting when status checks aren't enough.

**Where do I start if I don't know which parking lots are managed? (list_lots)**
Start by calling `list_lots`. This function gives you a comprehensive list of all available lot IDs and names. You need this information before running tools like `get_lot_details` or managing specific hardware.

**Can I remotely open or close a barrier gate?**
Yes! Use the run_gateway_operation tool with the gateway_id and the operation 'open_barrier' or 'close_barrier'. This allows instant manual control without physical intervention.

**How do I change the message on a digital display?**
Use the update_display_message tool. Provide the display_id and your new message (e.g., 'Lot Full', 'Welcome to VIP Parking'). The screen updates within seconds.

**Can I audit who opened barriers manually?**
Yes! The get_activity_logs tool returns detailed logs of all gateway operations, including the user who performed the action and the timestamp. Essential for security and accountability.