Inspiration

Railway maintenance planning requires coordinating tasks, corridor availability, train movements and existing maintenance blocks. I wanted to make these checks easier to inspect while keeping the operator in control.

What it does

Railway Operations Copilot checks proposed maintenance windows against recorded train schedules and existing blocks. It identifies conflicts, suggests alternative windows and saves a plan only after explicit operator approval and a fresh conflict check.

The demo uses synthetic data and shows the complete conflict-to-approval workflow.

How I built it

The application uses React and Vite for the frontend, FastAPI for the backend, and SQLAlchemy with SQLite for local storage.

A self-hosted MCP server exposes five tools:

  • get_train_schedule
  • get_maintenance_tasks
  • check_block_conflict
  • suggest_block_window
  • create_block

The backend uses the official Python MCP client to call these tools over Streamable HTTP. Protocol version 2025-11-25 was verified.

What I added during the hackathon

I extended my existing railway dashboard with the MCP server, client integration, Copilot panel, alternative-window search, operator approval, duplicate-plan prevention, synthetic demo data and tests.

The hackathon code and setup instructions are on the hackathon-copilot branch.

Challenges

I resolved an existing SQLite schema mismatch and debugged connectivity between the frontend, backend and separate MCP process.

Optional Amazon Bedrock conversation code is included, but live Bedrock access remains blocked by an account restriction. The demonstrated MCP workflow works independently of Bedrock.

Accomplishments

I verified a working flow from conflict detection to alternative suggestions, operator approval and database persistence. Duplicate active plans are rejected.

What I learned

I learned how to expose backend capabilities through MCP and keep scheduling calculations separate from optional model-generated explanations.

What's next

Improve result presentation, connect the existing priority calculation to Copilot-created plans, validate Bedrock conversation, and add richer operational constraints.

Limitations

This is a planning prototype using synthetic and recorded corridor data. It does not connect to live railway signalling or verify physical operational safety. It is not a deployed Alexa device integration.

Share this project:

Updates

Submission history