@tinyweb_dev/tracking-mcp-server 0.2.0 → 0.3.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,76 @@ All notable changes to `@tinyweb_dev/tracking-mcp-server` will be documented in
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.0] — 2026-05-27
9
+
10
+ ### Breaking
11
+
12
+ - **`project_add_member` now takes `email` instead of `userId`.** The backend
13
+ contract (`AddProjectMemberDto`) was changed earlier to accept an email so
14
+ it can branch:
15
+ - If the email matches an existing org member → the backend inserts a
16
+ `ProjectMember` row immediately and the response is
17
+ `{ status: 'added', member }`.
18
+ - Otherwise → the backend creates an org invitation with this project +
19
+ role pre-attached and the response is `{ status: 'invited', invitation }`
20
+ — no separate `invitation_create` call required.
21
+
22
+ MCP `0.2.1` was still sending the old `{ userId, role }` body, so every
23
+ `project_add_member` call failed with HTTP 400
24
+ `"property userId should not exist; email must be an email"`. Migration:
25
+ replace `userId: "<token>"` with `email: "<user@example.com>"` at every
26
+ call site.
27
+
28
+ ### Changed
29
+
30
+ - `addProjectMemberSchema` now validates `{ email: string().email(), role }`
31
+ (was `{ userId: userIdSchema, role }`).
32
+ - `project_add_member` tool description rewritten to document the
33
+ `added` vs `invited` branching, so agents know they don't need a
34
+ follow-up `invitation_create` call for non-org emails.
35
+ - `README.md` row for `project_add_member` clarifies the by-email semantics.
36
+
37
+ ### Notes
38
+
39
+ - `userIdSchema` / `invitationIdSchema` / `textIdSchema` from `0.2.1` are
40
+ still used for response shapes (`orgMemberSchema.userId`,
41
+ `projectMemberSchema.userId`, `invitationSchema.id`) and for the
42
+ member-mutation tool inputs that still take a `user_id` path param
43
+ (`project_update_member_role`, `project_remove_member`,
44
+ `org_update_member_role`, `org_remove_member`). Only the
45
+ `project_add_member` body changed shape.
46
+
47
+ See task `.manager/tasks/archive/0006-mcp-project-add-member-field-name-mismatch-userid-vs-email.md`.
48
+
49
+ ## [0.2.1] — 2026-05-27
50
+
51
+ ### Fixed
52
+
53
+ - **`project_add_member`, `project_update_member_role`, `project_remove_member`,
54
+ `org_update_member_role`, `org_remove_member` no longer require `user_id` /
55
+ `userId` to be a UUID.** The backend's `user` table uses Better-Auth's text
56
+ PK (e.g. `CQZpWvRcgTq1n8uHBiSz0Kg0NKUcTVzA`), so the previous
57
+ `z.string().uuid()` validation rejected real user IDs returned by
58
+ `org_list_members` and forced agents to fall back to the dashboard UI.
59
+ Schemas now use a new `userIdSchema` (non-empty, ≤128 chars, charset
60
+ `[A-Za-z0-9_-]`) — backward compatible with UUID values.
61
+ - **`invitation_resend`, `invitation_revoke` no longer require
62
+ `invitation_id` to be a UUID.** The backend's `invitation` table also uses
63
+ a Better-Auth text PK. Schemas now use `invitationIdSchema` (same shape as
64
+ `userIdSchema`).
65
+ - **`invitationSchema.id`, `orgMemberSchema.userId`, `projectMemberSchema.userId`,
66
+ `addProjectMemberSchema.userId`** updated to the new non-UUID id schemas so
67
+ response parsing matches request validation. `pendingProjectId` (which
68
+ references a project — UUID PK) remains UUID-validated.
69
+
70
+ ### Added
71
+
72
+ - `userIdSchema`, `invitationIdSchema`, `textIdSchema` exports in
73
+ `src/schemas/common.ts` for member / invitation identifiers stored as
74
+ Better-Auth text PKs.
75
+
76
+ See task `.manager/tasks/archive/0005-update-mcp-tiny-tracking-add-member-supports-non-uuid-user-i.md`.
77
+
8
78
  ## [0.2.0] — 2026-05-27
9
79
 
10
80
  Per-service ingest tokens. Realigns the MCP surface with the backend's new
