Fitness Tools

Deterministic fitness calculators — TDEE, adaptive TDEE, body fat, 1RM, macros — with consensus.

OtherTypeScriptv0.3.4

Fitness Tools

CI License: MIT npm MCP Registry

📖 Documentation · npm

Use it with your AI right now: add the hosted MCP connector https://fitness-tools-mcp.ajwallacemusic.workers.dev/mcp in claude.ai / ChatGPT settings, install one-click in Cursor or VS Code, or grab the Claude Desktop .mcpb.

Composable, deterministic fitness calculators — BMR/TDEE, body fat, 1RM, macros, activity multiplier, powerlifting attempts, and natural muscular potential. Each calculator runs several published formulas and reports a consensus across them.

This repo ships three separate, independently-usable artifacts:

  • @almostjacked/fitness-tools — the npm library. Validated, self-describing calculators that run natively in the browser and on the server. This is the product.
  • @almostjacked/fitness-tools-api — a reference HTTP server built on the library. It re-exposes the same calculators over HTTP (identical math, identical results) and is inert until you run or host it.
  • @almostjacked/fitness-tools-mcp — an MCP stdio server built on the library. It exposes the same calculators as MCP tools for agents/LLM clients (identical math), runnable with npx @almostjacked/fitness-tools-mcp.

Which one do you want?

You're…UseWhy
Writing JS/TS (browser, Node, edge)@almostjacked/fitness-tools (npm)Runs in-process. Install, import, call. No server, no network.
Calling from another language / curl / a no-code tool@almostjacked/fitness-tools-api (HTTP)Same calculators over HTTP. You run/host it.
Building a remote frontend@almostjacked/fitness-tools-apiSelf-describing catalog + OpenAPI over the wire.
Wiring the calculators into an MCP client / agent@almostjacked/fitness-tools-mcpnpx an MCP stdio server; one tool per calculator.

The API adds a network boundary, not capability. The package works the moment you install it; the server does nothing until it's running.

Documentation

Layout

packages/core   @almostjacked/fitness-tools — the library (the product)
apps/api        @almostjacked/fitness-tools-api  — a reference HTTP server over the library
apps/mcp        @almostjacked/fitness-tools-mcp  — an MCP stdio server over the library

Develop

corepack enable              # pnpm version is pinned in package.json
pnpm install
pnpm -r test                 # core + api + mcp test suites
pnpm -C packages/core build  # build the library
pnpm -C apps/api dev         # run the reference server on :8080

See each package's README — library · reference server.

License

MIT — free, open-source, and usable in commercial products. See LICENSE. Built on published formulas (Mifflin-St Jeor, US Navy, Jackson-Pollock, Epley, Casey Butt, etc.); contributions welcome.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @almostjacked/fitness-tools-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-almostjacked-fitness-tools": {
      "command": "npx",
      "args": [
        "-y",
        "@almostjacked/fitness-tools-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@almostjacked/fitness-tools-mcpnpm

Compatible MCP Clients

Fitness Tools works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More