Skip to main content
Glama

read_omi_memories

Retrieve user memories from Omi with pagination support. Specify a user ID, limit, and offset to fetch memories efficiently for AI assistant integration.

Instructions

Retrieves user memories from Omi with pagination options

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of memories to return (max: 1000, default: 100)
offsetNoNumber of memories to skip for pagination (default: 0)
user_idYesThe user ID to fetch memories for

Implementation Reference

  • The handler function that implements the tool logic: constructs API URL for Omi memories endpoint, fetches data using API key, parses as MemoriesResponse, and returns JSON of memories.
    async ({ user_id, limit, offset }) => { try { log(`Using appId: ${APP_ID}`); log(`User ID: ${user_id}`); // Construct URL with query parameters const url = new URL(`https://api.omi.me/v2/integrations/${APP_ID}/memories`); const params = new URLSearchParams(); params.append('uid', user_id); if (typeof limit === 'number') { params.append('limit', String(limit)); } if (typeof offset === 'number') { params.append('offset', String(offset)); } url.search = params.toString(); const fetchUrl = url.toString(); log(`Fetching from URL: ${fetchUrl}`); const response = await fetch(fetchUrl, { method: 'GET', headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json', }, }); log(`Response status: ${response.status}`); if (!response.ok) { const errorText = await response.text(); throw new Error(`Failed to fetch memories: ${response.status} ${response.statusText} - ${errorText}`); } const data = (await response.json()) as MemoriesResponse; log('Data received'); const memories = data.memories || []; return { content: [{ type: 'text', text: JSON.stringify({ memories }) }], }; } catch (error) { log(`Error fetching memories: ${error}`); throw new Error(`Failed to read memories: ${error instanceof Error ? error.message : String(error)}`); } }
  • Zod schema for input parameters: user_id (string), limit (number optional), offset (number optional).
    { user_id: z.string().describe('The user ID to fetch memories for'), limit: z.number().optional().describe('Maximum number of memories to return (max: 1000, default: 100)'), offset: z.number().optional().describe('Number of memories to skip for pagination (default: 0)'), },
  • src/index.ts:151-209 (registration)
    MCP server.tool registration of 'read_omi_memories' with description, input schema, and handler function.
    server.tool( 'read_omi_memories', 'Retrieves user memories from Omi with pagination options', { user_id: z.string().describe('The user ID to fetch memories for'), limit: z.number().optional().describe('Maximum number of memories to return (max: 1000, default: 100)'), offset: z.number().optional().describe('Number of memories to skip for pagination (default: 0)'), }, async ({ user_id, limit, offset }) => { try { log(`Using appId: ${APP_ID}`); log(`User ID: ${user_id}`); // Construct URL with query parameters const url = new URL(`https://api.omi.me/v2/integrations/${APP_ID}/memories`); const params = new URLSearchParams(); params.append('uid', user_id); if (typeof limit === 'number') { params.append('limit', String(limit)); } if (typeof offset === 'number') { params.append('offset', String(offset)); } url.search = params.toString(); const fetchUrl = url.toString(); log(`Fetching from URL: ${fetchUrl}`); const response = await fetch(fetchUrl, { method: 'GET', headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json', }, }); log(`Response status: ${response.status}`); if (!response.ok) { const errorText = await response.text(); throw new Error(`Failed to fetch memories: ${response.status} ${response.statusText} - ${errorText}`); } const data = (await response.json()) as MemoriesResponse; log('Data received'); const memories = data.memories || []; return { content: [{ type: 'text', text: JSON.stringify({ memories }) }], }; } catch (error) { log(`Error fetching memories: ${error}`); throw new Error(`Failed to read memories: ${error instanceof Error ? error.message : String(error)}`); } } );
  • TypeScript interface for the Omi API memories response, used to type the parsed JSON.
    export interface MemoriesResponse { memories: Memory[]; }
  • TypeScript interface for individual Memory objects in the response.
    export interface Memory { id: string; content: string; created_at: string; tags: string[]; }

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fourcolors/omi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server