search_readwise_highlights
Search and retrieve saved highlights from Readwise using vector and full-text queries. Enables AI assistants to access and analyze your reading content based on specific criteria like author, title, tags, notes, or text.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| full_text_queries | Yes | ||
| vector_search_term | Yes |
Implementation Reference
- src/index.ts:75-78 (handler)The handler function for the 'search_readwise_highlights' tool. It sends the input payload to the backend API endpoint '/api/mcp/highlights' via axios and returns the results as a JSON-stringified text block.async (payload) => { const response = await this.axios.post("/api/mcp/highlights", payload); return {content: [{type: "text", text: JSON.stringify(response.data.results)}]}; }
- src/index.ts:60-74 (schema)Zod input schema defining 'vector_search_term' as string and 'full_text_queries' as an array (max 8) of objects with 'field_name' (enum of highlight fields) and 'search_term'.{ vector_search_term: z.string(), full_text_queries: z.array( z.object({ field_name: z.enum([ "document_author", "document_title", "highlight_note", "highlight_plaintext", "highlight_tags", ]), search_term: z.string(), }), ).max(8), },
- src/index.ts:58-79 (registration)Registration of the 'search_readwise_highlights' tool on the McpServer instance, including name, input schema, and inline handler function.this.server.tool( "search_readwise_highlights", { vector_search_term: z.string(), full_text_queries: z.array( z.object({ field_name: z.enum([ "document_author", "document_title", "highlight_note", "highlight_plaintext", "highlight_tags", ]), search_term: z.string(), }), ).max(8), }, async (payload) => { const response = await this.axios.post("/api/mcp/highlights", payload); return {content: [{type: "text", text: JSON.stringify(response.data.results)}]}; } );