@ekoindia/eps-context-mcp 0.1.26 → 0.1.28

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 CHANGED
@@ -79,6 +79,18 @@ var listSdks = (bundle) => (bundle.sdks ?? []).map((s) => ({
79
79
  var listSdkLanguages = (bundle) => (bundle.sdks ?? []).map((s) => s.lang);
80
80
  var listSdkSlugs = (bundle) => (bundle.sdks ?? []).map((s) => s.slug);
81
81
  var getSdk = (bundle, language) => (bundle.sdks ?? []).find((s) => s.lang === language || s.slug === language);
82
+ var listFaqTags = (bundle) => [
83
+ ...new Set((bundle.faqs ?? []).flatMap((f) => f.tag ? [f.tag] : []))
84
+ ];
85
+ var getFaqs = (bundle, { tag, query, limit } = {}) => {
86
+ const pool = (bundle.faqs ?? []).filter((f) => !tag || f.tag === tag);
87
+ const terms = (query ?? "").toLowerCase().split(/\s+/).filter(Boolean);
88
+ const ranked = terms.length ? pool.map((f) => {
89
+ const hay = `${f.q} ${f.a}`.toLowerCase();
90
+ return { f, score: terms.filter((t) => hay.includes(t)).length };
91
+ }).filter((s) => s.score > 0).sort((x, y) => y.score - x.score).map((s) => s.f) : pool;
92
+ return limit !== void 0 ? ranked.slice(0, limit) : ranked;
93
+ };
82
94
 
83
95
  // src/auth-debug.ts
84
96
  var MS_DIGITS = 13;
@@ -319,7 +331,8 @@ var json = (value) => ({
319
331
  });
320
332
  var notFound = (message) => ({
321
333
  isError: true,
322
- content: [{ type: "text", text: message }]
334
+ content: [{ type: "text", text: message }],
335
+ _meta: { httpStatus: 404 }
323
336
  });
324
337
  var READ_ONLY = {
325
338
  readOnlyHint: true,
@@ -440,6 +453,22 @@ var createEpsServer = (bundle, source, versionState) => {
440
453
  );
441
454
  }
442
455
  );
456
+ const faqTags = listFaqTags(bundle);
457
+ const faqTagSchema = faqTags.length ? z.enum(faqTags) : z.string();
458
+ server.registerTool(
459
+ "get_faqs",
460
+ {
461
+ title: "Get FAQs",
462
+ description: "EPS FAQs (onboarding, auth, testing, integration, pricing, compliance, support). Answers are markdown with absolute links. Filter by tag and/or rank by query; with neither, all FAQs are returned.",
463
+ inputSchema: {
464
+ tag: faqTagSchema.optional().describe(`One of: ${faqTags.join(", ")}`),
465
+ query: z.string().optional().describe("Free-text question to rank by"),
466
+ limit: limitSchema.describe("Max FAQs to return (default: all)")
467
+ },
468
+ annotations: READ_ONLY
469
+ },
470
+ async ({ tag, query, limit }) => json(getFaqs(bundle, { tag, query, limit }))
471
+ );
443
472
  server.registerTool(
444
473
  "get_signing_snippet",
445
474
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ekoindia/eps-context-mcp",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "Local MCP server giving AI coding agents context for Eko Platform Services (EPS) APIs.",
5
5
  "license": "MIT",
6
6
  "type": "module",