package/README.md CHANGED
@@ -188,7 +188,7 @@ Tổng **62 tools** chia theo 8 resource groups. Naming convention: `<resource>_
188
188
  | `project_update` | Update project |
189
189
  | `project_delete` | 🔴 Xóa project + monitors + errors (yêu cầu `confirm_name`) |
190
190
  | `project_list_members` | List members + roles |
191
- | `project_add_member` | Thêm user vào project |
191
+ | `project_add_member` | Add user vào project **by email**. Nếu email đã là org member → insert trực tiếp (`status: "added"`); nếu chưa → tự động tạo invitation kèm pending project assignment (`status: "invited"`). |
192
192
  | `project_update_member_role` | Đổi role (admin/editor/viewer) |
193
193
  | `project_remove_member` | 🔴 Remove member |
194
194
 
@@ -323,17 +323,19 @@ Các tool xóa/rotate/revoke đều yêu cầu một field xác nhận matching
323
323
  |---|---|---|
324
324
  | `org_delete` | `confirm_slug` | Org slug |
325
325
  | `project_delete` | `confirm_name` | Project name |
326
- | `project_remove_member` | `confirm_user_id` | User UUID |
326
+ | `project_remove_member` | `confirm_user_id` | User ID (text PK) |
327
327
  | `service_regenerate_api_key` | `confirm_service_id` | Service UUID |
328
328
  | `service_delete` | `confirm_service_id` | Service UUID |
329
329
  | `monitor_delete` | `confirm_name` | Monitor name |
330
330
  | `status_page_delete` | `confirm_slug` | Status page slug |
331
331
  | `status_page_delete_component` | `confirm_component_id` | Component UUID |
332
332
  | `recipient_group_delete` | `confirm_group_id` | Group UUID |
333
- | `invitation_revoke` | `confirm_invitation_id` | Invitation UUID |
334
- | `org_remove_member` | `confirm_user_id` | User UUID |
333
+ | `invitation_revoke` | `confirm_invitation_id` | Invitation ID (text PK) |
334
+ | `org_remove_member` | `confirm_user_id` | User ID (text PK) |
335
335
 
336
- Pattern này đảm bảo agent phải explicitly "repeat back" identifier — phòng case prompt injection hoặc nhầm lẫn UUID.
336
+ Pattern này đảm bảo agent phải explicitly "repeat back" identifier — phòng case prompt injection hoặc nhầm lẫn ID.
337
+
338
+ > **Note**: `user_id` và `invitation_id` là **text identifier** do Better-Auth sinh (ví dụ `CQZpWvRcgTq1n8uHBiSz0Kg0NKUcTVzA`), không phải UUID. Lấy đúng giá trị từ `org_list_members` / `project_list_members` / `invitation_list` và truyền nguyên bản — schema không enforce UUID format cho các field này.
337
339
 
338
340
  ### Secrets
339
341
 
@@ -4,6 +4,27 @@
4
4
  import { z } from 'zod';
5
5
  /** UUIDv4 string used by most NestJS entities. */
6
6
  export declare const idSchema: z.ZodString;
7
+ /**
8
+ * Opaque text identifier used by Better-Auth-managed entities (`user`,
9
+ * `member`, `account`, `invitation`, `session`, `verification`).
10
+ *
11
+ * These tables use `@PrimaryColumn('text')` rather than UUIDs because
12
+ * Better-Auth generates short random tokens (e.g.
13
+ * `CQZpWvRcgTq1n8uHBiSz0Kg0NKUcTVzA`). The schema only enforces
14
+ * "non-empty, reasonably bounded printable string" so the agent can pipe
15
+ * IDs from `org_list_members` / `project_list_members` straight into
16
+ * member-management tools without UUID coercion. See task 0005.
17
+ */
18
+ export declare const textIdSchema: z.ZodString;
19
+ /**
20
+ * User identifier as stored by the backend. Today the `user` table uses a
21
+ * Better-Auth text PK (see `backend/src/entities/user.entity.ts`), so this
22
+ * is an alias for {@link textIdSchema}. Kept as a distinct export so
23
+ * tooling intent ("this field references a user") stays explicit.
24
+ */
25
+ export declare const userIdSchema: z.ZodString;
26
+ /** Invitation identifier (Better-Auth text PK, see `invitation.entity.ts`). */
27
+ export declare const invitationIdSchema: z.ZodString;
7
28
  /** ISO-8601 timestamp string returned by TypeORM. */
8
29
  export declare const isoDateSchema: z.ZodString;
9
30
  /** URL-safe slug (lowercase letters, digits, hyphens). */
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,kDAAkD;AAClD,eAAO,MAAM,QAAQ,aAAoC,CAAC;AAE1D,qDAAqD;AACrD,eAAO,MAAM,aAAa,aAAwC,CAAC;AAEnE,0DAA0D;AAC1D,eAAO,MAAM,UAAU,aAImE,CAAC;AAE3F,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,aAMvB,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,kDAAkD;AAClD,eAAO,MAAM,QAAQ,aAAoC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,aAOtB,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,YAAY,aAIxB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,aAG9B,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,aAAa,aAAwC,CAAC;AAEnE,0DAA0D;AAC1D,eAAO,MAAM,UAAU,aAImE,CAAC;AAE3F,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,aAMvB,CAAC"}
@@ -4,6 +4,34 @@
4
4
  import { z } from 'zod';
5
5
  /** UUIDv4 string used by most NestJS entities. */
6
6
  export const idSchema = z.string().uuid('Must be a UUID');
7
+ /**
8
+ * Opaque text identifier used by Better-Auth-managed entities (`user`,
9
+ * `member`, `account`, `invitation`, `session`, `verification`).
10
+ *
11
+ * These tables use `@PrimaryColumn('text')` rather than UUIDs because
12
+ * Better-Auth generates short random tokens (e.g.
13
+ * `CQZpWvRcgTq1n8uHBiSz0Kg0NKUcTVzA`). The schema only enforces
14
+ * "non-empty, reasonably bounded printable string" so the agent can pipe
15
+ * IDs from `org_list_members` / `project_list_members` straight into
16
+ * member-management tools without UUID coercion. See task 0005.
17
+ */
18
+ export const textIdSchema = z
19
+ .string()
20
+ .min(1, 'Must be a non-empty identifier')
21
+ .max(128, 'Identifier exceeds 128 chars')
22
+ .regex(/^[A-Za-z0-9_-]+$/, 'Identifier may only contain letters, digits, underscore, or hyphen');
23
+ /**
24
+ * User identifier as stored by the backend. Today the `user` table uses a
25
+ * Better-Auth text PK (see `backend/src/entities/user.entity.ts`), so this
26
+ * is an alias for {@link textIdSchema}. Kept as a distinct export so
27
+ * tooling intent ("this field references a user") stays explicit.
28
+ */
29
+ export const userIdSchema = textIdSchema.describe('User identifier as returned by org_list_members / project_list_members. ' +
30
+ 'Accepts the backend\'s text PK (e.g. "CQZpWvRcgTq1n8uHBiSz0Kg0NKUcTVzA"); ' +
31
+ 'not constrained to UUID format.');
32
+ /** Invitation identifier (Better-Auth text PK, see `invitation.entity.ts`). */
33
+ export const invitationIdSchema = textIdSchema.describe('Invitation identifier as returned by invitation_list. Accepts the ' +
34
+ 'backend\'s text PK; not constrained to UUID format.');
7
35
  /** ISO-8601 timestamp string returned by TypeORM. */
8
36
  export const isoDateSchema = z.string().datetime({ offset: true });
9
37
  /** URL-safe slug (lowercase letters, digits, hyphens). */
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,kDAAkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAE1D,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,4BAA4B,EAAE,kDAAkD,CAAC,CAAC;AAE3F,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CAC/E,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CACP,yFAAyF;IACvF,+CAA+C,CAClD,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,kDAAkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;KACxC,GAAG,CAAC,GAAG,EAAE,8BAA8B,CAAC;KACxC,KAAK,CACJ,kBAAkB,EAClB,oEAAoE,CACrE,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAC/C,0EAA0E;IACxE,4EAA4E;IAC5E,iCAAiC,CACpC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CACrD,oEAAoE;IAClE,qDAAqD,CACxD,CAAC;AAEF,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,4BAA4B,EAAE,kDAAkD,CAAC,CAAC;AAE3F,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CAC/E,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CACP,yFAAyF;IACvF,+CAA+C,CAClD,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * - CreateInvitationDto
5
5
  */
6
6
  import { z } from 'zod';
7
- import { idSchema } from './common.js';
7
+ import { idSchema, invitationIdSchema } from './common.js';
8
8
  import { projectRoleSchema } from './project.js';
9
9
  export const invitationRoleSchema = z.enum(['member', 'viewer']);
10
10
  export const invitationStatusSchema = z.enum([
@@ -32,7 +32,7 @@ export const createInvitationSchema = z
32
32
  path: ['pendingProjectId'],
33
33
  });
34
34
  export const invitationSchema = z.object({
35
- id: idSchema,
35
+ id: invitationIdSchema,
36
36
  organizationId: idSchema,
37
37
  email: z.string().email(),
38
38
  role: invitationRoleSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"invitation.js","sourceRoot":"","sources":["../../src/schemas/invitation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;CACZ,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,IAAI,EAAE,oBAAoB;IAC1B,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,gEAAgE;QAC9D,oDAAoD,CACvD;IACD,kBAAkB,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACvD,8EAA8E,CAC/E;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC,qBAAqB,CAAC;KAC7B,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAClE,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,EACpE;IACE,OAAO,EAAE,8DAA8D;IACvE,IAAI,EAAE,CAAC,kBAAkB,CAAC;CAC3B,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,QAAQ;IACZ,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,sBAAsB;IAC9B,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,kBAAkB,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"invitation.js","sourceRoot":"","sources":["../../src/schemas/invitation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;CACZ,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,IAAI,EAAE,oBAAoB;IAC1B,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,gEAAgE;QAC9D,oDAAoD,CACvD;IACD,kBAAkB,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACvD,8EAA8E,CAC/E;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC,qBAAqB,CAAC;KAC7B,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAClE,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,EACpE;IACE,OAAO,EAAE,8DAA8D;IACvE,IAAI,EAAE,CAAC,kBAAkB,CAAC;CAC3B,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,sBAAsB;IAC9B,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,kBAAkB,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * - UpdateMemberRoleDto
6
6
  */
7
7
  import { z } from 'zod';
8
- import { idSchema, slugSchema } from './common.js';
8
+ import { idSchema, slugSchema, userIdSchema } from './common.js';
9
9
  export const orgRoleSchema = z.enum(['owner', 'member', 'viewer']);
10
10
  export const createOrganizationSchema = z.object({
11
11
  name: z.string().min(1).max(100),
@@ -29,7 +29,7 @@ export const organizationSchema = z.object({
29
29
  updatedAt: z.string().optional(),
30
30
  });
31
31
  export const orgMemberSchema = z.object({
32
- userId: idSchema,
32
+ userId: userIdSchema,
33
33
  organizationId: idSchema,
34
34
  role: orgRoleSchema,
35
35
  email: z.string().email().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/schemas/organization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,QAAQ;IACxB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/schemas/organization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,YAAY;IACpB,cAAc,EAAE,QAAQ;IACxB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC"}
@@ -21,15 +21,28 @@ export declare const updateProjectSchema: z.ZodObject<{
21
21
  }, {
22
22
  name?: string | undefined;
23
23
  }>;
24
+ /**
25
+ * Body for `POST /api/projects/:id/members`.
26
+ *
27
+ * The backend branches on the email (`AddProjectMemberDto` in
28
+ * `backend/src/projects/members/dto/add-project-member.dto.ts`):
29
+ * - If the email matches an existing org member → inserts a
30
+ * `ProjectMember` row directly and returns `{ status: 'added', member }`.
31
+ * - Otherwise → creates an org invitation with the pending project
32
+ * assignment attached and returns `{ status: 'invited', invitation }`.
33
+ *
34
+ * The previous `userId` field was removed in MCP `0.3.0` to match this
35
+ * backend contract — see task 0006.
36
+ */
24
37
  export declare const addProjectMemberSchema: z.ZodObject<{
25
- userId: z.ZodString;
38
+ email: z.ZodString;
26
39
  role: z.ZodEnum<["admin", "editor", "viewer"]>;
27
40
  }, "strip", z.ZodTypeAny, {
28
41
  role: "viewer" | "admin" | "editor";
29
- userId: string;
42
+ email: string;
30
43
  }, {
31
44
  role: "viewer" | "admin" | "editor";
32
- userId: string;
45
+ email: string;
33
46
  }>;
34
47
  export declare const updateProjectMemberRoleSchema: z.ZodObject<{
35
48
  role: z.ZodEnum<["admin", "editor", "viewer"]>;
@@ -44,10 +57,10 @@ export declare const projectSchema: z.ZodObject<{
44
57
  name: z.ZodString;
45
58
  /**
46
59
  * Only present on the response from `project_create` — backend returns the
47
- * plaintext key of the auto-provisioned default service exactly once.
60
+ * plaintext key of the auto-provisioned initial service exactly once.
48
61
  */
49
62
  apiKey: z.ZodOptional<z.ZodString>;
50
- defaultServiceId: z.ZodOptional<z.ZodString>;
63
+ initialServiceId: z.ZodOptional<z.ZodString>;
51
64
  apiKeyPrefix: z.ZodOptional<z.ZodString>;
52
65
  createdAt: z.ZodOptional<z.ZodString>;
53
66
  updatedAt: z.ZodOptional<z.ZodString>;
@@ -58,7 +71,7 @@ export declare const projectSchema: z.ZodObject<{
58
71
  createdAt?: string | undefined;
59
72
  updatedAt?: string | undefined;
60
73
  apiKey?: string | undefined;
61
- defaultServiceId?: string | undefined;
74
+ initialServiceId?: string | undefined;
62
75
  apiKeyPrefix?: string | undefined;
63
76
  }, {
64
77
  name: string;
@@ -67,7 +80,7 @@ export declare const projectSchema: z.ZodObject<{
67
80
  createdAt?: string | undefined;
68
81
  updatedAt?: string | undefined;
69
82
  apiKey?: string | undefined;
70
- defaultServiceId?: string | undefined;
83
+ initialServiceId?: string | undefined;
71
84
  apiKeyPrefix?: string | undefined;
72
85
  }>;
73
86
  export declare const projectMemberSchema: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB,0CAAwC,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;IAIxB;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;EAMH,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB,0CAAwC,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;EAWjC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;IAIxB;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;EAMH,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC"}
@@ -5,7 +5,8 @@
5
5
  * - AddProjectMemberDto, UpdateProjectMemberRoleDto
6
6
  */
7
7
  import { z } from 'zod';
8
- import { idSchema } from './common.js';
8
+ import { idSchema, userIdSchema } from './common.js';
9
+ // userIdSchema is still referenced by projectMemberSchema (response shape).
9
10
  export const projectRoleSchema = z.enum(['admin', 'editor', 'viewer']);
10
11
  export const createProjectSchema = z.object({
11
12
  name: z.string().min(1).max(100),
@@ -13,8 +14,27 @@ export const createProjectSchema = z.object({
13
14
  export const updateProjectSchema = z.object({
14
15
  name: z.string().min(1).max(100).optional(),
15
16
  });
17
+ /**
18
+ * Body for `POST /api/projects/:id/members`.
19
+ *
20
+ * The backend branches on the email (`AddProjectMemberDto` in
21
+ * `backend/src/projects/members/dto/add-project-member.dto.ts`):
22
+ * - If the email matches an existing org member → inserts a
23
+ * `ProjectMember` row directly and returns `{ status: 'added', member }`.
24
+ * - Otherwise → creates an org invitation with the pending project
25
+ * assignment attached and returns `{ status: 'invited', invitation }`.
26
+ *
27
+ * The previous `userId` field was removed in MCP `0.3.0` to match this
28
+ * backend contract — see task 0006.
29
+ */
16
30
  export const addProjectMemberSchema = z.object({
17
- userId: idSchema,
31
+ email: z
32
+ .string()
33
+ .email('Must be a valid email address')
34
+ .describe('Email of the user to add. If the email belongs to an existing org ' +
35
+ 'member they are added to the project immediately; otherwise the ' +
36
+ 'backend creates a pending invitation with this project + role ' +
37
+ 'pre-attached (no extra MCP call needed).'),
18
38
  role: projectRoleSchema,
19
39
  });
20
40
  export const updateProjectMemberRoleSchema = z.object({
@@ -26,16 +46,16 @@ export const projectSchema = z.object({
26
46
  name: z.string(),
27
47
  /**
28
48
  * Only present on the response from `project_create` — backend returns the
29
- * plaintext key of the auto-provisioned default service exactly once.
49
+ * plaintext key of the auto-provisioned initial service exactly once.
30
50
  */
31
51
  apiKey: z.string().optional(),
32
- defaultServiceId: idSchema.optional(),
52
+ initialServiceId: idSchema.optional(),
33
53
  apiKeyPrefix: z.string().optional(),
34
54
  createdAt: z.string().optional(),
35
55
  updatedAt: z.string().optional(),
36
56
  });
37
57
  export const projectMemberSchema = z.object({
38
- userId: idSchema,
58
+ userId: userIdSchema,
39
59
  projectId: idSchema,
40
60
  role: projectRoleSchema,
41
61
  email: z.string().email().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,QAAQ;IACZ,cAAc,EAAE,QAAQ;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,4EAA4E;AAE5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,KAAK,CAAC,+BAA+B,CAAC;SACtC,QAAQ,CACP,oEAAoE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,0CAA0C,CAC7C;IACH,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,QAAQ;IACZ,cAAc,EAAE,QAAQ;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { request } from '../http-client.js';
2
2
  import { loadConfig } from '../config.js';
3
3
  import { buildToolResult, requireConfirmation, resolveOrgId, wrapHandler, } from './_helpers.js';
4
- import { createInvitationShape, idSchema } from '../schemas/index.js';
4
+ import { createInvitationShape, idSchema, invitationIdSchema } from '../schemas/index.js';
5
5
  export function registerInvitationTools(server) {
6
6
  const config = loadConfig();
7
7
  /* ---------------- invitation_list ---------------- */
@@ -45,7 +45,7 @@ export function registerInvitationTools(server) {
45
45
  description: 'Regenerate the invitation token and re-send the email. Owner role required.',
46
46
  inputSchema: {
47
47
  org_id: idSchema.optional(),
48
- invitation_id: idSchema,
48
+ invitation_id: invitationIdSchema,
49
49
  },
50
50
  }, wrapHandler('invitation_resend', async ({ org_id, invitation_id }) => {
51
51
  const id = resolveOrgId(org_id, config.TT_DEFAULT_ORG_ID);
@@ -62,8 +62,8 @@ export function registerInvitationTools(server) {
62
62
  'Owner role required. Pass `confirm_invitation_id` matching `invitation_id`.',
63
63
  inputSchema: {
64
64
  org_id: idSchema.optional(),
65
- invitation_id: idSchema,
66
- confirm_invitation_id: idSchema.describe('Repeat invitation_id to confirm revocation.'),
65
+ invitation_id: invitationIdSchema,
66
+ confirm_invitation_id: invitationIdSchema.describe('Repeat invitation_id to confirm revocation.'),
67
67
  },
68
68
  }, wrapHandler('invitation_revoke', async ({ org_id, invitation_id, confirm_invitation_id }) => {
69
69
  const id = resolveOrgId(org_id, config.TT_DEFAULT_ORG_ID);
@@ -1 +1 @@
1
- {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../src/tools/invitations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../src/tools/invitations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/tools/organizations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoMjE"}
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/tools/organizations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuMjE"}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import { request } from '../http-client.js';
3
3
  import { loadConfig } from '../config.js';
4
4
  import { buildToolResult, requireConfirmation, resolveOrgId, wrapHandler, } from './_helpers.js';
5
- import { createOrganizationSchema, updateOrganizationSchema, updateMemberRoleSchema, idSchema, } from '../schemas/index.js';
5
+ import { createOrganizationSchema, updateOrganizationSchema, updateMemberRoleSchema, idSchema, userIdSchema, } from '../schemas/index.js';
6
6
  export function registerOrganizationTools(server) {
7
7
  const config = loadConfig();
8
8
  /* ---------------- org_list ---------------- */
@@ -116,7 +116,8 @@ export function registerOrganizationTools(server) {
116
116
  'Owner role required to call.',
117
117
  inputSchema: {
118
118
  org_id: idSchema.optional(),
119
- user_id: idSchema.describe('Target user UUID'),
119
+ user_id: userIdSchema.describe('Target user identifier (text PK as returned by org_list_members; ' +
120
+ 'not constrained to UUID format).'),
120
121
  ...updateMemberRoleSchema.shape,
121
122
  },
122
123
  }, wrapHandler('org_update_member_role', async (input) => {
@@ -136,8 +137,8 @@ export function registerOrganizationTools(server) {
136
137
  'all org resources (projects, monitors, etc.). Owner role required.',
137
138
  inputSchema: {
138
139
  org_id: idSchema.optional(),
139
- user_id: idSchema,
140
- confirm_user_id: idSchema.describe('Repeat the user_id to confirm removal.'),
140
+ user_id: userIdSchema,
141
+ confirm_user_id: userIdSchema.describe('Repeat the user_id to confirm removal.'),
141
142
  },
142
143
  }, wrapHandler('org_remove_member', async ({ org_id, user_id, confirm_user_id }) => {
143
144
  const id = resolveOrgId(org_id, config.TT_DEFAULT_ORG_ID);
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/tools/organizations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/tools/organizations.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@
15
15
  * NOTE: Project-level API keys were removed in favor of per-service keys.
16
16
  * The `service_*` tools (see `tools/services.ts`) handle key prefix / reveal /
17
17
  * regenerate now. `project_create` still returns a one-off `apiKey` field —
18
- * that is the plaintext key of the auto-provisioned default service.
18
+ * that is the plaintext key of the auto-provisioned initial service (slug
19
+ * `default`), which itself can be renamed / deleted like any other service.
19
20
  */
20
21
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
21
22
  export declare function registerProjectTools(server: McpServer): void;
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+N5D"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuO5D"}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import { request } from '../http-client.js';
3
3
  import { loadConfig } from '../config.js';
4
4
  import { buildToolResult, requireConfirmation, resolveOrgId, wrapHandler, } from './_helpers.js';
5
- import { createProjectSchema, updateProjectSchema, addProjectMemberSchema, updateProjectMemberRoleSchema, idSchema, } from '../schemas/index.js';
5
+ import { createProjectSchema, updateProjectSchema, addProjectMemberSchema, updateProjectMemberRoleSchema, idSchema, userIdSchema, } from '../schemas/index.js';
6
6
  export function registerProjectTools(server) {
7
7
  const config = loadConfig();
8
8
  /* ---------------- project_list ---------------- */
@@ -25,10 +25,12 @@ export function registerProjectTools(server) {
25
25
  server.registerTool('project_create', {
26
26
  title: 'Create project',
27
27
  description: 'Create a new project within an organization. The backend auto-provisions ' +
28
- 'a default service for the project and the response includes that ' +
29
- 'service\'s plaintext `apiKey` (along with `defaultServiceId` and ' +
30
- '`apiKeyPrefix`) exactly once — copy it immediately and configure your ' +
31
- 'SDK with it. Use `service_create` to add more services per runtime.',
28
+ 'an initial service named "Default" for the project and the response ' +
29
+ 'includes that service\'s plaintext `apiKey` (along with ' +
30
+ '`initialServiceId` and `apiKeyPrefix`) exactly once — copy it ' +
31
+ 'immediately and configure your SDK with it. The initial service has ' +
32
+ 'no special flag — it can be renamed / deleted like any other. Use ' +
33
+ '`service_create` to add more services per runtime.',
32
34
  inputSchema: {
33
35
  org_id: idSchema.optional(),
34
36
  ...createProjectSchema.shape,
@@ -115,9 +117,15 @@ export function registerProjectTools(server) {
115
117
  }));
116
118
  /* ---------------- project_add_member ---------------- */
117
119
  server.registerTool('project_add_member', {
118
- title: 'Add project member',
119
- description: 'Add an existing org user to a project with a specific role. ' +
120
- 'Requires project admin role.',
120
+ title: 'Add project member (by email)',
121
+ description: 'Add a user to a project by email. ' +
122
+ 'If the email belongs to an existing org member, the backend inserts ' +
123
+ 'a ProjectMember row directly and the response is ' +
124
+ '`{ status: "added", member }`. If the email does NOT belong to any ' +
125
+ 'org member, the backend creates a pending org invitation with this ' +
126
+ 'project + role pre-attached and the response is ' +
127
+ '`{ status: "invited", invitation }` — no separate `invitation_create` ' +
128
+ 'call needed. Requires project admin role.',
121
129
  inputSchema: {
122
130
  project_id: idSchema,
123
131
  ...addProjectMemberSchema.shape,
@@ -137,7 +145,7 @@ export function registerProjectTools(server) {
137
145
  description: 'Change a member\'s role within a project. Requires project admin role.',
138
146
  inputSchema: {
139
147
  project_id: idSchema,
140
- user_id: idSchema,
148
+ user_id: userIdSchema,
141
149
  ...updateProjectMemberRoleSchema.shape,
142
150
  },
143
151
  }, wrapHandler('project_update_member_role', async (input) => {
@@ -156,8 +164,8 @@ export function registerProjectTools(server) {
156
164
  'loses access to this project. Requires project admin role.',
157
165
  inputSchema: {
158
166
  project_id: idSchema,
159
- user_id: idSchema,
160
- confirm_user_id: idSchema.describe('Repeat user_id to confirm removal.'),
167
+ user_id: userIdSchema,
168
+ confirm_user_id: userIdSchema.describe('Repeat user_id to confirm removal.'),
161
169
  },
162
170
  }, wrapHandler('project_remove_member', async ({ project_id, user_id, confirm_user_id }) => {
163
171
  requireConfirmation(confirm_user_id, user_id, `project member ${user_id}`);
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,6BAA6B,EAC7B,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,oDAAoD;IACpD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,iEAAiE;YACjE,mDAAmD;QACrD,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAU;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,WAAW;SAC7D,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;IAEF,sDAAsD;IACtD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,2EAA2E;YAC3E,mEAAmE;YACnE,mEAAmE;YACnE,wEAAwE;YACxE,qEAAqE;QACvE,WAAW,EAAE;YACX,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;YAC3B,GAAG,mBAAmB,CAAC,KAAK;SAC7B;KACF,EACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAsD,CAAC;QACnF,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAU;YAClC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,WAAW;YAC5D,IAAI;SACL,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACH,CAAC;IAEF,mDAAmD;IACnD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ;SACrB;KACF,EACD,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAU;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,EAAE;SACvD,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACH,CAAC;IAEF,sDAAsD;IACtD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ;YACpB,GAAG,mBAAmB,CAAC,KAAK;SAC7B;KACF,EACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,KAEN,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAU;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,EAAE;YACtD,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACH,CAAC;IAEF,oEAAoE;IACpE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,yEAAyE;YACzE,2EAA2E;YAC3E,oDAAoD;QACtD,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,2CAA2C,CAAC;SACzD;KACF,EACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE;QACnE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAmB;YAC9C,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,EAAE;SACvD,CAAC,CAAC;QACH,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAU;YACrB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,EAAE;SACvD,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC,CACH,CAAC;IAEF,4DAA4D;IAC5D,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,uEAAuE;QACzE,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ;SACrB;KACF,EACD,WAAW,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAU;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,UAAU;SAC/D,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CACH,CAAC;IAEF,0DAA0D;IAC1D,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,8DAA8D;YAC9D,8BAA8B;QAChC,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ;YACpB,GAAG,sBAAsB,CAAC,KAAK;SAChC;KACF,EACD,WAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAChD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,KAEL,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAU;YAClC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,UAAU;YAC9D,IAAI;SACL,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACH,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,wEAAwE;QAC1E,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,QAAQ;YACjB,GAAG,6BAA6B,CAAC,KAAK;SACvC;KACF,EACD,WAAW,CAAC,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACxD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,KAGf,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAU;YAClC,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,YAAY,kBAAkB,CAAC,OAAO,CAAC,EAAE;YAC7F,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACH,CAAC;IAEF,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,2EAA2E;YAC3E,4DAA4D;QAC9D,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,QAAQ;YACjB,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACzE;KACF,EACD,WAAW,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE;QACtF,mBAAmB,CAAC,eAAe,EAAE,OAAO,EAAE,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,CAAU;YACrB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,YAAY,kBAAkB,CAAC,OAAO,CAAC,EAAE;SAC9F,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinyweb_dev/tracking-mcp-server",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "MCP server for Tiny Tracking — lets AI agents manage organizations, projects, monitors, status pages, incidents, errors, and more via REST API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",