@rekey.dev/mcp 2.0.0-rc.2 → 2.0.0-rc.4

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/README.md CHANGED
@@ -61,19 +61,27 @@ Settings → MCP → Add Server. Same `command` / `args` / `env` shape.
61
61
 
62
62
  ### Claude Code
63
63
 
64
- `.claude/mcp.json` in your repo (same shape). Omit `REKEY_OPERATOR_TOKEN` if you only need read tools, or omit `SUPER_ADMIN_KEY` if the agent only needs the `mint_api_key` write tool.
64
+ Run `claude mcp add` and follow the prompts, or commit a project-scoped
65
+ `.mcp.json` at the repo root (same shape as the Claude Desktop config above).
66
+ Omit `REKEY_OPERATOR_TOKEN` if you only need read tools, or omit
67
+ `SUPER_ADMIN_KEY` if the agent only needs the `mint_api_key` write tool.
65
68
 
66
69
  ## Tools
67
70
 
68
71
  **Read tools** (authenticated with `SUPER_ADMIN_KEY`):
69
72
 
73
+ > Tools marked **paged** take `limit` (1–100, default 50) and `offset`, and return
74
+ > `{ items, page: { total, limit, offset, hasMore } }`. Read `page.hasMore` before
75
+ > concluding you have seen everything — a list that stops at 50 of 90 used to look
76
+ > identical to a complete one.
77
+
70
78
  | Tool | What it does |
71
79
  | --- | --- |
72
- | `list_tenants` | All Tenants in the deployment. |
73
- | `list_applications` | Applications, optionally filtered by `tenantId`. |
80
+ | `list_tenants` | Tenants in the deployment. Paged — `limit`/`offset`, result is `{items, page}`. |
81
+ | `list_applications` | Applications, optionally filtered by `tenantId`. Paged. |
74
82
  | `get_application` | One Application by id (with authConfig + billingConfig — no secrets). |
75
- | `list_plans` | Plans for an Application; `includeInactive` for archived ones. |
76
- | `list_coupons` | Coupons for an Application; `includeInactive` for deactivated ones. |
83
+ | `list_plans` | Plans for an Application; `includeInactive` for archived ones. Paged. |
84
+ | `list_coupons` | Coupons for an Application; `includeInactive` for deactivated ones. Paged. |
77
85
  | `list_api_keys` | Active API keys for an Application — metadata only; the hash is never returned. |
78
86
  | `list_payments` | Recent payments (newest first), filterable by `applicationId` / `status` (`PENDING`/`SUCCEEDED`/`FAILED`/`REFUNDED`), exact-match `q` (payment id / provider payment id / end-user id), `sort` (`createdAt`/`amount`), `order`, `limit` (≤200). Amounts are integers in the smallest currency unit. |
79
87
  | `get_payment_stats_by_app` | Per-application payment health over the last 30 days — succeeded/failed/pending/refunded counts, success rate, SUCCEEDED volume (`volumeCents`). The panel's richer per-app Billing Overview (`MRR`, 12-month series) lives at the **panel-session-only** endpoint `/api/v1/tenant/applications/:id/billing/stats` and is not reachable with this server's credentials. |
package/dist/index.d.ts CHANGED
@@ -18,5 +18,33 @@
18
18
  * closed with `READ_REQUIRES_ADMIN_KEY`. Configure `SUPER_ADMIN_KEY` too to
19
19
  * enable the global read/introspection tools.
20
20
  */
