{
  "markdown": "![Version](https://img.shields.io/badge/Version-0.1.29-green.svg)\n[![Forever Healthy](https://img.shields.io/badge/(c)_2026-Forever_Healthy-573D7D.svg)](https://forever-healthy.org)\n[![npm](https://img.shields.io/badge/npm-evipedia--mcp-cb3837.svg)](https://www.npmjs.com/package/evipedia-mcp)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.forever--healthy%2Fevipedia--mcp-1f6feb.svg)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.forever-healthy/evipedia-mcp)\n![evipedia.ai](./docs/evipedia-header.png)\n\n# Evipedia MCP Server\n\nA small [Model Context Protocol](https://modelcontextprotocol.io) server that lets AI agents query [evipedia.ai](https://evipedia.ai) — our continuously-updated encyclopedia of evidence reviews on health & longevity interventions — and suggest new interventions for review.\n\n\n## Tools\n\n* `search_reviews(query)` → matching reviews (name/synonym/keyword/category), each with its URL and conclusion\n* `list_reviews()` → the full catalogue as `{topic, slug}` pairs (canonical topic + the slug you pass to `get_review`/`get_conclusion`)\n* `list_updates(days?)` → the change feed, newest first: `{title, slug, status, date}` per recently published (`new`) or revised (`updated`) review. With no arguments it returns the last 7 days, capped at 100 entries; pass `days` for a wider window (e.g. `days: 30`)\n* `get_conclusion(slug|url)` → just the review's plain-text conclusion\n* `get_review(slug|url)` → the full review as raw Markdown\n* `get_metadata(slug|url)` → structured medical metadata as JSON — review dates (`datePublished`/`dateModified`/`lastReviewed`, a freshness signal not in the Markdown), the typed `about` entity with alternate names, and an ordered `citation` list with PubMed PMIDs\n\n  The read tools accept either a bare slug (e.g. `rapamycin`) or a full evipedia.ai URL (e.g. `https://evipedia.ai/rapamycin`) — the URL's last path segment is the slug, so a search result's URL can be passed straight through.\n* `suggest_review(intervention, goal?, references?, email?)` → submit a new review for an intervention to evipedia's public suggestion form (the same one at [evipedia.ai/suggest](https://evipedia.ai/suggest))\n* `get_version()` → the running server's package name and version\n\n\n## Install (local or remote)\n\nThe server is published to npm as **[`evipedia-mcp`](https://www.npmjs.com/package/evipedia-mcp)** and runs over stdio via `npx` — no global install needed. It's also listed in the [official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.forever-healthy/evipedia-mcp) as **`io.github.forever-healthy/evipedia-mcp`**, so MCP-aware clients can discover and install it automatically.\n\nClient config: Local MCP (Requires Node.js ≥ 18)\n\n```json\n{\n  \"mcpServers\": {\n    \"evipedia\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"evipedia-mcp\"]\n    }\n  }\n}\n```\n\nFor environments where a local install is not possible or desired, we also provide a hosted MCP server at [`https://mcp.evipedia.ai/`](https://mcp.evipedia.ai/) that can be used over HTTP.\n\nClient config: Remote MCP via HTTP\n\n```json\n{\n  \"mcpServers\": {\n    \"evipedia\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.evipedia.ai/mcp\"\n    }\n  }\n}\n```\n\n\n- **Claude Code** — add to your project's `.mcp.json` (or run `claude mcp add`).\n- **Claude Desktop** — add to `claude_desktop_config.json`.\n- **Cursor** — add to the MCP settings.\n\n\n## Try it\n\nYou can use the bundled **`/demo`** skill to smoke-test the respective connection.\n\nIt walks through the read tools (`get_version`, `search_reviews`, `list_reviews`, `list_updates`, `get_review`, `get_conclusion`, `get_metadata`) against live evipedia.ai data.\n\n\n## Architecture\n\nThe server is a **thin client that only uses evipedia.ai's public endpoints**. It does not depend on the evipedia content repo — the public surfaces are the API by design.\n\n* Fetches live from `https://evipedia.ai` with a small in-process cache (both JSON indexes are tiny)\n* Mostly read-only, no auth required. The one write path is `suggest_review`, which POSTs to evipedia's public suggestion form (Formspree)\n\n\n### Public API Surface\n\nBase URL: `https://evipedia.ai`\n\n| Endpoint | Description |\n|---|---|\n| `GET /reviews.json` | Full catalogue: `canonical_name`, `alternate_names[]`, `permalink`, `permalink_md`, `permalink_meta`, `category`, `creation_date`, `dateModified`, `lastReviewed`, `er_conclusion` |\n| `GET /search.json` | Search index: `short_topic`, `alternate_names`, `ep_keywords`, `ep_category`, `url` |\n| `GET /updates.json` | Change feed, newest first: `title`, `permalink`, `status` (`new`/`updated`), `date` |\n| `GET /{permalink}.md` | Complete review as raw Markdown (frontmatter + full body) |\n| `GET /{permalink}.meta.json` | Flattened medical metadata: `slug`, `topic`, `url`, `datePublished`/`dateModified`/`lastReviewed`, `about` (`type`/`name`/`alternateName`), ordered `citation[]` (`name`, `url`, `pmid?`) |\n| `GET /llms.txt` | Agent/human signpost — includes the stable section anchor list |\n| `GET /sitemap.xml` | Canonical review URLs |\n| `GET /feed.xml` | RSS feed of latest updates |\n",
  "bytes": 5147,
  "sha": "3f70809ce15ed210c7b10bff949ba18e45897f91de187e43613560a678c3307e",
  "repo_slug": "forever-healthy/evipedia-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_forever_healthy_evipedia_mcp_9f5fdb42/readme"
}