UNPKG

limitless-mcp

Version:

MCP server for Limitless API - Connect your Pendant data to Claude and other LLMs

44 lines (43 loc) 1.49 kB
/** * Tools registry for Limitless MCP */ import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; import callLimitlessApi from "../api/client.js"; import { registerCacheTools } from "./cache-tools.js"; import { registerLifelogTools } from "./lifelog-tools.js"; import { registerAnalysisTools } from "./analysis-tools.js"; /** * Register all tools with the MCP server */ export function registerAllTools(server) { // Register tool categories registerCacheTools(server); registerLifelogTools(server); registerAnalysisTools(server); } /** * Register resource endpoints with the MCP server */ export function registerResources(server) { // Register lifelogs resource server.resource("lifelogs", new ResourceTemplate("lifelogs://{id}", { list: async () => { const response = await callLimitlessApi("/lifelogs", { limit: 25 }); const logs = response.data.lifelogs || []; return { resources: logs.map((l) => ({ name: l.title, uri: `lifelogs://${l.id}`, description: l.title })) }; } }), {}, async (uri) => { const id = uri.host; // lifelogs://<id> const response = await callLimitlessApi(`/lifelogs/${id}`); const lifelog = response.data.lifelog; return { contents: [{ uri: uri.href, text: lifelog?.markdown ?? "(empty)" }] }; }); }