21
- export {};
21
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
22
+ export { tools } from './tools.js';
23
+ export { AdminClient, AdminApiError } from './client.js';
24
+ export { VERSION } from './version.js';
25
+ /**
26
+ * Build the MCP server from the environment, or return the reason it cannot be
27
+ * built.
28
+ *
29
+ * ── Why this is a function, and why nothing runs at module scope ──
30
+ *
31
+ * This package declares `main` / `types` / `exports` like a library, so
32
+ * `import '@rekey.dev/mcp'` is a thing people can do — a test harness listing
33
+ * the tools, a wrapper re-exporting them. It used to read the env and call
34
+ * `process.exit(1)` while the module was still evaluating, which killed the
35
+ * HOST process on a plain import. An importer cannot catch that; there is no
36
+ * try/catch around a module's side effects.
37
+ *
38
+ * So the env check moved behind the entry point (see the bottom of this file).
39
+ * Importing is now inert; only running the `rekey-mcp` bin exits.
40
+ */
41
+ export declare function createServer(env?: NodeJS.ProcessEnv): {
42
+ ok: true;
43
+ server: Server;
44
+ } | {
45
+ ok: false;
46
+ message: string;
47
+ };
48
+ /** Start the stdio server, or exit(1) with the reason. Called only by the bin. */
49
+ export declare function main(): Promise<void>;
22
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAWnE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAC7D;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiIjC;AAED,kFAAkF;AAClF,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAO1C"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@
18
18
  * closed with `READ_REQUIRES_ADMIN_KEY`. Configure `SUPER_ADMIN_KEY` too to
19
19
  * enable the global read/introspection tools.
20
20
  */
21
+ import { pathToFileURL } from 'node:url';
21
22
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
22
23
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
23
24
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
@@ -25,104 +26,142 @@ import { zodToJsonSchema } from './lib/zod-to-json-schema.js';
25
26
  import { AdminClient, AdminApiError } from './client.js';
26
27
  import { tools } from './tools.js';
27
28
  import { VERSION } from './version.js';
