limitless-ai-mcp-server
Version:
MCP server for integrating Limitless AI Pendant recordings with AI assistants
194 lines • 8.33 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.toolDefinitions = void 0;
exports.toolDefinitions = [
{
name: 'limitless_get_lifelog_by_id',
description: 'Retrieves a single lifelog or Pendant recording by its specific ID.',
inputSchema: {
type: 'object',
properties: {
lifelog_id: {
type: 'string',
description: 'The unique identifier of the lifelog to retrieve.',
},
includeMarkdown: {
type: ['boolean', 'string'],
default: true,
description: 'Include markdown content in the response.',
},
includeHeadings: {
type: ['boolean', 'string'],
default: true,
description: 'Include headings content in the response.',
},
},
required: ['lifelog_id'],
additionalProperties: false,
},
},
{
name: 'limitless_list_lifelogs_by_date',
description: 'Lists logs/recordings for a specific date. Best for getting raw log data which you can then analyze for summaries, action items, topics, etc.',
inputSchema: {
type: 'object',
properties: {
date: {
type: 'string',
pattern: '^\\d{4}-\\d{2}-\\d{2}$',
description: 'The date to retrieve lifelogs for, in YYYY-MM-DD format.',
},
limit: {
type: ['number', 'string'],
minimum: 1,
maximum: 100,
description: 'Maximum number of lifelogs to return (Max: 100). Fetches in batches from the API if needed.',
},
direction: {
type: 'string',
enum: ['asc', 'desc'],
description: "Sort order ('asc' for oldest first, 'desc' for newest first).",
},
timezone: {
type: 'string',
description: "IANA timezone for date/time parameters (defaults to server's local timezone).",
},
includeMarkdown: {
type: ['boolean', 'string'],
default: true,
description: 'Include markdown content in the response.',
},
includeHeadings: {
type: ['boolean', 'string'],
default: true,
description: 'Include headings content in the response.',
},
},
required: ['date'],
additionalProperties: false,
},
},
{
name: 'limitless_list_lifelogs_by_range',
description: 'Lists logs/recordings within a date/time range. Best for getting raw log data which you can then analyze for summaries, action items, topics, etc.',
inputSchema: {
type: 'object',
properties: {
start: {
type: 'string',
description: 'Start datetime filter (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS).',
},
end: {
type: 'string',
description: 'End datetime filter (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS).',
},
limit: {
type: ['number', 'string'],
minimum: 1,
maximum: 100,
description: 'Maximum number of lifelogs to return (Max: 100). Fetches in batches from the API if needed.',
},
direction: {
type: 'string',
enum: ['asc', 'desc'],
description: "Sort order ('asc' for oldest first, 'desc' for newest first).",
},
timezone: {
type: 'string',
description: "IANA timezone for date/time parameters (defaults to server's local timezone).",
},
includeMarkdown: {
type: ['boolean', 'string'],
default: true,
description: 'Include markdown content in the response.',
},
includeHeadings: {
type: ['boolean', 'string'],
default: true,
description: 'Include headings content in the response.',
},
},
required: ['start', 'end'],
additionalProperties: false,
},
},
{
name: 'limitless_list_recent_lifelogs',
description: 'Lists the most recent logs/recordings (sorted newest first). Best for getting raw log data which you can then analyze for summaries, action items, topics, etc.',
inputSchema: {
type: 'object',
properties: {
limit: {
type: ['number', 'string'],
default: 10,
minimum: 1,
maximum: 100,
description: 'Number of recent lifelogs to retrieve (Max: 100). Defaults to 10.',
},
timezone: {
type: 'string',
description: "IANA timezone for date/time parameters (defaults to server's local timezone).",
},
includeMarkdown: {
type: ['boolean', 'string'],
default: true,
description: 'Include markdown content in the response.',
},
includeHeadings: {
type: ['boolean', 'string'],
default: true,
description: 'Include headings content in the response.',
},
},
additionalProperties: false,
},
},
{
name: 'limitless_search_lifelogs',
description: "Performs a simple text search for specific keywords/phrases within the title and content of *recent* logs/Pendant recordings. Use ONLY for keywords, NOT for concepts like 'action items' or 'summaries'. Searches only recent logs (limited scope).",
inputSchema: {
type: 'object',
properties: {
search_term: {
type: 'string',
description: 'The text to search for within lifelog titles and content.',
},
fetch_limit: {
type: ['number', 'string'],
default: 20,
minimum: 1,
maximum: 100,
description: 'How many *recent* lifelogs to fetch from the API to search within (Default: 20, Max: 100). This defines the scope of the search, NOT the number of results returned.',
},
limit: {
type: ['number', 'string'],
minimum: 1,
maximum: 100,
description: 'Maximum number of lifelogs to return (Max: 100). Fetches in batches from the API if needed.',
},
direction: {
type: 'string',
enum: ['asc', 'desc'],
description: "Sort order ('asc' for oldest first, 'desc' for newest first).",
},
timezone: {
type: 'string',
description: "IANA timezone for date/time parameters (defaults to server's local timezone).",
},
includeMarkdown: {
type: ['boolean', 'string'],
default: true,
description: 'Include markdown content in the response.',
},
includeHeadings: {
type: ['boolean', 'string'],
default: true,
description: 'Include headings content in the response.',
},
},
required: ['search_term'],
additionalProperties: false,
},
},
];
//# sourceMappingURL=definitions.js.map