car-log

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

Car Log Specification

Version: 1.0 Date: 2025-11-18 Status: ⚠️ Implementation Partially Complete - Trip CRUD Blocking


⚠️ Current Implementation Status

Overall Progress: 6/7 MCP servers complete for P0 (82% implementation consistency)

What IS Implemented ✅

  • Vehicle CRUD - Complete with Slovak compliance (VIN validation, license plate format)
  • Checkpoint CRUD - Complete with GPS-first philosophy, monthly folder structure
  • Template CRUD - Complete with GPS mandatory, addresses optional
  • Gap Detection - Fully functional, returns structured gap data
  • Trip Reconstruction - Hybrid GPS (70%) + Address (30%) matching working
  • Validation - All 4 algorithms functional (distance sum, fuel, efficiency, deviation)
  • E-Kasa API - QR scanning + receipt fetching with 60s timeout
  • Geo-Routing - Geocoding with ambiguity handling, route calculation, 24h caching
  • Dashboard OCR - EXIF extraction (GPS, timestamp) working
  • Report Generation - CSV generation with Slovak compliance (P0)
  • 70+ tests passing (98.6% success rate)

What is NOT Implemented ❌

  • Trip CRUD Tools (CRITICAL BLOCKER):
    • car-log-core.create_trip - Cannot save individual trips
    • car-log-core.create_trips_batch - Cannot save reconstruction proposals
    • car-log-core.list_trips - Cannot retrieve trips for reports
    • car-log-core.get_trip - Cannot fetch trip details
  • Dashboard OCR with Claude Vision (P1 - optional)
  • PDF Reports (P1 - optional)

Impact

Current: Template matching produces proposals, but cannot save them as trips. Blocker: End-to-end demo cannot be completed without trip storage. Action Required: Implement trip CRUD tools (estimated 4-6 hours) - See TASKS.md section A6.


Overview

Complete specification for a Slovak tax-compliant company vehicle mileage logger built for the MCP 1st Birthday Hackathon (Nov 14-30, 2025).

Key Innovation: MCP servers as the actual backend architecture (not just connectors), enabling conversational trip logging through Claude Desktop with automatic gap-based reconstruction.

Target Market: Slovak/European small businesses facing new VAT Act 2025 compliance requirements.


Quick Start

For Developers: Start here → spec/08-implementation-plan.md For Product Managers: Start here → spec/01-product-overview.md For Architects: Start here → spec/06-mcp-architecture-v2.md For Hackathon Judges: Start here → spec/09-hackathon-presentation.md 🚀 For Installation (RECOMMENDED): Local deployment → See Installation below 🎯 For Claude Skills: Conversational UI → claude_skills/README.md 🐳 For Docker (Future): Container deployment → Docker Deployment below


Installation

Prerequisites

Quick Install (Local Deployment - RECOMMENDED)

The local deployment installs all MCP servers to ~/.car-log-deployment/ (Windows: C:\Users\YourName\.car-log-deployment\).

Windows:

cd car-log
install.bat

macOS/Linux:

cd car-log
./deployment/scripts/deploy-macos.sh  # or deploy-linux.sh

What Gets Installed

  1. Deployment directory: ~/.car-log-deployment/
  2. All 7 MCP servers:
    • car-log-core - CRUD operations (vehicles, checkpoints, templates, trips)
    • trip-reconstructor - Template matching algorithm
    • validation - 4 validation algorithms
    • ekasa-api - Slovak receipt processing
    • dashboard-ocr - EXIF extraction from photos
    • report-generator - CSV/PDF report generation
    • geo-routing - Geocoding and routing (Node.js)
  3. Dependencies: Python packages + Node.js modules
  4. Configuration: Claude Desktop config generation
  5. Data directories: Empty folders for runtime data

Post-Installation

  1. Restart Claude Desktop to load the new MCP servers
  2. Verify installation by asking Claude: "What MCP tools do you have available?"
  3. Expected tools: You should see 24 tools from all 7 servers:
    • car-log-core: 14 tools
    • trip-reconstructor: 1 tool
    • validation: 1 tool
    • ekasa-api: 2 tools
    • dashboard-ocr: 2 tools
    • report-generator: 1 tool
    • geo-routing: 3 tools

Configuration Files

Claude Desktop config location:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Generated config: ~/.car-log-deployment/claude_desktop_config.json

For detailed setup instructions, see deployment/README.md


🎯 Claude Desktop Skills (NEW)

