Ultrahuman
A simple MCP server using the Ultrahuman API to retrieve fitness data from your ring and query information about it from your favorite LLM
claude mcp add --transport stdio monasterolo21-ultrahuman-mcp node /path/to/your/project/dist/main.js \ --env ULTRAHUMAN_AUTH_TOKEN="your_token_here" \ --env ULTRAHUMAN_USER_EMAIL="your_email@example.com"
How to use
This Ultrahuman MCP Server fetches health and fitness metrics from the Ultrahuman API and exposes them as MCP tools that Claude can call. The server is built with TypeScript and runs via Node, serving a tool named ultrahuman_metrics that retrieves data for a specified date. To use it, configure your environment with your Ultrahuman API token and the user email, start the server, and then add the MCP server to Claude Desktop with the appropriate command and environment variables. You can request metrics such as Heart Rate, Sleep data, HRV, Steps, Temperature, Recovery Index, Movement Index, and VO2 Max for a given date by invoking ultrahuman_metrics with a date parameter (YYYY-MM-DD).
Example tool call (date parameter required): { "name": "ultrahuman_metrics", "arguments": { "date": "2025-06-19" } }
When running locally, you typically build the project and run the dist entry point. The recommended workflow is to build with Bun, then run the produced JavaScript through Node. In Claude Desktop, point the server configuration to the built dist/main.js file and supply your credentials in environment variables.
How to install
Prerequisites:
- Node.js and npm or Bun (the project recommends Bun for build and dev workflows)
- Access to Ultrahuman API with an API token and Partner ID (as described in the README)
Install steps:
- Clone the repository
- Install dependencies (using Bun as recommended):
bun install
- Build the project:
bun run build
- Prepare environment variables (ULTRAHUMAN_AUTH_TOKEN and ULTRAHUMAN_USER_EMAIL) and run the server locally to test:
node dist/main.js
- Add the server to Claude Desktop with the correct command and environment variables, for example:
{
"mcpServers": {
"ultrahuman": {
"command": "node",
"args": ["/path/to/your/project/dist/main.js"],
"env": {
"ULTRAHUMAN_AUTH_TOKEN": "your_token_here",
"ULTRAHUMAN_USER_EMAIL": "your_email@example.com"
}
}
}
}
- If you prefer publishing as an npm package, follow the npm publishing steps in the README and configure Claude Desktop with the npx workflow after publishing.
Additional notes
Tips and common considerations:
- Ensure ULTRAHUMAN_AUTH_TOKEN is kept secure and not embedded in public configs.
- The API base URL defaults to https://partner.ultrahuman.com/api/v1; verify network access if you run behind firewalls.
- The ultrahuman_metrics tool requires the target date in YYYY-MM-DD format.
- When building with Bun, dist/main.js is the entry point referenced by Claude Desktop.
- If you alter the build output path or filenames, update the Claude Desktop config accordingly.
- If you encounter authentication errors, double-check that the token and email correspond to the same Ultrahuman account used to obtain the API key.
- For debugging, run the server directly via node dist/main.js and listen on stdio as described in the README.
Related MCP Servers
bitbucket
Bitbucket MCP - A Model Context Protocol (MCP) server for integrating with Bitbucket Cloud and Server APIs
time
⏰ Time MCP Server: Giving LLMs Time Awareness Capabilities
shadcn-ui
MCP server for shadcn/ui component references
advanced-homeassistant
An advanced MCP server for Home Assistant. 🔋 Batteries included.
unity-editor
An MCP server and client for LLMs to interact with Unity Projects
website-publisher
AI Website builder and publisher MCP. Quickly publish and deploy your AI generated code as real website URL. Support html, css, js, python etc.