Skip to main content
Glama

getCalories

Retrieve calorie burn data from Fitbit for specified dates or periods to track energy expenditure and support fitness goals.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoDate in YYYY-MM-DD format. If not specified, will use today.
periodNoPeriod for data: 1d, 7d, 30d, 1w, 1m

Implementation Reference

  • Handler function that constructs Fitbit API endpoint for calories data based on date and period, fetches data using makeApiRequest, and returns formatted JSON response or error.
    async ({ date, period }) => { try { const formattedDate = formatDate(date); let endpoint = ""; if (period) { endpoint = `/user/-/activities/calories/date/${formattedDate}/${period}.json`; } else { endpoint = `/user/-/activities/calories/date/${formattedDate}/1d.json`; } const data = await makeApiRequest(endpoint); return { content: [ { type: "text", text: JSON.stringify( { date: formattedDate, calories: data["activities-calories"] || [], intraday: data["activities-calories-intraday"] || {}, }, null, 2 ), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error: ${ error instanceof Error ? error.message : String(error) }`, }, ], isError: true, }; } }
  • Zod input schema for the getCalories tool defining optional date and period parameters.
    { date: z .string() .optional() .describe("Date in YYYY-MM-DD format. If not specified, will use today."), period: z .string() .optional() .describe("Period for data: 1d, 7d, 30d, 1w, 1m"), },
  • src/server.ts:657-711 (registration)
    Registration of the getCalories tool on the MCP server, including name, input schema, and handler function.
    server.tool( "getCalories", { date: z .string() .optional() .describe("Date in YYYY-MM-DD format. If not specified, will use today."), period: z .string() .optional() .describe("Period for data: 1d, 7d, 30d, 1w, 1m"), }, async ({ date, period }) => { try { const formattedDate = formatDate(date); let endpoint = ""; if (period) { endpoint = `/user/-/activities/calories/date/${formattedDate}/${period}.json`; } else { endpoint = `/user/-/activities/calories/date/${formattedDate}/1d.json`; } const data = await makeApiRequest(endpoint); return { content: [ { type: "text", text: JSON.stringify( { date: formattedDate, calories: data["activities-calories"] || [], intraday: data["activities-calories-intraday"] || {}, }, null, 2 ), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error: ${ error instanceof Error ? error.message : String(error) }`, }, ], isError: true, }; } } );

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/NitayRabi/fitbit-mcp'

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