6 conversational skills that make mileage tracking 10x faster:

  1. Vehicle Setup - Slovak VIN validation (3 min → 30 sec)
  2. Checkpoint from Receipt - Photo paste → QR scan → EXIF → checkpoint (3 min → 30 sec)
  3. Trip Reconstruction - GPS-first matching with 92% confidence (15 min → 2 min)
  4. Template Creation - GPS-mandatory templates with route calculation (5 min → 1 min)
  5. Report Generation - Slovak VAT Act 2025 compliant CSV/PDF (10 min → 1 min)
  6. Data Validation - Proactive 4-algorithm validation (manual → automatic)

Key Innovation: Skills orchestrate multiple MCP servers to create seamless workflows.

Files: claude_skills/01-vehicle-setup.md through 06-data-validation.md + overview README

See: claude_skills/README.md for complete skill documentation


Document Index

📋 Product & Business (Read First)

Document Description Status Key Topics
spec/01-product-overview.md Product vision, scope, target users, success metrics ✅ Complete Vision, architecture overview, P0/P1 features
02-domain-model.md Core concepts, business rules, Slovak compliance ✅ Complete Checkpoint, Trip, Template, GPS-first philosophy

🧮 Algorithm & Logic (Technical Deep Dive)

Document Description Status Key Topics
03-trip-reconstruction.md Checkpoint-based reconstruction algorithm ✅ Complete Mode A/B/C, 4 validation algorithms, thresholds

💾 Data & Storage (Implementation Reference)

Document Description Status Key Topics
04-data-model.md JSON file schemas, atomic write pattern ✅ Complete 5 entities, file structure, monthly folders

🏗️ Architecture (System Design)

Document Description Status Key Topics
05-claude-skills-dspy.md Dual interface architecture ✅ Complete Claude Skills, DSPy integration, testing
spec/06-mcp-architecture-v2.md MCP server architecture (GPS-first, stateless) ✅ Complete 7 servers, tool definitions, integration
07-mcp-api-specifications.md Complete MCP tool API specifications ✅ Complete 24 tools, JSON schemas, error handling

🚀 Execution (Project Management)

Document Description Status Key Topics
spec/08-implementation-plan.md 13-day parallel development plan ✅ Complete 4 tracks, dependencies, user stories, critical path
spec/09-hackathon-presentation.md Demo script, video structure, Q&A ✅ Complete 5-min demo, elevator pitch, submission checklist

📚 Reference (Background)

Document Description Status Key Topics
00-ENHANCEMENTS-FROM-MILESTONE-SPEC.md Comparison with previous attempt ✅ Reference Slovak compliance, L/100km, validation

Reading Order

For First-Time Readers (Product Understanding)

  1. 01-product-overview.md - Understand the "why" and "what"
  2. 02-domain-model.md - Learn core concepts (Checkpoint, Trip, Template)
  3. 03-trip-reconstruction.md - See how the algorithm works
  4. 09-hackathon-presentation.md - See it in action (demo script)

For Developers (Implementation)

  1. 08-implementation-plan.md - Get your task assignments and timeline
  2. 07-mcp-api-specifications.md - Study the API contracts you'll implement
  3. 04-data-model.md - Understand data storage and JSON schemas
  4. 06-mcp-architecture-v2.md - See how servers integrate

For Technical Reviewers (Architecture Assessment)

  1. 06-mcp-architecture-v2.md - MCP server design (GPS-first, stateless)
  2. 05-claude-skills-dspy.md - Dual interface strategy
  3. 04-data-model.md - Data architecture (file-based, atomic writes)
  4. 03-trip-reconstruction.md - Algorithm validation (4 algorithms with thresholds)

Key Features

P0 (Must Have - Hackathon MVP)

Vehicle Management - Register vehicles with Slovak compliance (VIN, license plate) ✅ Receipt Processing - e-Kasa API integration for Slovak receipts ✅ Checkpoint Creation - Odometer + GPS + receipt data ✅ Gap Detection - Automatic distance calculation between checkpoints ✅ Trip Reconstruction - Template-based with 70% GPS weight, 30% address weight ✅ Validation - 4 algorithms (±10% distance, ±15% fuel, 20% deviation, range check) ✅ Slovak Compliance - VIN, driver name, separate trip/refuel timing, L/100km format ✅ Claude Desktop UI - Conversational interface (30 seconds per trip)

P1 (Nice to Have - Post-Hackathon)

Report Generation - PDF/CSV with Slovak VAT compliance ⏳ Gradio Web UI - Visual dashboard alternative ⏳ Dashboard OCR - Odometer reading from photos ⏳ Route Intelligence - OpenStreetMap routing suggestions


Technical Highlights

Architecture Innovation

