evipedia-mcp-dev 0.1.28 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -43,7 +43,7 @@ Typical workflow:
|
|
|
43
43
|
1. Discover \u2014 'search_reviews(query)' to find reviews matching an intervention name, synonym, drug class, or category; or 'list_reviews()' to enumerate/browse the entire catalogue as {topic, slug} pairs (topic = canonical topic; slug = the identifier you pass to get_review/get_conclusion, with the full review at https://evipedia.ai/{slug} and raw Markdown at https://evipedia.ai/{slug}.md). A bare topic implies the default Health & Longevity goal; an explicit goal like "Botox for Skin Rejuvenation" targets that goal.
|
|
44
44
|
2. Track changes \u2014 'list_updates(days?)' returns the catalogue's change feed, newest first: which reviews were newly published ('new') or revised ('updated') and when. Use it for recency questions ("what's new on evipedia?", "anything updated this week?"). With no arguments it covers the last 7 days (max 100 entries); pass 'days' for a wider window.
|
|
45
45
|
3. Read \u2014 take a review's slug and call 'get_conclusion(slug)' for the quick evidence-based bottom line, or 'get_review(slug)' for the complete review as Markdown (full methodology, findings, safety, dosing, and references) when the user wants depth or citations. Call 'get_metadata(slug)' for structured JSON metadata not in the Markdown \u2014 review dates (freshness), the typed intervention entity, and a machine-readable citation list with PubMed PMIDs.
|
|
46
|
-
4. Contribute \u2014 if the user wants an intervention reviewed that isn't in the catalogue, '
|
|
46
|
+
4. Contribute \u2014 if the user wants an intervention reviewed that isn't in the catalogue, 'suggest_review(...)' submits it to the evipedia team. Only call this when the user explicitly asks to propose one; it sends real data to the team.
|
|
47
47
|
|
|
48
48
|
'get_version()' reports the running build. Notes: an intervention may have multiple reviews for different goals (distinguished by canonical topic, e.g. "Botox for Skin Rejuvenation"). These are evidence reviews for information, not personalized medical advice \u2014 present conclusions as evidence summaries, not prescriptions.`;
|
|
49
49
|
var lunrCache = null;
|
|
@@ -127,7 +127,7 @@ function createServer() {
|
|
|
127
127
|
);
|
|
128
128
|
server2.tool(
|
|
129
129
|
"list_updates",
|
|
130
|
-
"List recently published or revised evipedia.ai reviews, newest first \u2014 the catalogue's change feed. Returns a JSON array of {title, slug, status, date}, where status is 'new' (first publication) or 'updated' (an existing review revised) and date is YYYY-MM-DD. Called with no arguments it returns the last 7 days
|
|
130
|
+
"List recently published or revised evipedia.ai reviews, newest first \u2014 the catalogue's change feed. Returns a JSON array of {title, slug, status, date}, where status is 'new' (first publication) or 'updated' (an existing review revised) and date is YYYY-MM-DD. Called with no arguments it returns the last 7 days, capped at the 100 most recent entries; pass `days` for a different window (e.g. days: 30) \u2014 an explicit `days` is never capped, so a wide window can return hundreds of entries. The full review is at https://evipedia.ai/{slug}, and get_conclusion/get_review take the slug. Use this for recency ('what's new?'); use list_reviews to enumerate the whole catalogue and search_reviews to find a specific intervention.",
|
|
131
131
|
{
|
|
132
132
|
days: z.number().int().positive().optional().describe("Only include reviews dated on or after (today \u2212 N days), e.g. 7 for the past week. Omit to use the default 7-day window. The catalogue turns over quickly \u2014 a large window returns hundreds of entries.")
|
|
133
133
|
},
|
|
@@ -155,7 +155,7 @@ Default window: the last ${window}${matched.length > list.length ? `, capped at
|
|
|
155
155
|
);
|
|
156
156
|
server2.tool(
|
|
157
157
|
"get_conclusion",
|
|
158
|
-
|
|
158
|
+
`Get just the plain-text conclusion of an evidence review \u2014 the evidence-based bottom line, without the methodology, findings, or references. Prefer this for 'does X work?' questions; use get_review only when the user needs the full evidence, or get_metadata for dates and citations. Takes a slug from search_reviews, list_reviews, or list_updates; a full https://evipedia.ai/{slug} URL is also accepted and normalised to the slug. Read-only, no authentication required; an unknown slug raises "Review not found: {slug}".`,
|
|
159
159
|
{ slug: z.string().describe("Review slug, e.g. 'rapamycin' (a full evipedia.ai URL is also accepted)") },
|
|
160
160
|
async ({ slug }) => {
|
|
161
161
|
const norm = toSlug(slug);
|
|
@@ -167,7 +167,7 @@ Default window: the last ${window}${matched.length > list.length ? `, capped at
|
|
|
167
167
|
);
|
|
168
168
|
server2.tool(
|
|
169
169
|
"get_review",
|
|
170
|
-
|
|
170
|
+
'Get the full evidence review as raw Markdown \u2014 methodology, findings, safety, dosing, and references. Reviews are long (often 10k+ tokens); use get_conclusion when the bottom line is enough, or get_metadata for machine-readable dates and citations. Takes a slug from search_reviews, list_reviews, or list_updates; a full https://evipedia.ai/{slug} URL is also accepted and normalised to the slug. Read-only, no authentication required; an unknown slug raises "Review not found: {slug}".',
|
|
171
171
|
{ slug: z.string().describe("Review slug, e.g. 'rapamycin' (a full evipedia.ai URL is also accepted)") },
|
|
172
172
|
async ({ slug }) => {
|
|
173
173
|
const norm = toSlug(slug);
|
|
@@ -193,8 +193,8 @@ Default window: the last ${window}${matched.length > list.length ? `, capped at
|
|
|
193
193
|
}
|
|
194
194
|
);
|
|
195
195
|
server2.tool(
|
|
196
|
-
"
|
|
197
|
-
"Suggest a new
|
|
196
|
+
"suggest_review",
|
|
197
|
+
"Suggest a new review for evipedia.ai \u2014 propose an intervention the catalogue doesn't cover yet. Submits to evipedia's public suggestion form (the same one at evipedia.ai/suggest). Use only when the user explicitly wants to propose a new review \u2014 this sends a message to the evipedia team. Search first with search_reviews to confirm the catalogue doesn't already cover it. Only `intervention` is required; `goal`, `references`, and `email` are optional and are forwarded verbatim. Returns a plain-text confirmation on success and raises \"Suggestion failed: HTTP {status}\" otherwise. Not idempotent \u2014 calling it twice files two separate suggestions.",
|
|
198
198
|
{
|
|
199
199
|
intervention: z.string().min(1).describe("Name of the intervention to suggest (e.g. 'Urolithin A')"),
|
|
200
200
|
goal: z.string().optional().describe("Optional health or longevity goal the intervention targets"),
|