Skip to main content
Glama

Dawarich MCP

Minimal read-only MCP server for loading information from a Dawarich instance.

Tools

  • dawarich_get_stats -> GET /api/v1/stats

  • dawarich_get_timeline -> GET /api/v1/timeline

  • dawarich_list_visits -> GET /api/v1/visits

  • dawarich_list_points -> GET /api/v1/points

  • dawarich_get_track_points -> GET /api/v1/tracks/:track_id/points

  • dawarich_get_track_detail -> compact detail for one journey

  • dawarich_export_track -> one journey as summary, JSON, GeoJSON, or CSV

  • dawarich_reverse_geocode -> GPS coordinates to address via reverse geocoder

  • dawarich_summarize_journeys -> simple from-to trip table for a date range

Related MCP server: flighty-mcp

Setup

npm install
$env:DAWARICH_URL="https://your-dawarich.example.com"
$env:DAWARICH_API_KEY="replace-with-your-api-key"
npm start

By default the API key is sent as ?api_key=..., matching Dawarich docs. If your instance expects bearer auth, set:

$env:DAWARICH_AUTH_MODE="bearer"

Reverse geocoding defaults to OpenStreetMap Nominatim. For regular use, set a clear user agent:

$env:DAWARICH_GEOCODER_USER_AGENT="dawarich-mcp/0.3.0 contact=you@example.com"

You can also point it at another compatible reverse geocoder:

$env:DAWARICH_GEOCODER_URL="https://your-geocoder.example.com/reverse"

Example Prompts

Nacti detail cesty 12725 a rekni mi start, cil a kolik mela bodu.
Exportuj cestu 12725 jako GeoJSON.
Geolokuj souradnice 49.7281335, 13.3269319.
Vypis moje pracovni cesty za minuly tyden jako jednoduchou tabulku:
pondeli Chudenice -> Plzen, utery Chudenice -> Rybitvi.
Pouzij dawarich_summarize_journeys s weekdays_only=true, modes=["driving"] a include_markdown=true.

Add To Codex

From this folder:

