startline-mcp
MCP server for motorsport event documents, enabling AI agents to search, read, compare amendments, and parse schedules via typed tools.
README
Startline AI — MCP server, web app & voice API
The serving layer for Startline AI: an AI companion for motorsport event documents. One process gives you an MCP server for AI agents, a phone-first event-day web app, a voice endpoint for Siri, amendment diffs and calendar export — all over a local document vault.
Built after marshalling at a Formula 1 event, where the official app delivers PDFs but can't answer "what time does sign-on close on Saturday?" — and where an amendment is just another PDF that never tells you what changed.
Two kinds of search
Index search — SQLite FTS5 + BM25 over heading-level chunks with
event-jargon synonyms (sign-on = muster, MxM = minute x minute).
Instant, deterministic, works with no signal at the track.
Agent search — an MCP server exposing nine typed tools, so an AI assistant can reason across documents and cite pages:
| Tool | Purpose |
|---|---|
list_events / event_overview |
inventory, categories, amendment count |
list_docs |
filter by event and category |
search |
full-text with citations |
read_doc |
fuzzy name match, pages="3-5" slicing |
schedule_for |
parsed day timeline, with amendment warnings attached |
diff_amendment |
what an amendment actually changed |
amendments / doc_history |
version chains |
Register it with any MCP client:
{ "mcpServers": { "startline": {
"command": "uv",
"args": ["run", "--directory", "/path/to/startline-server", "startline-mcp"]
}}}
Amendment diffs
The feature the official apps don't have. Each amendment is structurally diffed against the schedule it amends — rows matched by normalised text and classified moved / added / removed inside the amendment's time window — then summarised:
"The one-minute signal to the marshalling area is delayed from 17:09 to 17:24, and the reconnaissance lap release from 17:10 to 17:25. A new 20-minute signal checkpoint has been added at 17:15."
Results are cached by content hash, so each amendment costs one model call ever.
Running it
uv sync
uv run startline-mcp # MCP server (stdio)
uv run startline-serve # web app + voice API on :8095
uv run startline-caption # vision-caption maps and diagrams (cached)
Point it at a vault with STARTLINE_VAULT=/path/to/vault (default
~/startline-vault). AI features need ANTHROPIC_API_KEY in the environment;
without it, index search and the offline answer fallback still work.
Endpoints
| Route | What |
|---|---|
/ |
event-day web app — day chips, NOW/NEXT timeline, filter, amendment banner, ask box |
/ask?q= |
answer engine (used by the web app, Siri and the iOS app) |
/api/events, /api/schedule, /api/diff |
JSON for clients |
/calendar.ics?day=&q= |
RFC 5545 export, optionally filtered |
Answers come back in the language the question was asked in — a Vietnamese question gets a Vietnamese answer, while document titles stay in the original.
Voice
SIRI-SETUP.md has the Apple Shortcut recipe (dictate → HTTP → speak) and a
launchd plist for running the server permanently. The iOS app below does this
natively with an App Intent.
Vision captions
Maps, gate diagrams and notice photos carry no extractable text, so they are
invisible to search. startline-caption sends the rendered pages to a vision
model, asks it to describe the page and transcribe every label, and caches the
result by content hash. Ingest bakes captions into the notes, which makes
questions like "how do I get through the zone fence near post 2.5?"
answerable from an image.
Related repos
| Repo | Role |
|---|---|
| startline-vault | ingest pipeline + offline index search |
| startline-ios | native SwiftUI client |
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.