Skip to main content
Glama

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.

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"]
}}}

Related MCP server: hidrix-tools

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)
uv run startline-faq        # pre-answer common marshal questions (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

/api/docs, /api/file?path=

browse and stream the event's source PDFs/images

/api/faq

pre-answered common questions, grounded in the event's docs

/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.

Repo

Role

startline-vault

ingest pipeline + offline index search

startline-ios

native SwiftUI client

License

MIT

Available Tools

9 tools
amendmentsB

All amendment documents for an event and what they amend.

Args: event: Event code, e.g. 'AUS-GP-2026'.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosure. It mentions that it returns 'all amendment documents' and 'what they amend', but it does not explicitly state that it is a read-only operation, nor does it mention pagination, ordering, or error behavior. This is minimal beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with a one-sentence purpose followed by a clear Args block. It is front-loaded and every sentence earns its place without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter tool, the description covers the essential invocation details. However, it lacks usage guidance and behavioral transparency. The presence of an output schema mitigates the need to explain return values, but overall the description leaves noticeable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds valuable meaning to the single parameter 'event' by defining it as an 'Event code' and providing a concrete example ('AUS-GP-2026'). Since the input schema provides no property descriptions, this is essential for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('amendment documents') and scope ('for an event'), and it distinguishes from siblings by being specific to amendments. However, it lacks an explicit action verb like 'list' or 'get', phrasing it as a noun clause rather than an imperative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as `list_docs` or `diff_amendment`. The description only states what it provides and the argument format, leaving the agent to infer the appropriate use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diff_amendmentA

What an amendment actually changed vs the schedule it amends: moved/added/removed timeline rows plus a short summary. Cached.

Args: name: Slug or title of the amendment document (see amendments()). event: Optional event code to disambiguate.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
eventNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the output content (timeline rows and summary) and mentions that results are cached, which is a relevant behavioral trait. While it does not explicitly state read-only behavior or permissions, the diff-focused wording strongly implies a non-mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose. The Args section is clean and each sentence adds value, including the 'Cached' note and the reference to amendments(). No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with two parameters, one required. The description covers both parameters clearly, states the output essence, notes caching, and provides pointers for finding valid inputs. An output schema exists, so return format details are not necessary. The description is sufficiently complete for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only parameter names and types with no descriptions (0% coverage). The tool description compensates fully by explaining that 'name' is a slug or title and pointing to amendments() for valid values, and that 'event' is an optional code for disambiguation. This goes well beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: it computes what an amendment changed versus the schedule it amends, specifically moved/added/removed timeline rows plus a summary. This distinguishes it from sibling tools like amendments() or doc_history by focusing on the diff operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when you need to see the actual changes an amendment makes to a schedule, and it points users to amendments() for valid names. It also explains the optional event parameter for disambiguation, but does not explicitly state when not to use this tool or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

doc_historyB

Version chain for a document: current version, superseded ones, and amendments pointing at it.

Args: name: Slug or title of any version of the document. event: Optional event code to disambiguate.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
eventNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only describes the output content and parameter meanings, without mentioning whether the operation is read-only, any side effects, permissions, error behavior, or limitations. This is a notable gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with the core purpose front-loaded in the first sentence followed by succinct argument explanations. Every sentence earns its place; there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's main function and both parameters, and an output schema exists to define return values. However, it lacks any usage guidance or behavioral context, which is important given the absence of annotations. For a simple tool it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context to both parameters: 'name' is described as a slash or title of any version, and 'event' is explained as an optional disambiguation code. This goes beyond the bare schema field names and helps the agent understand acceptable values, though it could be more detailed about formats or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as providing the version chain for a document, listing current, superseded versions, and amendments. It is specific about the resource and scope, distinguishing it from related tools like amendments. However, it lacks an explicit action verb (e.g., 'retrieve'), relying on a noun phrase that implies the function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention sibling tools, exclusions, or specific use cases beyond describing what the tool returns. The only implied usage is that it is appropriate for viewing version history, but this is not articulated as a recommendation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

event_overviewA

Summarise one event: categories with doc counts, plus any amendments.

Args: event: Event code, e.g. 'AUS-GP-2026' (see list_events).

ParametersJSON Schema
NameRequiredDescriptionDefault
eventYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries full burden. It discloses what the tool returns (categories, doc counts, amendments) but does not explicitly state read-only behavior, error handling, or permissions. The word 'Summarise' implies non-destructive action, but safety is not made explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely compact: one purpose sentence plus a minimal Args block. It is front-loaded with the main purpose and contains no filler or redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter, an output schema, and a simple use case, the description is nearly complete. Minor gaps include not clarifying the relationship with the 'amendments' sibling and not covering empty or error cases, but the essential information is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no description for the 'event' parameter (0% coverage). The description fully compensates by giving the expected format ('AUS-GP-2026') and a pointer to list_events for finding valid codes, adding substantial meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Summarise') and resource ('one event') and lists outputs: categories with doc counts and amendments. It distinguishes from list_events by focusing on a single event, but it does not explicitly differentiate from the sibling 'amendments' tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context implies use when a summary of one event is needed, and the 'see list_events' pointer helps locate the event code. However, there is no explicit when-not-to-use guidance or mention of alternative tools like 'amendments' for focused amendment details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_docsA

List documents, optionally filtered by event and/or category substring.

