citetrail
Enables AI agents to search and recall locally captured browser pages with full source provenance (URL, title, timestamp) over MCP.
README
Citetrail
Local, provenance-backed memory of what your browser saw — every recall carries the URL, title, and timestamp it came from.
Citetrail captures the pages you actually read, keeps them on your machine, and makes them searchable — by you, and by your AI agents over MCP. When an agent uses something it found there, it can cite exactly where it came from.
- Status: pre-release. See Project status before installing.
- License: Apache-2.0
- Local by default. No account, no server, no upload. Blocked pages fail closed.
The problem Citetrail solves
You read six tabs, closed them, and now your coding agent needs the thing in tab four. Your options today are: paste it again, let the agent re-search the open web and hope it lands on the same page, or accept an answer with no source.
Browser history knows you visited a URL. It does not know what the page said, and it cannot tell your agent. Citetrail closes that gap:
| Browser history | Citetrail |
|---|---|
| A list of URLs | The content you actually read, captured |
| Search by title, roughly | Search by what the page said |
| Invisible to your tools | Queryable by agents over MCP |
| No notion of "why is this here" | Every entry carries its provenance |
| Everything, indiscriminately | Only allowed pages; blocklist fails closed |
What "provenance-backed" means here
Every stored fragment keeps a bounded reference: source URL, page title, capture timestamp, and the position within the page. Recall returns the fragment and that reference together — they cannot be separated. An agent that answers from Citetrail can always say where it got it, and you can always open the original.
If the source is gone, Citetrail says the source is gone. It does not quietly serve a fragment as if it were still live.
Quickstart
git clone https://github.com/anonb3ll/citetrail
cd citetrail
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/citetrail init
# 2. Search the local store
.venv/bin/citetrail search "retry backoff"
# Optional: block a sensitive hostname before it can be stored
.venv/bin/citetrail block bank.example.test
# 3. Point an agent at the same local store over MCP
.venv/bin/citetrail mcp --stdio
The default store is ~/.local/share/citetrail. Set CITETRAIL_STORE or pass
--store PATH to use a different local directory. See
docs/extension.md to load the unpacked Chromium adapter.
Documentation
| Guide | Description |
|---|---|
| docs/README.md | Documentation index |
| docs/cli-reference.md | CLI commands and store layout |
| docs/mcp.md | MCP tool schema and registration |
| docs/extension.md | Chromium extension setup |
| docs/privacy.md | Blocklist and fail-closed behavior |
| docs/integration-contract.md | Optional Runroom integration |
Frequently asked questions
How do I let my AI agent search my browsing history?
Run the local MCP server and register it with your agent. The agent queries Citetrail like any other MCP tool and receives fragments with their sources attached. It never gets raw access to your browser or your profile.
Where is my data stored, and does anything get uploaded?
On your machine, in a local database you can delete at any time. Citetrail has no server and performs no uploads. See docs/privacy.md.
How do I stop it capturing my bank, my email, or my work intranet?
The blocklist. It is checked before capture, and it fails closed — if the
rules cannot be evaluated for a page, that page is not captured. Add a host
with citetrail block bank.example.test. Allowlist-only capture is deferred.
Can an agent cite a source it did not actually read?
Not from Citetrail. The reference travels with the fragment; there is no API that returns text without its provenance.
What happens when I am offline, or a page is gone?
Recall works offline against what you already captured. If the original URL is unreachable, results are marked as such rather than silently presented as current. Unavailable and privacy-blocked states are reported honestly, not hidden.
Is this a note-taking app or a second brain?
No. Citetrail captures and recalls; it does not organize your thinking, build a knowledge graph, or ask you to maintain anything. It is plumbing for tools that need to know what you read.
Does it work in any browser?
The extension targets Chromium-based browsers first. The native bridge between the extension and the local service has real limits — see docs/limitations.md.
What Citetrail is not
- Not a hosted service and not a sync service. One machine, one store.
- Not a PKM or note system.
- Not a clinical, wellbeing, or attention-tracking tool. It makes no claim about your cognition.
- Not a scraper. It captures pages you visited yourself, under your rules.
- Not a mobile app.
See docs/limitations.md and docs/private-exclusions.md.
Related project
Runroom coordinates handoffs between AI agents and humans with review gates and an audit trail. The two projects are independent and neither requires the other; an optional integration shows a Citetrail reference feeding a governed Runroom task.
Contributing
Read CONTRIBUTING.md and CODE_OF_CONDUCT.md. Report vulnerabilities privately — see SECURITY.md.
Project status
Pre-release, pre-1.0. Interfaces will change. Citetrail is published to find out whether other people need this — if you try it, tell us what you were trying to recall and whether you got it.
License
Apache License 2.0. Copyright 2026 The Citetrail Contributors.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。