Skip to main content
Glama
nikita-pakhno

parking-mcp-server

Parking MCP Server

MCP (Model Context Protocol) server that exposes a tool for writing confirmed parking reservations to a file. Called by the admin agent once an administrator approves a reservation.

Tool

write_reservation(
    name: str,
    car_number: str,
    reservation_period: str,   # "start - end"
    approval_time: str         # ISO timestamp
) -> str   # confirmation or error

Appends one line per reservation to data/confirmed_reservations.txt:

Name | Car Number | Reservation Period | Approval Time

Related MCP server: MCP Security Framework

Security

  • Bearer token auth on every request (Authorization: Bearer <token>).

  • Input validation — names, plate numbers, timestamps are validated and rejected if they contain pipe characters or newlines (anti-injection for the delimited file format).

  • Append-only, atomic writes — file is opened in append mode with a brief file lock so concurrent writes don't interleave.

  • No arbitrary file paths — the output file is fixed by the server config, not by tool arguments.

Setup

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# edit .env — change MCP_AUTH_TOKEN

python -m mcp_server.run
# MCP endpoint at http://localhost:8002/mcp

Calling the tool from a Python MCP client

import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
    async with streamablehttp_client(
        "http://localhost:8002/mcp",
        headers={"Authorization": "Bearer change-me-parking-mcp-secret"},
    ) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            result = await session.call_tool(
                "write_reservation",
                {"name": "Nikita", "car_number": "BC1234AB",
                 "reservation_period": "2025-12-01 10:00 - 2025-12-01 12:00",
                 "approval_time": "2026-08-11T12:00:00Z"},
            )
            print(result.content[0].text)

asyncio.run(main())

Project layout

mcp_server/
  server.py        # FastMCP server + tool definition
  storage.py       # atomic append-only writer with input validation
  auth.py          # Bearer token middleware
  config.py
tests/
  test_storage.py
  test_server.py
  test_auth.py

Tests

pytest -q
F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for Meitre restaurant reservations.

  • Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.

  • MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nikita-pakhno/parking-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server