Args: event: Event code filter, e.g. 'AUS-GP-2026'. category: Substring match on the category path, e.g. 'briefing' or 'supplementary-regulations'. include_superseded: Include documents replaced by newer versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventNo
categoryNo
include_supersededNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It explains filter behavior (substring matching for category, event code filtering) and the include_superseded flag, but does not mention read-only behavior, sorting, pagination, or potential large result sets. It adds some transparency via parameter explanations but lacks broader behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose, followed by a structured Args section. Every sentence adds value, with no fluff or repetition. It avoids unnecessary detail while providing useful examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity and the presence of an output schema, the description covers the essential behavior and parameter semantics. It does not explain return value details (handled by output schema) or mention ordering/pagination, but these are not critical for a list tool. Overall, sufficiently complete for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only titles and defaults, with zero descriptions. The description enriches each parameter: event with a concrete example, category with substring semantics and examples, and include_superseded with its purpose. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List documents' with specific optional filters (event and category), using a specific verb and resource. It distinguishes from siblings like list_events by focusing on documents, and from read_doc by being a listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need a list of documents, and mentions filtering options, but it does not explicitly contrast with alternatives like search or read_doc, nor does it state when not to use this tool. No exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_eventsA

List all events in the vault with document counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It mentions that the output includes document counts, which adds some context, but it omits any details about ordering, pagination, or event identification. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler. It front-loads the action and scope, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given it is a zero-parameter list tool with an output schema available, the description is mostly complete. It covers the essential purpose and output, though it lacks sibling differentiation, which slightly reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is empty, so the baseline for parameter semantics is 4. The description adds useful context by specifying the scope ('all events') and output detail ('document counts') without needing to explain parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List all events in the vault with document counts.' It uses a specific verb and resource, but it does not explicitly distinguish this from sibling tools like event_overview, which may serve a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives such as event_overview, list_docs, or search. There is no mention of exclusions or preferred contexts, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_docA

Read a document's full text by slug or title (fuzzy matched).

Args: name: Slug or title, e.g. 'marshals event information booklet' or '2026-mxm-event-sat-v1-a6-device'. event: Optional event code to disambiguate. pages: Optional page range like '3-5' or '12' to return only those '## Page N' sections (recommended for long documents).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
eventNo
pagesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It reveals that matching is fuzzy, that event codes help disambiguate, and that pages restricts output to specific '## Page N' sections. It lacks behavior on error handling or not-found cases, but still adds significant transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct and well-structured: a one-sentence purpose followed by a concise parameter list with examples. Every sentence contributes without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to explain return values. It adequately covers purpose and parameters, making the tool usable. Minor omissions like behavior on ambiguous matches or no results prevent a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description fully explains all three parameters with concrete examples and purposes. Name, event, and pages are each clearly defined, making it easy for an agent to provide correct inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a document's full text by slug or title, with fuzzy matching. This distinguishes it from sibling tools like list_docs or search, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: to retrieve a document's full text, with optional disambiguation by event and page range limiting. It does not explicitly reference alternatives or exclusions, preventing a higher score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schedule_forA

Timeline for one event day, parsed from the current Minute-x-Minute.

Args: day: 'friday' / 'fri' / 'saturday' / 'sat' / 'sunday' / 'thursday'. event: Event code, e.g. 'AUS-GP-2026'. query: Optional filter — only entries containing this substring, e.g. 'marshal' or 'supercars'.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayYes
eventYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the transparency burden. It discloses that the data is 'parsed from the current Minute-x-Minute,' which implies a read-only operation, and describes the optional query filter. However, it does not mention error handling, performance, or what happens if the day or event is invalid. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a one-sentence summary followed by a clean three-line argument list. No unnecessary words, and the structure is front-loaded with the core purpose. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description does not need to explain return values. It covers the core purpose and all parameter semantics clearly. Minor gaps like edge cases or prerequisites are not critical for this simple read tool, so it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description fully compensates by explaining all three parameters: day lists accepted values, event provides an example code, and query explains its filter behavior with examples. This adds complete meaning beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a 'Timeline for one event day, parsed from the current Minute-x-Minute,' specifying the operation (timeline retrieval) and the resource (a specific event day from a named source). This distinguishes it from sibling tools like event_overview or list_events, which likely provide different perspectives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need a timeline for a specific event day. It gives clear context (one event day, parsed from Minute-x-Minute) but does not explicitly mention alternatives or exclusions. That fits the 'clear context, no exclusions' level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv0.1.0
    • First observedamendments
    • First observeddiff_amendment
    • First observeddoc_history
    • First observedevent_overview
    • First observedlist_docs
    • First observedlist_events
    • First observedread_doc
    • First observedschedule_for
    • First observedsearch

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: events, documents, search, schedules, amendments, and history. Overlap is minimal and clarified by descriptions (e.g., event_overview vs. list_docs).

Naming Consistency3/5

Names mix conventions: list_events, list_docs, read_doc, diff_amendment follow verb_noun, while event_overview, schedule_for, amendments, and doc_history do not. However, all names are still descriptive and readable, so the inconsistency is moderate rather than chaotic.

Tool Count5/5

Nine tools is well within the ideal 3–15 range. Each tool serves a clear purpose in the event-documentation domain, and none feel redundant or unnecessary.

Completeness5/5

The domain is a read-only knowledge base for motorsport events, and the set covers event listing, document search/read, per-day schedules, amendments, and version history. No obvious workflow dead ends remain; even superseded documents and amendment diffs are handled.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    This MCP server enables AI agents to view PDFs as accessible HTML with bounding-box citations, and provides tools for layout-aware parsing, schema extraction, cross-document Q&A, and PDF rendering.
    27
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.
    42
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that gives AI assistants direct access to RaceHooks motorsport analytics and data, enabling management of webhooks, live sessions, simulations, and account usage.
    8
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for Nyxdoc, a document system where humans and external agents collaborate on documents with version history, agent to-dos, and workspace permissions.
    MIT

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/hungnv26/startline-server'

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