Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add michelgrolet/tars-location-mcp --skill setup-location-memorygit clone --depth 1 https://github.com/michelgrolet/tars-location-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/michelgrolet/tars-location-mcp/setup-location-memory)<a href="https://agentmods.dev/skills/michelgrolet/tars-location-mcp/setup-location-memory"><img src="https://agentmods.dev/badge/skills/michelgrolet/tars-location-mcp/setup-location-memory/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/michelgrolet/tars-location-mcp/setup-location-memory"><img src="https://agentmods.dev/badge/skills/michelgrolet/tars-location-mcp/setup-location-memory.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00059 | $0.00869 |
| Opus 5.5 | $0.00024 | $0.00348 |
| Sonnet 5.5 | $0.00012 | $0.00174 |
| Haiku 4.5 | $0.00006 | $0.00087 |
Grade A, and why
setup-location-memory scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 75 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Set up location memory
Four things have to be true: a Postgres to write to, the schema in it, an env file the server can find, and the MCP server registered with the agent. Check them in that order, because each one's error looks like the one before it.
1. Where the config lives
cat ~/.config/tars-location/.env
LOCATION_DATABASE_URL is required. LOCATION_GEOCODER_CONTACT has no default and nothing geocodes without it: Nominatim's usage policy asks for an address they can reach you at, and an anonymous scraper gets blocked. The rest have defaults, listed in .env.example.
If there is no database yet, a container on the same machine is enough:
docker run -d --name location-db -e POSTGRES_PASSWORD=local -p 5432:5432 postgres:16
2. The schema
tars-location migrate
tars-location status
migrate is idempotent, so running it again after an upgrade is the normal case. status prints what the archive holds per source and every gap it knows about; run it after every step below and read the counts rather than assuming.
3. Fill it
The past. Google keeps Timeline on the phone now, so a Takeout gives you settings only. The export lives at Settings > Location > Location services > Timeline > Export Timeline data, and produces one JSON file.
tars-location import ~/Downloads/location-history.json --geocode 200
tars-location detect-trips
Four export shapes are handled and every insert is on conflict do nothing, so re-importing an overlapping export is safe and adds only what is new. Geocoding is deliberately separate from the insert, because Nominatim allows one call a second and an export brings a thousand new places. Drain the rest on a timer:
tars-location enrich --geocode 25
The present. OwnTracks, in HTTP mode, with the token as the password under Authentication:
tars-location token add --label pixel
tars-location serve --port 8080
The endpoint refuses to bind anything but loopback unless you tell it there is TLS in front, because a bearer token over plain HTTP is a token in every hop's logs. Put a reverse proxy there before exposing it.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 75 lines · 59 tokens per session scan A b4ecb12ca4d4
setup-location-memory is a skill published in the GitHub repository michelgrolet/tars-location-mcp (0 stars, last pushed 2mo ago), licensed MIT. It adds 59 tokens to every session and 869 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
setup-location-memory compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| setup-location-memorymichelgrolet/tars-location-mcp | Skill | 0 | 2mo ago | MIT | A | 59 | Claude Code |
| chromadbEliasOulkadi/shokunin | Skill | 112 | 1mo ago | MIT | A | 61 | Claude Code, Codex |
| orchardcore-ai-memory-elasticsearchCrestApps/CrestApps.AgentSkills | Skill | 13 | 16d ago | MIT | A | 130 | Claude Code |
| crestapps-core-ai-memoryCrestApps/CrestApps.AgentSkills | Skill | 13 | 16d ago | MIT | A | 140 | Claude Code |
| lore-onboardlabyrinth-analytics/loreconvo | Skill | 12 | 10d ago | none | A | 81 | Claude Code |
| nlqdb-docs-memorynlqdb/nlqdb | Skill | 2 | yesterday | none | A | 91 | Claude Code |
| nlqdb-memorynlqdb/nlqdb | Skill | 2 | yesterday | none | A | 70 | Claude Code |