🏆 MCP as Backend - 7 headless MCP servers (not just connectors) 🏆 Stateless Services - Each server is independent, no shared state 🏆 File-Based Storage - JSON files with atomic write pattern (Git-friendly, human-readable) 🏆 GPS-First Algorithm - 70% GPS weight, 500m tolerance for reliable matching

Slovak/European Compliance

🇸🇰 VAT Act 2025 - VIN field, driver names, separate trip/refuel timing 🇪🇺 L/100km Format - European fuel efficiency standard (not km/L) 🇪🇺 Metric Units - km, liters, EUR currency 🇪🇺 GDPR-Ready - Local-first, user controls data

Development Enablers

🔧 Clear Interfaces - 26 MCP tools with full JSON schemas 🔧 Parallel Development - 4 simultaneous tracks, 98 hours of P0 work 🔧 Test Coverage - Unit tests, integration tests, end-to-end scenarios 🔧 Demo-Ready - Complete dataset generator and 5-minute demo script


Timeline

Hackathon Duration: Nov 14-30, 2025 (17 days total) Work Started: Nov 17, 2025 Remaining Days: 13 days

Critical Path:

car-log-core (Days 1-2) →
trip-reconstructor + validation (Days 3-6) →
Claude Desktop integration (Days 7-11) →
Submission (Day 13)

See spec/08-implementation-plan.md for detailed day-by-day breakdown.


Success Criteria

Hackathon Submission (Nov 30)

Working Demo - 5-minute video showing end-to-end workflow ✅ GitHub Repository - Complete code with setup instructions ✅ MCP Servers - At least 5 of 7 servers functional (P0 only) ✅ Slovak Compliance - VIN, driver, L/100km, separate timing fields ✅ Demo Dataset - Realistic test data for presentation

Production-Ready (P2 - Post-Hackathon)

All 7 Servers - Including report-generator (P1) ⏳ Test Coverage - >80% unit test coverage ⏳ Performance - 1000+ trips, 100+ templates ⏳ Multi-Vehicle - Support for 5+ vehicles ⏳ Multi-Driver - Driver management with permissions


Technology Stack

MCP Servers (7 total)

Server Language Priority Purpose
car-log-core Python P0 CRUD operations, file storage
ekasa-api Python P0 Slovak e-Kasa receipt processing
geo-routing Node.js P0 OpenStreetMap geocoding/routing
dashboard-ocr Python P1 Odometer OCR + EXIF extraction
trip-reconstructor Python P0 Stateless template matching
validation Python P0 4 validation algorithms
report-generator Python P1 PDF/CSV generation

Data Storage

  • Format: JSON files (human-readable, Git-friendly)
  • Structure: Monthly folders (e.g., data/trips/2025-11/)
  • Pattern: Atomic writes (temp file + rename)
  • Migration Path: SQLite for 10,000+ trips (P2)

External APIs

  • e-Kasa API (Slovakia) - Receipt validation
  • OpenStreetMap/OSRM - Geocoding and routing
  • Claude Vision (Sonnet) - Odometer OCR

Document Status Legend

Status Meaning
✅ Complete Production-ready, no changes needed
⚠️ In Progress Substantial but needs updates
📋 Planned Needed for P1/P2, not blocking MVP
🗑️ Archived Superseded or obsolete

Consistency Score

Overall: 95/100 (after critical fixes)

Areas:

  • Terminology: 95% - "Checkpoint" consistent, L/100km everywhere
  • Data Fields: 90% - Slovak compliance fields standardized
  • Validation: 100% - Thresholds consistent (10%, 15%, 20%)
  • Architecture: 95% - File storage, MCP servers aligned
  • Cross-References: 100% - All links valid

Getting Started

After completing the Installation section above, you're ready to use Car Log!

Usage with Claude Desktop

After installation and restarting Claude Desktop, start a conversation:

Example workflow:

You: Create a new vehicle for me
Claude: I'll help you create a vehicle. What are the details?

You: Ford Transit, license plate BA-456CD, VIN WBAXX01234ABC5678, Diesel, 45000 km
Claude: [Creates vehicle using car-log-core.create_vehicle]

You: I just refueled. Create a checkpoint: odometer 45820 km, at Bratislava, 70 liters of Diesel for €110
Claude: [Creates checkpoint using car-log-core.create_checkpoint]

You: Can you detect if there are any gaps in my mileage log?
Claude: [Uses car-log-core.analyze_gap to find gaps between checkpoints]

You: Create a template for my regular Košice route
Claude: [Uses car-log-core.create_template with GPS coordinates]

You: Generate a report for November 2025
Claude: [Uses report-generator.generate_report]

