evipedia-mcp-dev 0.1.7 → 0.1.9
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 +19 -19
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -71,15 +71,16 @@ ${r.er_conclusion}` : `**${e.short_topic}** \u2014 ${e.url}`;
|
|
|
71
71
|
}
|
|
72
72
|
);
|
|
73
73
|
server.tool(
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
{
|
|
77
|
-
async (
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
"list_reviews",
|
|
75
|
+
"List every evidence review in the evipedia.ai catalogue. Returns a JSON array of {topic, slug}, where topic is the review's canonical topic and slug is its identifier. Pass a slug directly to get_review or get_conclusion; the full review URL is https://evipedia.ai/{slug} (raw Markdown at https://evipedia.ai/{slug}.md). A bare topic (just the intervention name, e.g. 'Rapamycin') implies the default Health & Longevity goal; a topic with an explicit goal (e.g. 'Botox for Skin Rejuvenation') is a review targeting that specific goal. Use to enumerate or browse the full catalogue; use search_reviews to find specific reviews.",
|
|
76
|
+
{},
|
|
77
|
+
async () => {
|
|
78
|
+
const reviewsIndex = await fetchCached(`${BASE_URL}/reviews.json`);
|
|
79
|
+
const list = reviewsIndex.map((r) => ({
|
|
80
|
+
topic: r.canonical_topic.replace(/ for Health & Longevity$/, ""),
|
|
81
|
+
slug: toSlug(r.permalink)
|
|
82
|
+
}));
|
|
83
|
+
return { content: [{ type: "text", text: JSON.stringify(list) }] };
|
|
83
84
|
}
|
|
84
85
|
);
|
|
85
86
|
server.tool(
|
|
@@ -95,16 +96,15 @@ server.tool(
|
|
|
95
96
|
}
|
|
96
97
|
);
|
|
97
98
|
server.tool(
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
{},
|
|
101
|
-
async () => {
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
return { content: [{ type: "text", text: JSON.stringify(list) }] };
|
|
99
|
+
"get_review",
|
|
100
|
+
"Get the full evidence review as raw Markdown.",
|
|
101
|
+
{ permalink: z.string().describe("Review slug (e.g. 'rapamycin') or full URL") },
|
|
102
|
+
async ({ permalink }) => {
|
|
103
|
+
const slug = toSlug(permalink);
|
|
104
|
+
const res = await fetch(`${BASE_URL}/${slug}.md`);
|
|
105
|
+
if (!res.ok) throw new Error(`Review not found: ${slug}`);
|
|
106
|
+
const text = await res.text();
|
|
107
|
+
return { content: [{ type: "text", text }] };
|
|
108
108
|
}
|
|
109
109
|
);
|
|
110
110
|
server.tool(
|