Core Tools Reference
Every Trove connection ships with 8 Core tools. All tool calls use the tools/call JSON-RPC method with the tool name and arguments.
Source names vs IDs: the Core tools accept source names (e.g.,
"Readwise", case-insensitive) for thesourceparameter. The GraphQL API usessourceId(the source’s ID) instead. Usetrove_list_sourcesto see available source names.
trove_search
Section titled “trove_search”Semantic search across your knowledge base. Covers bookmarks, highlights, articles, transcripts, and saved content from all your sources.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | Natural language search query | |
source | string | No | Filter by source name (e.g., "Readwise") | |
feedId | string | No | Filter to a specific feed by ID | |
author | string | No | Filter by content author | |
after | string | No | ISO 8601 date. Only content after this date | |
before | string | No | ISO 8601 date. Only content before this date | |
limit | number | No | 10 | Max results (max 25) |
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "trove_search", "arguments": { "query": "transformer architecture attention mechanism", "limit": 5 } }}Example response
Section titled “Example response”The result.content[0].text field contains formatted text:
Found 5 results (45ms):
1. [0.92] Attention Is All You Need Source: arXiv Papers | Author: Vaswani et al. | 8,432 words "The dominant sequence transduction models are based on complex recurrent..." [doc:a1b2c3d4]
2. [0.87] The Illustrated Transformer Source: Readwise | Author: Jay Alammar | 3,201 words "In this post, we will look at The Transformer..." [doc:e5f6g7h8]- Be specific.
"attention mechanism in transformers"outperforms"AI stuff". - Use the
sourcefilter to scope searches to a single source. - Use date filters (
after,before) to narrow results by time. - Use
trove_get_documentto read the full text of any result.
trove_get_document
Section titled “trove_get_document”Retrieve the full text of a specific document by ID. Use this after trove_search to read complete content.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
document_id | string | Yes | Document ID from search results (the [doc:...] reference) |
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "trove_get_document", "arguments": { "document_id": "a1b2c3d4" } }}Example response
Section titled “Example response”The response contains formatted text with the document title, source, author, date, word count, and the full content body.
- Only fetch full text when the snippet from search results is not enough. Full text is loaded from object storage and is larger.
- The
document_idis the value inside[doc:...]brackets in search results.
trove_get_source
Section titled “trove_get_source”Detailed information about a source, including document count, top authors, recent documents, and sync history.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
source | string | Yes | Source name (e.g., "Readwise") or ID |
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "trove_get_source", "arguments": { "source": "Readwise" } }}Response includes
Section titled “Response includes”- Source type, status, and collection shape (kind/transport)
- Total document count
- Last sync time
- Date range of indexed content
- Feeds within the source, each with its sync position (watermark)
- Top 5 authors by document count
- 5 most recent documents
- Last 5 sync runs with status
- Use the source name (case-insensitive) rather than the ID for convenience.
- Call
trove_list_sourcesfirst if you are not sure of the source name.
trove_recent
Section titled “trove_recent”Recently indexed content in chronological order (newest first). A timeline view, not a semantic search.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
source | string | No | Filter by source name | |
feedId | string | No | Filter to a specific feed by ID | |
author | string | No | Filter by author | |
since | string | No | last 24h | ISO 8601 datetime. Only content indexed after this time |
limit | number | No | 15 | Max results (max 50) |
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "trove_recent", "arguments": { "since": "2026-03-24T00:00:00Z", "limit": 10 } }}- No parameters required. Calling with no arguments returns the last 15 items indexed in the past 24 hours.
- Good for “what’s new?” queries and reviewing recently saved content.
trove_list_documents
Section titled “trove_list_documents”Exhaustively list documents with filters. Unlike trove_search (top-K semantic matches), this returns an authoritative totalCount, so “all X” questions get a complete, verifiable answer. Page through large lists with offset.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
source | string | No | Filter by source name (e.g., "Apple Podcasts") | |
author | string | No | Filter by author or show (fuzzy, case-insensitive) | |
content_type | string | No | Filter by type: text, transcript, bookmark, or highlight | |
after | string | No | ISO 8601 date. Only documents published after this date | |
before | string | No | ISO 8601 date. Only documents published before this date | |
sort | string | No | newest | Sort order: newest, oldest, recently_indexed, or title |
limit | number | No | 25 | Page size (max 50) |
offset | number | No | 0 | Skip this many documents (for paging) |
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "trove_list_documents", "arguments": { "source": "Apple Podcasts", "sort": "newest", "limit": 25 } }}- Use this (not
trove_search) for counts and “list every X” requests — it reports an authoritativetotalCount. - For podcasts, the show name is stored as the document author, so filter by
authorto scope to a single show. - Page through results with
offsetwhen the total exceeds the pagelimit.
trove_discover
Section titled “trove_discover”Broad exploration of the knowledge base around a topic. Unlike trove_search, which returns precise matches, trove_discover uses a lower similarity threshold to surface loosely related content across sources.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
topic | string | Yes | Topic or theme to explore | |
source | string | No | Filter by source name | |
feedId | string | No | Filter to a specific feed by ID | |
limit | number | No | 10 | Max results (max 25) |
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "trove_discover", "arguments": { "topic": "decision-making under uncertainty" } }}- Use for brainstorming sessions and exploring adjacent ideas.
- More exploratory than
trove_search. Useful when you want surprising connections across sources. - Pair with
trove_get_documentto dive deeper into anything interesting.
trove_list_sources
Section titled “trove_list_sources”List all your sources and their current status.
Parameters
Section titled “Parameters”None.
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 6, "method": "tools/call", "params": { "name": "trove_list_sources", "arguments": {} }}Example response
Section titled “Example response”The response lists each source with its status:
3 sources:
- Readwise (readwise, api) [active] Documents: 1,247 Last synced: 2026-03-25T08:14:00Z
- Kindle Highlights (kindle, local) [active] Documents: 342 Last synced: 2026-03-24T06:30:00Z
- Manual Saves (manual) [active] Documents: 28The parenthetical shows the source type and its transport (and kind when on-demand). Status values: [active], [paused], [error], [setup]. Sources with [error] status include an error message.
- Call this first to see what sources are available before searching.
- Source names from this list can be used as the
sourcefilter in other tools.
trove_save
Section titled “trove_save”Save content from the current conversation into your knowledge base. Accepts text directly or a URL to fetch and index.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | No* | Text content to save |
url | string | No* | URL to fetch and index |
title | string | No | Title for the saved content |
source | string | No | Attribution (e.g., "conversation with Claude") |
tags | string[] | No | Categorization tags |
*At least one of text or url must be provided.
Example request
Section titled “Example request”{ "jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": { "name": "trove_save", "arguments": { "text": "The Pareto principle states that roughly 80% of consequences come from 20% of causes.", "title": "Pareto Principle", "source": "conversation with Claude", "tags": ["mental-models", "decision-making"] } }}Example response
Section titled “Example response”The response confirms the save:
Saved: "Pareto Principle"
Document ID: f9a8b7c6Words: 16Source: conversation with ClaudeTags: mental-models, decision-making
The content is now searchable via trove_search.- Saved content goes to the Manual Saves source, which is auto-created on first use.
- Content is immediately searchable via
trove_searchafter saving. - Use
tagsto organize saved content for easier filtering later. - The
sourcefield is free-form attribution — it helps you remember where the content came from. - When saving a URL, Trove fetches the page content. You do not need to paste the text yourself.
See Also
Section titled “See Also”The Core tools map to Trove’s GraphQL queries and mutations. The GraphQL API offers additional filtering and pagination options not available through the connection.