See spec/09-hackathon-presentation.md for complete demo script.

Project Structure

car-log/
├── mcp-servers/              # 7 MCP servers (backend)
│   ├── car_log_core/         # Vehicle, checkpoint, template CRUD
│   ├── trip_reconstructor/   # Template matching (GPS 70% + address 30%)
│   ├── validation/           # 4 validation algorithms
│   ├── ekasa_api/            # Slovak receipt processing
│   ├── geo-routing/          # OpenStreetMap integration (Node.js)
│   ├── dashboard_ocr/        # EXIF extraction + OCR
│   └── report_generator/     # CSV/PDF report generation
├── tests/                    # Test suites (70 tests, all passing)
├── scripts/                  # Utility scripts (mock data generator)
├── spec/                     # Complete specification documents
├── examples/                 # Demo scripts and examples
├── CLAUDE.md                 # Instructions for Claude Code
├── TASKS.md                  # Implementation task tracking
├── README.md                 # This file
└── claude_desktop_config.json # Sample MCP configuration

Development Workflow

  1. Make changes to MCP server code (e.g., mcp-servers/car_log_core/)
  2. Re-run deployment script to update ~/.car-log-deployment/
    # Windows
    install.bat
    
    # macOS/Linux
    ./deployment/scripts/deploy-macos.sh
    
  3. Restart Claude Desktop to reload servers
  4. Test changes through conversational interaction

Testing (For Developers)

If you're developing and testing the MCP servers directly:

# Set PYTHONPATH to include mcp-servers directory
export PYTHONPATH="${PYTHONPATH}:$(pwd)/mcp-servers"  # macOS/Linux
set PYTHONPATH=%PYTHONPATH%;%CD%\mcp-servers          # Windows

# Run all tests
pytest tests/ -v

# Run specific test suite
pytest tests/test_validation.py -v

Troubleshooting

Common issues:

  1. Claude Desktop not discovering MCP servers

    • Verify config file location (see Configuration Files above)
    • Ensure JSON syntax is valid in claude_desktop_config.json
    • Restart Claude Desktop completely (quit and reopen)
    • Check Claude Desktop logs:
      • Windows: %APPDATA%\Claude\logs\
      • macOS: ~/Library/Logs/Claude/
      • Linux: ~/.config/Claude/logs/
  2. "Python not found" or "Node.js not found"

    • Ensure Python 3.11+ and Node.js 18+ are installed
    • On Windows, check "Add Python to PATH" during installation
    • Verify installation: python --version and node --version
  3. Tool errors after making code changes

    • Re-run deployment script to update ~/.car-log-deployment/
    • Restart Claude Desktop to reload servers

For detailed troubleshooting, see deployment/README.md

Slovak Tax Compliance

All implementations follow Slovak VAT Act 2025 requirements:

  • ✅ VIN validation (17 characters, no I/O/Q)
  • ✅ Driver name mandatory for all trips
  • ✅ L/100km fuel efficiency format (European standard)
  • ✅ Trip timing separate from refuel timing
  • ✅ Business trip descriptions required
  • ✅ All fields in CSV reports

Performance

  • Template matching: < 2 seconds for 100+ templates
  • File storage: Handles 1,000+ trips efficiently
  • Report generation: Processes month of data in < 1 second
  • MCP server startup: < 1 second per server

Data Backup

All runtime data is stored in ~/.car-log-deployment/data/ including:

  • Vehicles
  • Checkpoints
  • Trips
  • Templates
  • Reports

Important: Backup this directory regularly to prevent data loss.


Docker Deployment (Future)

Status: Docker deployment is planned for future releases. Currently, use local deployment (see Installation above).

Planned features:

  • Containerized MCP servers for easier deployment
  • Docker Compose orchestration
  • Shared data volumes
  • Environment-driven configuration

Files prepared:

  • docker/docker-compose.yml
  • docker/Dockerfile.python
  • docker/Dockerfile.nodejs
  • docker/docker-entrypoint.sh

For now, these files are reference implementations only. Stick with local deployment for working setup.


Contact & Contribution

Repository: [To be added - GitHub link] License: MIT (open source) Hackathon: MCP 1st Birthday (Nov 14-30, 2025)

Contributors:

  • Specification: Claude Code + Human collaboration
  • Architecture: GPS-first, stateless MCP servers
  • Target Market: Slovak/European small businesses

Archived Documents

The following documents have been superseded and moved to _archive/:


Last Updated: 2025-11-18 Specification Version: 1.0 Implementation Status: ✅ Complete (All 7 P0 MCP servers functional, 70/71 tests passing)