@ekoindia/eps-transact-mcp 0.1.3 → 0.1.5

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/data/eps.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "meta": {
3
3
  "org": "ekoindia",
4
4
  "apiVersion": "v3",
5
- "bundleVersion": "2f801127",
5
+ "bundleVersion": "9ad793a7",
6
6
  "environments": [
7
7
  {
8
8
  "id": "sandbox",
@@ -200,7 +200,7 @@
200
200
  },
201
201
  {
202
202
  "title": "Verify identity",
203
- "detail": "Submit PAN + bank account to verify your account."
203
+ "detail": "Submit your PAN."
204
204
  },
205
205
  {
206
206
  "title": "Test live",
@@ -239,7 +239,7 @@
239
239
  "summary": "Fetch the DMT-Fino profile of a registered sender by mobile number.",
240
240
  "category": "bc",
241
241
  "relevance": "M",
242
- "description": "The first step in the DMT flow. Call this to check whether a customer is already registered as a DMT sender. If the sender exists, the response returns their profile and remaining transfer limits so you can skip registration. If not found (response_status_id 463), proceed to Onboard Sender.",
242
+ "description": "The first step in the DMT flow. Call this to check whether a customer is already registered as a DMT sender. If the sender exists, the response returns their profile and remaining transfer limits so you can skip registration.\n\nUse `response_type_id` in the response to decide the next step:\n\n| response_type_id | Meaning | Next step |\n| --- | --- | --- |\n| 308 | Sender not found | [dmt-onboard-sender](/docs/dmt-onboard-sender) |\n| 309 | Sender found | [dmt-get-recipients](/docs/dmt-get-recipients) |\n| 2134 | Sender found, Biometric eKYC pending | [dmt-fino-sender-ekyc](/docs/dmt-fino-sender-ekyc) |\n| 2129 | Sender found, Validate eKYC OTP pending | [dmt-fino-validate-ekyc-otp](/docs/dmt-fino-validate-ekyc-otp) |",
243
243
  "bestFor": "Checking sender registration status before starting a DMT transaction.",
244
244
  "docsUrl": "https://eps.eko.in/docs/dmt-get-sender",
245
245
  "headers": [
@@ -323,51 +323,21 @@
323
323
  "description": "API-specific response payload.",
324
324
  "children": [
325
325
  {
326
- "name": "customer_id",
327
- "type": "string",
328
- "description": "Sender's mobile number (echoed back).",
329
- "example": "9123456789"
330
- },
331
- {
332
- "name": "name",
326
+ "name": "sender_name",
333
327
  "type": "string",
334
328
  "description": "Registered name of the sender.",
335
329
  "imp": true,
336
330
  "example": "Ramesh Kumar"
337
331
  },
338
332
  {
339
- "name": "dob",
340
- "type": "string",
341
- "description": "Date of birth in YYYY-MM-DD format.",
342
- "example": "1990-05-15"
343
- },
344
- {
345
- "name": "kyc_verified",
346
- "type": "boolean",
347
- "description": "Whether the sender has completed eKYC verification.",
348
- "example": true
349
- },
350
- {
351
- "name": "available_limit",
333
+ "name": "next_allowed_limit",
352
334
  "type": "number",
353
335
  "description": "Remaining transfer limit for the current month (in INR).",
354
336
  "imp": true,
355
- "example": 25000
337
+ "example": 48000
356
338
  },
357
339
  {
358
- "name": "used_limit",
359
- "type": "number",
360
- "description": "Transfer amount already used this month (in INR).",
361
- "example": 0
362
- },
363
- {
364
- "name": "monthly_limit",
365
- "type": "number",
366
- "description": "Total allowed monthly transfer limit for this sender (in INR).",
367
- "example": 25000
368
- },
369
- {
370
- "name": "state",
340
+ "name": "kyc_state",
371
341
  "type": "number",
372
342
  "description": "Sender account state: 0=Active, 10=Pending verification.",
373
343
  "example": 0
@@ -377,18 +347,22 @@
377
347
  ],
378
348
  "sampleSuccessResponse": {
379
349
  "status": 0,
380
- "response_status_id": 0,
381
- "message": "Customer found",
382
- "response_type_id": 1388,
350
+ "response_type_id": 309,
351
+ "message": "Success!",
352
+ "response_status_id": -1,
383
353
  "data": {
384
- "customer_id": "9123456789",
385
- "name": "Ramesh Kumar",
386
- "dob": "1990-05-15",
387
- "kyc_verified": true,
388
- "available_limit": 25000,
389
- "used_limit": 0,
390
- "monthly_limit": 25000,
391
- "state": 0
354
+ "is_registered": 1,
355
+ "sender_name": "Ramesh Kumar",
356
+ "ekyc_enabled": "1",
357
+ "next_allowed_limit": 48000,
358
+ "kyc_state": 0,
359
+ "customer_profile": {
360
+ "name": "Ramesh Kumar",
361
+ "mobile": "9123456789",
362
+ "total_monthly_limit": "50000",
363
+ "next_allowed_limit": "48000",
364
+ "ekyc_enabled": 1
365
+ }
392
366
  }
393
367
  },
394
368
  "errorScenarios": [
@@ -21588,6 +21562,7 @@
21588
21562
  "recipes": [
21589
21563
  {
21590
21564
  "id": "dmt-send-money",
21565
+ "slug": "dmt-send-money",
21591
21566
  "name": "DMT — Send Money",
21592
21567
  "summary": "Full domestic money transfer flow: look up the sender, onboard them if new, add the recipient, then send an OTP-verified transfer.",
21593
21568
  "productId": "dmt",
@@ -21629,6 +21604,7 @@
21629
21604
  },
21630
21605
  {
21631
21606
  "id": "aeps-cash-withdrawal",
21607
+ "slug": "aeps-cash-withdrawal",
21632
21608
  "name": "AePS — Cash Withdrawal",
21633
21609
  "summary": "Aadhaar-enabled cash withdrawal: one-time agent activation, daily 2FA, then the biometric withdrawal.",
21634
21610
  "productId": "aeps",
@@ -142,6 +142,7 @@ var parseAllowed = (raw) => {
142
142
  return names.length ? new Set(names) : void 0;
143
143
  };
144
144
  var isAllowed = (ctx, toolName) => ctx.allowed === "all" || ctx.allowed.has(toolName);
145
+ var hasCredentials = (ctx) => Boolean(ctx.developerKey && ctx.accessKey);
145
146
 
146
147
  // src/server.ts
147
148
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
@@ -201,6 +202,11 @@ var createTransactServer = (tools, ctx, version) => {
201
202
  code: "UNKNOWN_TOOL",
202
203
  message: `Unknown tool "${req.params.name}".`
203
204
  });
205
+ if (!hasCredentials(ctx))
206
+ return errorResult({
207
+ code: "MISSING_CREDENTIALS",
208
+ message: "Set EKO_DEVELOPER_KEY and EKO_ACCESS_KEY in your environment and restart the agent to run verifications. See the eps-verify skill."
209
+ });
204
210
  if (!isAllowed(ctx, tool.name))
205
211
  return errorResult({
206
212
  code: "TOOL_NOT_ALLOWED",
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  parseAllowed,
7
7
  parseEnvironment,
8
8
  withTimeout
9
- } from "./chunk-XLZLL6DZ.js";
9
+ } from "./chunk-VROHQHWD.js";
10
10
 
11
11
  // src/index.ts
12
12
  import { serve } from "@hono/node-server";
package/dist/stdio.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  parseAllowed,
7
7
  parseEnvironment,
8
8
  withTimeout
9
- } from "./chunk-XLZLL6DZ.js";
9
+ } from "./chunk-VROHQHWD.js";
10
10
 
11
11
  // src/stdio.ts
12
12
  import { createRequire } from "module";
@@ -61,20 +61,19 @@ var { version: OWN_VERSION } = createRequire(import.meta.url)(
61
61
  "../package.json"
62
62
  );
63
63
  var main = async () => {
64
- const developerKey = process.env.EKO_DEVELOPER_KEY;
65
- const accessKey = process.env.EKO_ACCESS_KEY;
64
+ const developerKey = process.env.EKO_DEVELOPER_KEY ?? "";
65
+ const accessKey = process.env.EKO_ACCESS_KEY ?? "";
66
66
  if (!developerKey || !accessKey) {
67
67
  console.error(
68
- "[eps-transact-mcp] EKO_DEVELOPER_KEY and EKO_ACCESS_KEY env vars are required."
68
+ "[eps-transact-mcp] EKO_DEVELOPER_KEY / EKO_ACCESS_KEY not set \u2014 starting anyway; verification calls return MISSING_CREDENTIALS until you set them."
69
69
  );
70
- process.exit(1);
71
70
  }
72
- const environment = parseEnvironment(process.env.EKO_ENV);
71
+ let environment = parseEnvironment(process.env.EKO_ENV);
73
72
  if (!environment) {
74
73
  console.error(
75
- '[eps-transact-mcp] Invalid EKO_ENV. Use "uat" (default) or "production".'
74
+ `[eps-transact-mcp] Invalid EKO_ENV "${process.env.EKO_ENV ?? ""}". Use "uat" (default) or "production". Falling back to uat.`
76
75
  );
77
- process.exit(1);
76
+ environment = "sandbox";
78
77
  }
79
78
  const allowed = parseAllowed(process.env.EKO_ALLOWED_APIS) ?? "all";
80
79
  const { bundle } = await loadBundle();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ekoindia/eps-transact-mcp",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Transactional MCP server for Eko Platform Services (EPS) verification APIs — remote (streamable HTTP) and local (stdio).",
5
5
  "license": "MIT",
6
6
  "type": "module",