startline
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@startlinewhat time does qualifying start on Saturday?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| inventory, categories, amendment count |
| filter by event and category |
| full-text with citations |
| fuzzy name match, |
| parsed day timeline, with amendment warnings attached |
| what an amendment actually changed |
| 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 |
| answer engine (used by the web app, Siri and the iOS app) |
| JSON for clients |
| browse and stream the event's source PDFs/images |
| pre-answered common questions, grounded in the event's docs |
| 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
Available Tools
9 toolsamendmentsB
All amendment documents for an event and what they amend.
Args: event: Event code, e.g. 'AUS-GP-2026'.
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| event | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| event | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | ||
| category | No | ||
| include_superseded | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| event | No | ||
| pages | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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'.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | ||
| event | Yes | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
searchA
Full-text search over every document chunk (FTS5 + BM25 + synonyms).
Best first step for any factual question. Results cite note + page heading; follow up with read_doc for full context.
Args: query: Plain words, e.g. 'sign on saturday' or 'pit lane speed limit'. event: Optional event code filter. category: Optional substring filter on category path. include_superseded: Also search documents replaced by newer versions. limit: Max results (default 8).
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | ||
| limit | No | ||
| query | Yes | ||
| category | No | ||
| include_superseded | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It discloses the search engine (FTS5 + BM25), synonym handling, result citations to note + page heading, and the include_superseded flag behavior. It does not mention potential errors or performance constraints, but for a search tool this is solid behavioral coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: two introductory sentences and a bulleted Args list. Every sentence adds value – the first states what it does, the second gives usage context, and the args list is minimal. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (as noted in context), return-value details are covered externally. The description supplies all necessary context: scope, behavior, parameter semantics, and usage sequence. For a 5-parameter search tool with a required query, this is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides an explicit Args section that explains every parameter in plain language with examples (e.g., query: 'sign on saturday'). It clarifies that category is a substring filter, include_superseded searches replacements, and limit has a default of 8. This fully compensates for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Full-text search over every document chunk (FTS5 + BM25 + synonyms)' – a specific verb, resource, and technique. This clearly distinguishes it from sibling tools like list_events, read_doc, or list_docs, which serve different purposes. It also specifies that it searches all document chunks, not just documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Best first step for any factual question' and advises to 'follow up with read_doc for full context.' This tells the agent exactly when to use this tool and what alternative to use afterward. The guidance is direct and actionable.
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.
9 tool updates
v0.1.0- First observed
amendments - First observed
diff_amendment - First observed
doc_history - First observed
event_overview - First observed
list_docs - First observed
list_events - First observed
read_doc - First observed
schedule_for - First observed
search
TDQS
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).
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.
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.
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
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for agentverse documentation, generated by doc2mcp.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
AlicenseAqualityCmaintenanceThis 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.27MIT- AlicenseNot gradedqualityFmaintenanceMCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.42MIT

@racehooks/mcpofficial
AlicenseNot gradedqualityAmaintenanceMCP server that gives AI assistants direct access to RaceHooks motorsport analytics and data, enabling management of webhooks, live sessions, simulations, and account usage.81MIT- AlicenseNot gradedqualityAmaintenanceMCP 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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