28
- const apiUrl = process.env.REKEY_URL ?? '';
29
- const adminKey = process.env.SUPER_ADMIN_KEY ?? '';
30
- // Optional: only required by the `mint_api_key` write tool. Read tools work
31
- // without it. When absent, the write tool fails closed with a clear error.
32
- const operatorToken = process.env.REKEY_OPERATOR_TOKEN ?? '';
33
- if (!apiUrl || (!adminKey && !operatorToken)) {
34
- process.stderr.write(`[rekey-mcp] missing required env: REKEY_URL plus at least one credential ` +
35
- `(SUPER_ADMIN_KEY for read tools and/or REKEY_OPERATOR_TOKEN for the keys:mint write tool).\n` +
36
- `[rekey-mcp] fix: configure these in the MCP client (Claude Desktop config, Cursor MCP settings, …)\n`);
37
- process.exit(1);
38
- }
39
- const client = new AdminClient({
40
- apiUrl,
41
- ...(adminKey ? { adminKey } : {}),
42
- ...(operatorToken ? { operatorToken } : {}),
43
- });
44
- const server = new Server({ name: 'rekey-mcp', version: VERSION }, { capabilities: { tools: {} } });
45
- server.setRequestHandler(ListToolsRequestSchema, () => ({
46
- tools: tools.map((t) => ({
47
- name: t.name,
48
- description: t.description,
49
- inputSchema: zodToJsonSchema(t.inputSchema),
50
- })),
51
- }));
52
- server.setRequestHandler(CallToolRequestSchema, async (req) => {
53
- const tool = tools.find((t) => t.name === req.params.name);
54
- if (!tool) {
55
- return {
56
- content: [
57
- {
58
- type: 'text',
59
- text: JSON.stringify({
60
- error: {
61
- code: 'TOOL_NOT_FOUND',
62
- message: `Unknown tool: ${req.params.name}`,
63
- fix: 'Call list_tools to see what is available.',
64
- },
65
- }, null, 2),
66
- },
67
- ],
68
- isError: true,
69
- };
70
- }
71
- const parsed = tool.inputSchema.safeParse(req.params.arguments ?? {});
72
- if (!parsed.success) {
73
- return {
74
- content: [
75
- {
76
- type: 'text',
77
- text: JSON.stringify({
78
- error: {
79
- code: 'TOOL_ARGS_INVALID',
80
- message: 'Tool arguments failed validation.',
81
- fix: 'Re-call with arguments matching inputSchema. Issues: ' +
82
- parsed.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; '),
83
- },
84
- }, null, 2),
85
- },
86
- ],
87
- isError: true,
88
- };
89
- }
90
- try {
91
- const result = await tool.execute(client, parsed.data);
29
+ export { tools } from './tools.js';
30
+ export { AdminClient, AdminApiError } from './client.js';
31
+ export { VERSION } from './version.js';
32
+ /**
33
+ * Build the MCP server from the environment, or return the reason it cannot be
34
+ * built.
35
+ *
36
+ * ── Why this is a function, and why nothing runs at module scope ──
37
+ *
38
+ * This package declares `main` / `types` / `exports` like a library, so
39
+ * `import '@rekey.dev/mcp'` is a thing people can do — a test harness listing
40
+ * the tools, a wrapper re-exporting them. It used to read the env and call
41
+ * `process.exit(1)` while the module was still evaluating, which killed the
42
+ * HOST process on a plain import. An importer cannot catch that; there is no
43
+ * try/catch around a module's side effects.
44
+ *
45
+ * So the env check moved behind the entry point (see the bottom of this file).
46
+ * Importing is now inert; only running the `rekey-mcp` bin exits.
47
+ */
48
+ export function createServer(env = process.env) {
49
+ const apiUrl = env.REKEY_URL ?? '';
50
+ const adminKey = env.SUPER_ADMIN_KEY ?? '';
51
+ // Optional: only required by the `mint_api_key` write tool. Read tools work
52
+ // without it. When absent, the write tool fails closed with a clear error.
53
+ const operatorToken = env.REKEY_OPERATOR_TOKEN ?? '';
54
+ if (!apiUrl || (!adminKey && !operatorToken)) {
92
55
  return {
93
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
56
+ ok: false,
57
+ message: `[rekey-mcp] missing required env: REKEY_URL plus at least one credential ` +
58
+ `(SUPER_ADMIN_KEY for read tools and/or REKEY_OPERATOR_TOKEN for the keys:mint write tool).\n` +
59
+ `[rekey-mcp] fix: configure these in the MCP client (Claude Desktop config, Cursor MCP settings, …)\n`,
94
60
  };
95
61
  }
96
- catch (err) {
97
- if (err instanceof AdminApiError) {
62
+ const client = new AdminClient({
63
+ apiUrl,
64
+ ...(adminKey ? { adminKey } : {}),
65
+ ...(operatorToken ? { operatorToken } : {}),
66
+ });
67
+ const server = new Server({ name: 'rekey-mcp', version: VERSION }, { capabilities: { tools: {} } });
68
+ server.setRequestHandler(ListToolsRequestSchema, () => ({
69
+ tools: tools.map((t) => ({
70
+ name: t.name,
71
+ description: t.description,
72
+ inputSchema: zodToJsonSchema(t.inputSchema),
73
+ })),
74
+ }));
75
+ server.setRequestHandler(CallToolRequestSchema, async (req) => {
76
+ const tool = tools.find((t) => t.name === req.params.name);
77
+ if (!tool) {
98
78
  return {
99
79
  content: [
100
80
  {
101
81
  type: 'text',
102
82
  text: JSON.stringify({
103
- error: { code: err.code, message: err.message, fix: err.fix, statusCode: err.statusCode },
83
+ error: {
84
+ code: 'TOOL_NOT_FOUND',
85
+ message: `Unknown tool: ${req.params.name}`,
86
+ fix: 'Call list_tools to see what is available.',
87
+ },
104
88
  }, null, 2),
105
89
  },
106
90
  ],
107
91
  isError: true,
108
92
  };
109
93
  }
110
- return {
111
- content: [
112
- {
113
- type: 'text',
114
- text: JSON.stringify({
115
- error: {
116
- code: 'TOOL_EXECUTION_FAILED',
117
- message: err instanceof Error ? err.message : String(err),
94
+ const parsed = tool.inputSchema.safeParse(req.params.arguments ?? {});
95
+ if (!parsed.success) {
96
+ return {
97
+ content: [
98
+ {
99
+ type: 'text',
100
+ text: JSON.stringify({
101
+ error: {
102
+ code: 'TOOL_ARGS_INVALID',
103
+ message: 'Tool arguments failed validation.',
104
+ fix: 'Re-call with arguments matching inputSchema. Issues: ' +
105
+ parsed.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; '),
106
+ },
107
+ }, null, 2),
108
+ },
109
+ ],
110
+ isError: true,
111
+ };
112
+ }
113
+ try {
114
+ const result = await tool.execute(client, parsed.data);
115
+ return {
116
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
117
+ };
118
+ }
119
+ catch (err) {
120
+ if (err instanceof AdminApiError) {
121
+ return {
122
+ content: [
123
+ {
124
+ type: 'text',
125
+ text: JSON.stringify({
126
+ error: { code: err.code, message: err.message, fix: err.fix, statusCode: err.statusCode },
127
+ }, null, 2),
118
128
  },
119
- }, null, 2),
120
- },
121
- ],
122
- isError: true,
123
- };
129
+ ],
130
+ isError: true,
131
+ };
132
+ }
133
+ return {
134
+ content: [
135
+ {
136
+ type: 'text',
137
+ text: JSON.stringify({
138
+ error: {
139
+ code: 'TOOL_EXECUTION_FAILED',
140
+ message: err instanceof Error ? err.message : String(err),
141
+ },
142
+ }, null, 2),
143
+ },
144
+ ],
145
+ isError: true,
146
+ };
147
+ }
148
+ });
149
+ return { ok: true, server };
150
+ }
151
+ /** Start the stdio server, or exit(1) with the reason. Called only by the bin. */
152
+ export async function main() {
153
+ const built = createServer();
154
+ if (!built.ok) {
155
+ process.stderr.write(built.message);
156
+ process.exit(1);
124
157
  }
125
- });
126
- const transport = new StdioServerTransport();
127
- void server.connect(transport);
158
+ await built.server.connect(new StdioServerTransport());
159
+ }
160
+ // Run ONLY when this file is the process entry point (`rekey-mcp`, or
161
+ // `node dist/index.js`). `import '@rekey.dev/mcp'` from another program takes
162
+ // neither branch and has no side effects.
163
+ const entry = process.argv[1];
164
+ if (entry !== undefined && import.meta.url === pathToFileURL(entry).href) {
165
+ void main();
166
+ }
128
167
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvF;AAwDD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAsHtD,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvF;AAwFD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CA0HtD,CAAC"}
package/dist/tools.js CHANGED
@@ -9,8 +9,37 @@
9
9
  * can't mint production keys unless explicitly granted. See AGENTS.md.
10
10
  */
11
11
  import { z } from 'zod';
12
+ /**
13
+ * `limit` / `offset` — accepted by every list endpoint on the admin surface.
14
+ *
15
+ * Merged into each list tool's args so a model can page. Before 2.0.0-rc.3
16
+ * these endpoints returned a bare array with no `total`, so a tool result
17
+ * silently capped at the server default was indistinguishable from a complete
18
+ * one; a model reading "3 applications" had no way to know there were 90.
19
+ */
20
+ const PagingArgs = {
21
+ limit: z
22
+ .number()
23
+ .int()
24
+ .min(1)
25
+ .max(100)
26
+ .optional()
27
+ .describe('Rows per page, 1-100. Default 50.'),
28
+ offset: z.number().int().min(0).optional().describe('Rows to skip (0-based). Default 0.'),
29
+ };
30
+ /** Build `?a=b&…`, dropping undefined values. Returns '' when empty. */
31
+ function query(params) {
32
+ const p = new URLSearchParams();
33
+ for (const [k, v] of Object.entries(params)) {
34
+ if (v !== undefined)
35
+ p.set(k, String(v));
36
+ }
37
+ const s = p.toString();
38
+ return s ? `?${s}` : '';
39
+ }
12
40
  const ListApplicationsArgs = z.object({
13
41
  tenantId: z.string().optional().describe('Optional Tenant id to filter by.'),
42
+ ...PagingArgs,
14
43
  });
15
44
  const GetApplicationArgs = z.object({
16
45
  applicationId: z.string().describe('Application id (cuid).'),
@@ -18,10 +47,12 @@ const GetApplicationArgs = z.object({
18
47
  const ListPlansArgs = z.object({
19
48
  applicationId: z.string().describe('Application id to list plans for.'),
20
49
  includeInactive: z.boolean().optional().describe('If true, include deactivated plans.'),
50
+ ...PagingArgs,
21
51
  });
22
52
  const ListCouponsArgs = z.object({
23
53
  applicationId: z.string().describe('Application id to list coupons for.'),
24
54
  includeInactive: z.boolean().optional(),
55
+ ...PagingArgs,
25
56
  });
26
57
  const ListApiKeysArgs = z.object({
27
58
  applicationId: z.string().describe('Application id to list active API keys for.'),
@@ -38,7 +69,7 @@ const MintApiKeyArgs = z.object({
38
69
  .optional()
39
70
  .describe('Application-key scopes (e.g. ["auth:read"]). Omit for the default ["*"].'),
40
71
  });
41
- const ListTenantsArgs = z.object({});
72
+ const ListTenantsArgs = z.object({ ...PagingArgs });
42
73
  const ListPaymentsArgs = z.object({
43
74
  applicationId: z.string().optional().describe('Filter to one Application id.'),
44
75
  status: z
@@ -57,20 +88,17 @@ const PaymentStatsByAppArgs = z.object({});
57
88
  export const tools = [
58
89
  {
59
90
  name: 'list_tenants',
60
- description: 'List all Tenants. Tenants are the outer multi-tenancy unit (one per Rekey customer). Use this when the user asks "what tenants exist" or to find a tenantId to drill into.',
91
+ description: 'List Tenants. Tenants are the outer multi-tenancy unit (one per Rekey customer). Use this when the user asks "what tenants exist" or to find a tenantId to drill into. ' +
92
+ 'Returns `{items, page}` — check `page.hasMore` / `page.total` before concluding you have seen them all, and pass `offset` for the next window.',
61
93
  inputSchema: ListTenantsArgs,
62
- execute: (c) => c.request('GET', '/api/v1/admin/tenants'),
94
+ execute: (c, args) => c.request('GET', `/api/v1/admin/tenants${query(args)}`),
63
95
  },
64
96
  {
65
97
  name: 'list_applications',
66
- description: 'List Applications, optionally filtered by Tenant. An Application is one project under a Tenant; every domain row in Rekey carries an applicationId. Use this to find the applicationId for subsequent calls.',
98
+ description: 'List Applications, optionally filtered by Tenant. An Application is one project under a Tenant; every domain row in Rekey carries an applicationId. Use this to find the applicationId for subsequent calls. ' +
99
+ 'Returns `{items, page}` — check `page.hasMore` / `page.total` before concluding you have seen them all.',
67
100
  inputSchema: ListApplicationsArgs,
68
- execute: (c, args) => {
69
- const path = args.tenantId
70
- ? `/api/v1/admin/applications?tenantId=${encodeURIComponent(args.tenantId)}`
71
- : '/api/v1/admin/applications';
72
- return c.request('GET', path);
73
- },
101
+ execute: (c, args) => c.request('GET', `/api/v1/admin/applications${query(args)}`),
74
102
  },
75
103
  {
76
104
  name: 'get_application',
@@ -80,15 +108,25 @@ export const tools = [
80
108
  },
81
109
  {
82
110
  name: 'list_plans',
83
- description: 'List Plans for an Application. Amount is always in the smallest currency unit (cents/paise/sen) — never floats.',
111
+ description: 'List Plans for an Application. Amount is always in the smallest currency unit (cents/paise/sen) — never floats. ' +
112
+ 'Returns `{items, page}` — check `page.hasMore` / `page.total`.',
84
113
  inputSchema: ListPlansArgs,
85
- execute: (c, args) => c.request('GET', `/api/v1/admin/applications/${encodeURIComponent(args.applicationId)}/plans${args.includeInactive ? '?includeInactive=true' : ''}`),
114
+ execute: (c, args) => c.request('GET', `/api/v1/admin/applications/${encodeURIComponent(args.applicationId)}/plans${query({
115
+ ...(args.includeInactive ? { includeInactive: true } : {}),
116
+ limit: args.limit,
117
+ offset: args.offset,
118
+ })}`),
86
119
  },
87
120
  {
88
121
  name: 'list_coupons',
89
- description: 'List discount coupons for an Application. PERCENT discounts use basis points (1500 = 15%); AMOUNT discounts use the smallest currency unit.',
122
+ description: 'List discount coupons for an Application. PERCENT discounts use basis points (1500 = 15%); AMOUNT discounts use the smallest currency unit. ' +
123
+ 'Returns `{items, page}` — check `page.hasMore` / `page.total`.',
90
124
  inputSchema: ListCouponsArgs,
91
- execute: (c, args) => c.request('GET', `/api/v1/admin/applications/${encodeURIComponent(args.applicationId)}/coupons${args.includeInactive ? '?includeInactive=true' : ''}`),
125
+ execute: (c, args) => c.request('GET', `/api/v1/admin/applications/${encodeURIComponent(args.applicationId)}/coupons${query({
126
+ ...(args.includeInactive ? { includeInactive: true } : {}),
127
+ limit: args.limit,
128
+ offset: args.offset,
129
+ })}`),
92
130
  },
93
131
  {
94
132
  name: 'list_api_keys',
@@ -117,11 +155,12 @@ export const tools = [
117
155
  if (args.limit !== undefined)
118
156
  p.set('limit', String(args.limit));
119
157
  const qs = p.toString();
120
- // /admin/metrics/payments returns a paginated Page<T> envelope
121
- // ({ items, total, limit, offset }). This tool's contract is a bare
122
- // payments array (bounded by `limit`), so unwrap to `.items`.
123
- const page = await c.request('GET', `/api/v1/admin/metrics/payments${qs ? `?${qs}` : ''}`);
124
- return page.items;
158
+ // /admin/metrics/payments returns the `{items, page}` envelope. This
159
+ // tool's contract is a bare payments array bounded by `limit`, so unwrap
160
+ // to `.items` the pagination metadata lives under `page` since
161
+ // 2.0.0-rc.3 (it used to be flattened next to `items`).
162
+ const result = await c.request('GET', `/api/v1/admin/metrics/payments${qs ? `?${qs}` : ''}`);
163
+ return result.items;
125
164
  },
126
165
  },
127
166
  {
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rekey.dev/mcp",
3
- "version": "2.0.0-rc.2",
3
+ "version": "2.0.0-rc.4",
4
4
  "license": "MIT",
5
5
  "engines": {
6
6
  "node": ">=22.0.0"
@@ -15,8 +15,10 @@
15
15
  "exports": {
16
16
  ".": {
17
17
  "types": "./dist/index.d.ts",
18
- "import": "./dist/index.js"
19
- }
18
+ "import": "./dist/index.js",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./package.json": "./package.json"
20
22
  },
21
23
  "files": [
22
24
  "dist",
@@ -45,6 +47,6 @@
45
47
  "build": "tsc -p tsconfig.json && chmod +x dist/index.js",
46
48
  "typecheck": "tsc -p tsconfig.json --noEmit",
47
49
  "lint": "echo \"(eslint not yet wired)\"",
48
- "test": "vitest run"
50
+ "test": "tsc -p tsconfig.json && vitest run"
49
51
  }
50
52
  }