MCP Server
Documentation
Integrate Healthy Aging Atlas supplement data into Claude, Cursor, or any MCP-compatible agent. No API key required.
https://healthyagingatlas.com/api/mcp/Stateless JSON-RPC 2.0 · POST only · No authentication · No rate limits (fair use)
Connect in 3 steps
Initialize
Send an initialize request to handshake with the server.
List tools
Call tools/list to see all 5 available tools and their schemas.
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.Open Claude.ai or Claude Desktop
- 2.Go to Settings → Integrations → MCP Servers
- 3.Enter server URL: https://healthyagingatlas.com/api/mcp/
- 4.Save — the 5 tools appear automatically in your next conversation
Cursor
- 1.Open Cursor Settings → Tools & Integrations → MCP
- 2.Click "Add MCP Server"
- 3.Set URL to: https://healthyagingatlas.com/api/mcp/
- 4.Set transport to: Streamable HTTP
- 5.Save and reload — tools are available in Agent mode
Custom integration (curl / SDK)
- 1.Send a POST request with Content-Type: application/json
- 2.Body must be valid JSON-RPC 2.0: { jsonrpc, id, method, params }
- 3.Start with method "initialize", then "tools/list", then "tools/call"
- 4.No API key or authentication required
Tool reference
search_supplementsSearch for supplements by name, brand, or ingredient. Returns trust-scored products with affiliate-tagged purchase links.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes | Supplement name, brand, or ingredient (e.g. "magnesium", "NMN", "Life Extension") |
| goal | string | no | Health goal slug to filter by (e.g. "sleep", "heart-health", "anti-aging") |
| demographic | string | no | "general" | "glp1_support" | "menopause" — default: general |
| limit | integer | no | Max 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 }
}
}'get_productRetrieve full details for a specific supplement product: trust score, third-party certifications, pricing, evidence summary, and affiliate link.
| Parameter | Type | Required | Description |
|---|---|---|---|
| product_id | string | yes | Product 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" }
}
}'compare_supplementsHead-to-head comparison of two supplements. Returns key differences, evidence quality, best-for use cases, safety notes, and a verdict.
| Parameter | Type | Required | Description |
|---|---|---|---|
| supplement_a | string | yes | First supplement slug (e.g. "magnesium-glycinate", "nmn", "fish-oil") |
| supplement_b | string | yes | Second 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" }
}
}'get_price_historyRetrieve 90-day price history and freshness data for a supplement product. Useful for checking whether a price is current.
| Parameter | Type | Required | Description |
|---|---|---|---|
| product_id | string | yes | Product 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" }
}
}'recommend_for_goalGet evidence-ranked supplement recommendations for a health goal, with optional budget and demographic filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| goal | string | yes | Health goal slug (e.g. "sleep", "heart-health", "brain-health", "anti-aging") |
| budget_usd | number | no | Maximum monthly price in USD — filters out higher-priced products |
| demographic | string | no | "general" | "glp1_support" | "menopause" — default: general |
| limit | integer | no | Number 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.comLast updated: April 2026