codex mcp add dawarich `
  --env DAWARICH_URL="https://your-dawarich.example.com" `
  --env DAWARICH_API_KEY="replace-with-your-api-key" `
  -- node C:\Users\zilvar\Documents\Codex\2026-08-06\najd\outputs\dawarich-mcp\src\server.js

Then restart Codex or the ChatGPT desktop app. Use /mcp to confirm the server is connected.

Test With Inspector

npm run inspect

Notes

This server intentionally exposes read-only tools only. Add write tools, such as visit updates or merges, only after confirming the read flow works and you are comfortable letting an assistant modify location-history data.

Available Tools

9 tools
dawarich_export_trackExport Dawarich trackA
Read-only

Downloads one Dawarich journey and returns it as compact JSON, GeoJSON LineString, or CSV.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format. Defaults to summary.
track_idYesDawarich track ID.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it 'downloads' one journey and returns in multiple formats, which is useful but not deep behavioral context. It does not mention size limits, pagination, or what 'summary' entails, but with annotations present, a score of 3 is appropriate.

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, front-loaded sentence. It states the action, scope, and output formats without any filler or repetition. Every word contributes to understanding the tool's core function.

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 simplicity and the rich schema with 100% parameter coverage, the description sufficiently conveys the return value formats. It doesn't explain the content of 'summary' or exact CSV structure, but for an export tool with clear format options, this is largely complete.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters having descriptive text. The description reinforces that a single journey is exported, which matches track_id semantics, but it does not add significant meaning beyond the schema's existing property 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 identifies the action ('Downloads one Dawarich journey') and the resource ('Dawarich journey'), and specifies output formats (compact JSON, GeoJSON LineString, CSV). It distinguishes itself from sibling tools like dawarich_get_track_points and dawarich_get_track_detail by emphasizing export in multiple formats.

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 provides no explicit guidance on when to use this tool versus alternatives. It does not mention that this is for exporting complete journeys in structured formats, nor does it exclude other tools. The format options imply use cases but no direct comparison.

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

dawarich_get_statsGet Dawarich statsA
Read-only

Returns aggregated Dawarich statistics such as total distance, tracked points, countries, cities, and yearly breakdowns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about the types of statistics returned, but does not disclose any deeper behavior such as rate limits, data coverage, or time range constraints.

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 sentence that front-loads the action and resource, with no redundant or unnecessary words. It efficiently conveys the tool's purpose.

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?

For a zero-parameter tool with no output schema, the description provides a reasonable list of the returned data categories. It is adequate for the simplicity of the tool, though it could mention date ranges or data source for extra 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, so the schema coverage is trivially complete. The description adds meaning by enumerating the categories of statistics (distance, points, countries, cities, yearly breakdowns), which helps the agent understand what the tool provides despite having no 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 identifies the tool's function: returning aggregated statistics such as distance, points, countries, cities, and yearly breakdowns. It is specific and distinguishes this tool from siblings that focus on raw data like timelines or track points.

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 word 'aggregated' implies this tool is for summary-level queries, but the description does not explicitly mention when to use it over alternatives or name any excluded tools. Some guidance is implied but not directly stated.

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

dawarich_get_timelineGet Dawarich timelineA
Read-only

Returns day-by-day timeline data with visits, tracks, and photos. Dawarich supports a maximum date range of 31 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_atYesEnd date or timestamp, for example 2026-08-06.
start_atYesStart date or timestamp, for example 2026-08-01.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, and the description adds the important behavioral constraint of a maximum 31-day date range, which affects invocation. No additional side effects are mentioned, but the safety profile is already covered by annotations.

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?

Two sentences, each with a clear purpose: the first states the functionality, the second states a constraint. No fluff or repetition of schema information.

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?

With no output schema, the description provides some return content ('visits, tracks, and photos') and implies a daily structure, but it does not clarify pagination, response format, or how this differs from closely related sibling tools. The 31-day limit is helpful, but the description is relatively sparse for a tool with multiple siblings.

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

Parameters3/5

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

Schema description coverage is 100%, with both start_at and end_at having descriptions in the schema. The description adds the 31-day range constraint, which indirectly informs parameter usage, but adds no syntax or format details 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 uses the specific verb 'Returns' and identifies the resource as 'day-by-day timeline data' with content including 'visits, tracks, and photos'. This distinguishes it from sibling tools like dawarich_get_stats or dawarich_list_points, which serve different purposes.

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 use for timeline retrieval but does not explicitly name alternatives or state when not to use it. The maximum date range of 31 days provides a clear constraint, but there is no guidance on choosing between this and sibling tools.

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

dawarich_get_track_detailGet Dawarich track detailA
Read-only

Returns a compact detail for one Dawarich journey: start/end points, endpoint labels, bounding box, duration, and optional sampled points.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYesDawarich track ID.
max_pointsNoMaximum number of sampled points to include when include_points is true. Defaults to 100.
include_pointsNoWhen true, include sampled points in the response.

TDQS

A4/5.0
Behavior4/5

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

While annotations already declare readOnlyHint=true and destructiveHint=false, the description adds meaningful behavioral context by enumerating the returned fields and noting that sampled points are optional. It does not overreach beyond the read-only nature, making it transparent about the tool's output without conflicting with annotations.

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, concise sentence that front-loads the purpose ('Returns a compact detail for one Dawarich journey') and then lists the key content. Every word contributes to understanding the tool's functionality, with no redundant phrases or filler.

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 low complexity (3 params, no output schema), the description sufficiently explains the return value by naming the fields. It covers the main semantics (compact detail, optional sampled points) but does not mention error behavior or the relationship to sibling tools. However, the annotations and schema fill in some gaps, making this reasonably complete.

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

Parameters3/5

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

The schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter meaning beyond what the schema provides; it only mentions 'optional sampled points' which aligns with include_points. It does not elaborate on max_points default behavior beyond what the schema states, so the value added is limited.

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: 'Returns a compact detail for one Dawarich journey' and lists the specific contents ('start/end points, endpoint labels, bounding box, duration, and optional sampled points'). This distinguishes it from the sibling dawarich_get_track_points by emphasizing 'compact detail' and 'sampled points', implying a summary rather than the full point list.

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 for obtaining a summary of a single track, but it does not explicitly mention when to prefer this over alternatives like dawarich_get_track_points or dawarich_get_timeline. No 'when to use' or 'when not to use' guidance is provided, leaving the agent to infer based on the description.

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

dawarich_get_track_pointsGet Dawarich track pointsA
Read-only

Returns location points for a specific Dawarich track, ordered by timestamp ascending.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYesDawarich track ID.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds a useful behavioral detail ('ordered by timestamp ascending') and clarifies output content, but it does not disclose potential pagination, limits, or error behavior, which would be beneficial for a tool returning potentially many points.

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, well-structured sentence that front-loads the action and resource. Every word adds value, with no redundant or filler phrases.

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 simplicity (one parameter, no output schema, no nested objects) and the presence of readOnly/destructive annotations, the description adequately communicates the core behavior and return content. It could mention pagination or output format, but for a primitive data-retrieval tool, the provided details are sufficient.

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

Parameters3/5

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

The schema has full coverage of the single parameter (track_id) with a clear description ('Dawarick track ID'). The description only refers to 'a specific track' without adding syntax, format, or additional meaning beyond what the schema already provides. Baseline 3 is appropriate.

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 ('Returns') and identifies a clear resource ('location points for a specific Dawarick track'), making the tool's purpose unambiguous. It does not explicitly distinguish from sibling tools like dawarich_list_points or dawarich_get_track_detail, but the narrow scope ('for a specific track') provides adequate differentiation.

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 implicitly conveys when to use the tool (when you need location points for a specific track), but it offers no explicit guidance on when to prefer this over alternatives or when not to use it. There is no mention of sibling tools for comparison, leaving the decision to the agent's inference.

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

dawarich_list_pointsList Dawarich pointsA
Read-only

Lists raw tracked location points for a date range. Use this for today's activity when timeline or visits are empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page number.
slimNoWhen true, returns slim points with latitude, longitude, and timestamp only.
orderNoPoint timestamp order. Defaults to desc in Dawarich.
end_atNoOptional end date, timestamp, or Unix timestamp.
per_pageNoOptional page size. Dawarich defaults to 100.
start_atNoOptional start date, timestamp, or Unix timestamp.
anomalies_onlyNoWhen true, returns only points marked as anomalies.
include_anomaliesNoWhen true, includes points marked as anomalies.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that this returns 'raw tracked location points' and the date-range scope, but it does not disclose details like pagination behavior or response format beyond what the schema already implies.

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?

Two sentences with no filler. The first sentence states the core function, the second provides usage context. Every word 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?

Despite having 8 optional parameters and no output schema, the description gives enough context for basic use: it says what the tool returns and when to use it. The schema and annotations fill in parameter details, so the description is adequate, though it could mention large result pagination or anomaly flags.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter already described (e.g., 'Optional start date, timestamp, or Unix timestamp'). The description only adds 'date range' context but does not clarify parameter usage beyond the schema, so it meets the baseline for high coverage.

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 verb 'Lists' and the resource 'raw tracked location points' plus the scope 'for a date range'. It distinguishes this from siblings by highlighting that it returns raw points and referencing timeline and visits as alternatives, which is a strong purpose statement.

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

Usage Guidelines5/5

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

Explicitly says 'Use this for today's activity when timeline or visits are empty', which provides a concrete when-to-use condition and implies when not to use (when timeline/visits have data). This is clear usage guidance with alternatives.

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

dawarich_list_visitsList Dawarich visitsA
Read-only

Lists visits from Dawarich. Optional filters are passed through as query parameters when provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_atNoOptional end date or timestamp.
statusNoOptional visit status filter.
start_atNoOptional start date or timestamp.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the detail that filters are passed as query parameters, which is minor behavioral context but does not elaborate on ordering, pagination, or return format.

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 two sentences, front-loaded with the purpose, and contains no redundant or extraneous information. Every word 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?

For a simple list tool with no required parameters and good annotations, the description covers the essential behavior: it lists visits and explains how filters work. There is no output schema, but the absence of detail on return values is acceptable given the straightforward nature of the operation.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter individually documented (e.g., 'Optional start date or timestamp'). The description adds no new semantic detail beyond what the schema already provides, so it meets the baseline but does not exceed it.

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's function: 'Lists visits from Dawarich.' The verb 'lists' and the resource 'visits' make the purpose specific and distinguishable from sibling tools like dawarich_list_points or dawarich_get_track_points.

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 provides no guidance on when to use this tool versus alternatives among the sibling tools. It only mentions that optional filters are passed as query parameters, which is parametric behavior rather than usage context.

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

dawarich_reverse_geocodeReverse geocode GPS coordinatesA
Read-only

Converts GPS coordinates to an address using the configured reverse geocoder. Defaults to OpenStreetMap Nominatim unless DAWARICH_GEOCODER_URL is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoomNoGeocoder detail level. Nominatim commonly uses 0-18.
languageNoPreferred response language, for example cs or en.
latitudeYesLatitude.
longitudeYesLongitude.

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover the read-only and non-destructive nature. The description adds the configured geocoder behavior and the Nominatim default, which is valuable. However, it does not mention output format, possible failures, or external service dependencies beyond the env var, so it is not rich enough for a higher score.

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?

One sentence, front-loaded with the action and outcome, then a brief config note. No wasted words.

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?

For a simple read-only reverse-geocoding tool, the description covers the core outcome (address) and the default provider. The schema fully documents parameters and annotations cover safety. Missing details like exact return structure or error behavior are not critical for this use case, though a slightly richer description would be more complete.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter already documented. The description adds no further parameter-level semantics beyond noting that the input is GPS coordinates, so the baseline score of 3 is appropriate.

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 uses a specific verb ('converts') and clearly identifies the resource ('GPS coordinates' to 'address'). It also differentiates from sibling tools, which focus on stats, tracks, and timelines, not geocoding.

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 gives useful configuration context (defaults to OpenStreetMap Nominatim, overridable via DAWARICH_GEOCODER_URL) and clearly implies when this tool should be used. It does not explicitly state when not to use it or name alternatives, but no comparable sibling geocoder exists.

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

dawarich_summarize_journeysSummarize Dawarich journeysA
Read-only

Returns a simple human-readable trip table for a date range, including weekday, from-to places, time, distance, mode, and track ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
modesNoOptional list of modes to include, for example ['driving'].
end_atYesEnd date or timestamp, for example 2026-08-02.
start_atYesStart date or timestamp, for example 2026-07-27.
weekdays_onlyNoWhen true, include only Monday through Friday.
min_distance_kmNoOptional minimum distance in kilometers.
include_markdownNoWhen true, include a ready-to-copy Markdown table.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds output format details but no extra behavioral traits (e.g., pagination, timezone handling, data completeness). No contradiction with annotations.

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, front-loaded sentence with no redundant wording. It efficiently communicates the action, scope, and return content.

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?

There is no output schema, so the description appropriately lists the return fields (weekday, from-to places, time, distance, mode, track ID). It is sufficient for a summary tool, though it omits optional details like ordering or limits.

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

Parameters3/5

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

Schema description coverage is 100% and all six parameters are already documented with examples and types. The description mentions 'date range' and 'mode' but does not add meaning beyond what the schema provides; baseline 3 is appropriate.

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 uses a specific verb ('Returns'), identifies the resource ('simple human-readable trip table'), and scopes it to a date range. It also lists output fields, clearly distinguishing it from sibling tools like dawarich_get_stats or dawarich_get_timeline.

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 conveys clear context: use this tool when you need a readable journey summary for a date range. It doesn't explicitly state when not to use it or name alternatives, but the scope and output type make the intended use unambiguous.

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.

  1. 9 tool updatesv0.3.0
    • First observeddawarich_export_track
    • First observeddawarich_get_stats
    • First observeddawarich_get_timeline
    • First observeddawarich_get_track_detail
    • First observeddawarich_get_track_points
    • First observeddawarich_list_points
    • First observeddawarich_list_visits
    • First observeddawarich_reverse_geocode
    • First observeddawarich_summarize_journeys

TDQS

A4.1/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct data type or operation: stats aggregates, timeline summarizes days, visits identifies places, track points and list points differ by scope, track detail is a compact overview, export transforms, reverse geocode converts coordinates, and summarize_journeys creates a trip table. Even the two point-related tools are clearly separated by whether they target a specific track or a date range.

Naming Consistency5/5

All tools follow the consistent pattern dawarich_<verb>_<noun>. Verbs are either get, list, export, reverse, or summarize, making the action easy to predict. No camelCase or mixed conventions are present.

Tool Count5/5

With 9 tools, the server is well-scoped for a location history integration. Each tool covers a meaningful query or export need without unnecessary redundancy or bloat.

Completeness4/5

The server covers the main read-side workflows: overview stats, timelines, visits, raw points, track details, export in multiple formats, geocoding, and journey summaries. A minor gap is the lack of a direct photo retrieval tool despite timeline mentioning photos, and no write operations, but that appears outside the intended read-only scope.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers