Skip to content

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 the source parameter. The GraphQL API uses sourceId (the source’s ID) instead. Use trove_list_sources to see available source names.

Semantic search across your knowledge base. Covers bookmarks, highlights, articles, transcripts, and saved content from all your sources.

ParameterTypeRequiredDefaultDescription
querystringYesNatural language search query
sourcestringNoFilter by source name (e.g., "Readwise")
feedIdstringNoFilter to a specific feed by ID
authorstringNoFilter by content author
afterstringNoISO 8601 date. Only content after this date
beforestringNoISO 8601 date. Only content before this date
limitnumberNo10Max results (max 25)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "trove_search",
"arguments": {
"query": "transformer architecture attention mechanism",
"limit": 5
}
}
}

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 source filter to scope searches to a single source.
  • Use date filters (after, before) to narrow results by time.
  • Use trove_get_document to read the full text of any result.

Retrieve the full text of a specific document by ID. Use this after trove_search to read complete content.

ParameterTypeRequiredDescription
document_idstringYesDocument ID from search results (the [doc:...] reference)
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "trove_get_document",
"arguments": {
"document_id": "a1b2c3d4"
}
}
}

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_id is the value inside [doc:...] brackets in search results.

Detailed information about a source, including document count, top authors, recent documents, and sync history.

ParameterTypeRequiredDescription
sourcestringYesSource name (e.g., "Readwise") or ID
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "trove_get_source",
"arguments": {
"source": "Readwise"
}
}
}
  • 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_sources first if you are not sure of the source name.

Recently indexed content in chronological order (newest first). A timeline view, not a semantic search.

ParameterTypeRequiredDefaultDescription
sourcestringNoFilter by source name
feedIdstringNoFilter to a specific feed by ID
authorstringNoFilter by author
sincestringNolast 24hISO 8601 datetime. Only content indexed after this time
limitnumberNo15Max results (max 50)
{
"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.

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.

ParameterTypeRequiredDefaultDescription
sourcestringNoFilter by source name (e.g., "Apple Podcasts")
authorstringNoFilter by author or show (fuzzy, case-insensitive)
content_typestringNoFilter by type: text, transcript, bookmark, or highlight
afterstringNoISO 8601 date. Only documents published after this date
beforestringNoISO 8601 date. Only documents published before this date
sortstringNonewestSort order: newest, oldest, recently_indexed, or title
limitnumberNo25Page size (max 50)
offsetnumberNo0Skip this many documents (for paging)
{
"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 authoritative totalCount.
  • For podcasts, the show name is stored as the document author, so filter by author to scope to a single show.
  • Page through results with offset when the total exceeds the page limit.

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.

ParameterTypeRequiredDefaultDescription
topicstringYesTopic or theme to explore
sourcestringNoFilter by source name
feedIdstringNoFilter to a specific feed by ID
limitnumberNo10Max results (max 25)
{
"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_document to dive deeper into anything interesting.

List all your sources and their current status.

None.

{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "trove_list_sources",
"arguments": {}
}
}

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: 28

The 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 source filter in other tools.

Save content from the current conversation into your knowledge base. Accepts text directly or a URL to fetch and index.

ParameterTypeRequiredDescription
textstringNo*Text content to save
urlstringNo*URL to fetch and index
titlestringNoTitle for the saved content
sourcestringNoAttribution (e.g., "conversation with Claude")
tagsstring[]NoCategorization tags

*At least one of text or url must be provided.

{
"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"]
}
}
}

The response confirms the save:

Saved: "Pareto Principle"
Document ID: f9a8b7c6
Words: 16
Source: conversation with Claude
Tags: 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_search after saving.
  • Use tags to organize saved content for easier filtering later.
  • The source field 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.

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.