MCP Server
Documentation

Integrate Healthy Aging Atlas supplement data into Claude, Cursor, or any MCP-compatible agent. No API key required.

5 toolsNo auth requiredStreamable HTTP
https://healthyagingatlas.com/api/mcp/

Stateless JSON-RPC 2.0 · POST only · No authentication · No rate limits (fair use)

Connect in 3 steps

1

Initialize

Send an initialize request to handshake with the server.

2

List tools

Call tools/list to see all 5 available tools and their schemas.

3

Call a tool

Send tools/call with the tool name and arguments to get data.

Initialize handshake

curl -s -X POST https://healthyagingatlas.com/api/mcp/ \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

Connect your client

Claude.ai / Claude Desktop

  1. 1.Open Claude.ai or Claude Desktop
  2. 2.Go to Settings → Integrations → MCP Servers
  3. 3.Enter server URL: https://healthyagingatlas.com/api/mcp/
  4. 4.Save — the 5 tools appear automatically in your next conversation

Cursor

  1. 1.Open Cursor Settings → Tools & Integrations → MCP
  2. 2.Click "Add MCP Server"
  3. 3.Set URL to: https://healthyagingatlas.com/api/mcp/
  4. 4.Set transport to: Streamable HTTP
  5. 5.Save and reload — tools are available in Agent mode
{ }

Custom integration (curl / SDK)

  1. 1.Send a POST request with Content-Type: application/json
  2. 2.Body must be valid JSON-RPC 2.0: { jsonrpc, id, method, params }
  3. 3.Start with method "initialize", then "tools/list", then "tools/call"
  4. 4.No API key or authentication required

Tool reference

01search_supplements

Search for supplements by name, brand, or ingredient. Returns trust-scored products with affiliate-tagged purchase links.

ParameterTypeRequiredDescription
querystringyesSupplement name, brand, or ingredient (e.g. "magnesium", "NMN", "Life Extension")
goalstringnoHealth goal slug to filter by (e.g. "sleep", "heart-health", "anti-aging")
demographicstringno"general" | "glp1_support" | "menopause" — default: general
limitintegernoMax results 1–20 — default: 5

Example request

curl -s -X POST https://healthyagingatlas.com/api/mcp/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search_supplements",
      "arguments": { "query": "magnesium", "goal": "sleep", "limit": 3 }
    }
  }'
02get_product

Retrieve full details for a specific supplement product: trust score, third-party certifications, pricing, evidence summary, and affiliate link.

ParameterTypeRequiredDescription
product_idstringyesProduct name or brand (e.g. "Thorne Magnesium", "Life Extension NMN")

Example request

curl -s -X POST https://healthyagingatlas.com/api/mcp/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "get_product",
      "arguments": { "product_id": "Thorne Magnesium Bisglycinate" }
    }
  }'
03compare_supplements

Head-to-head comparison of two supplements. Returns key differences, evidence quality, best-for use cases, safety notes, and a verdict.

ParameterTypeRequiredDescription
supplement_astringyesFirst supplement slug (e.g. "magnesium-glycinate", "nmn", "fish-oil")
supplement_bstringyesSecond supplement slug (e.g. "magnesium-citrate", "nr", "krill-oil")

Example request

curl -s -X POST https://healthyagingatlas.com/api/mcp/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "compare_supplements",
      "arguments": { "supplement_a": "nmn", "supplement_b": "nr" }
    }
  }'
04get_price_history

Retrieve 90-day price history and freshness data for a supplement product. Useful for checking whether a price is current.

ParameterTypeRequiredDescription
product_idstringyesProduct name or brand to look up (e.g. "Thorne Magnesium", "Doctor's Best NMN")

Example request

curl -s -X POST https://healthyagingatlas.com/api/mcp/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "get_price_history",
      "arguments": { "product_id": "Thorne Magnesium Bisglycinate" }
    }
  }'
05recommend_for_goal

Get evidence-ranked supplement recommendations for a health goal, with optional budget and demographic filters.

ParameterTypeRequiredDescription
goalstringyesHealth goal slug (e.g. "sleep", "heart-health", "brain-health", "anti-aging")
budget_usdnumbernoMaximum monthly price in USD — filters out higher-priced products
demographicstringno"general" | "glp1_support" | "menopause" — default: general
limitintegernoNumber of recommendations 1–10 — default: 3

Example request

curl -s -X POST https://healthyagingatlas.com/api/mcp/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 5,
    "method": "tools/call",
    "params": {
      "name": "recommend_for_goal",
      "arguments": { "goal": "sleep", "budget_usd": 40, "demographic": "general", "limit": 3 }
    }
  }'

Affiliate links in API responses

Product data returned by this API includes Amazon Associates affiliate links (tag: healthagingat-20). If a user purchases through these links, Healthy Aging Atlas may earn a commission. Rankings are determined by evidence quality and trust scores, not commission rates. See our Affiliate Disclosure and Privacy Policy for details.

Common issues

308 Redirect — requests to /api/mcp redirect to /api/mcp/

Always include the trailing slash in your URL: https://healthyagingatlas.com/api/mcp/ — this site uses trailingSlash: true in Next.js.

405 Method Not Allowed

The MCP endpoint accepts POST requests only. GET, PUT, and DELETE return 405. Ensure your client is sending POST with Content-Type: application/json.

initialize returns an error

The params field must be present (can be an empty object {}). Valid request: {"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}

Tool not found / -32601 error

Check the tool name exactly matches one of: search_supplements, get_product, compare_supplements, get_price_history, recommend_for_goal. Names are case-sensitive.

compare_supplements returns "no comparison data found"

Use supplement slugs (e.g. "magnesium-glycinate", "nmn", "fish-oil"), not full product names. Call search_supplements first to find the correct slug.

CORS error in browser

The endpoint includes Access-Control-Allow-Origin: * headers. If you see a CORS error, ensure your request is POST (not GET) and includes Content-Type: application/json.

Claude Desktop does not show the tools

After adding the MCP server, start a new conversation — tools are not injected into existing sessions. If tools still don't appear, remove and re-add the server, then reload Claude Desktop.

Questions or issues?

For integration support, bug reports, or data corrections, reach out via email.

hello@healthyagingatlas.com

Last updated: April 2026