@selfhost.dev/mcp-server 0.8.0 → 0.9.1

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.
Files changed (44) hide show
  1. package/README.md +188 -20
  2. package/dist/index.js +19 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/tools/alerts.js +83 -12
  5. package/dist/tools/alerts.js.map +1 -1
  6. package/dist/tools/backups.js +184 -16
  7. package/dist/tools/backups.js.map +1 -1
  8. package/dist/tools/billing.js +5 -1
  9. package/dist/tools/billing.js.map +1 -1
  10. package/dist/tools/capacity.d.ts +2 -0
  11. package/dist/tools/capacity.js +253 -0
  12. package/dist/tools/capacity.js.map +1 -0
  13. package/dist/tools/database-users.js +33 -6
  14. package/dist/tools/database-users.js.map +1 -1
  15. package/dist/tools/deployments.js +6 -2
  16. package/dist/tools/deployments.js.map +1 -1
  17. package/dist/tools/instance-logs.d.ts +2 -0
  18. package/dist/tools/instance-logs.js +151 -0
  19. package/dist/tools/instance-logs.js.map +1 -0
  20. package/dist/tools/instances.js +51 -7
  21. package/dist/tools/instances.js.map +1 -1
  22. package/dist/tools/organizations.js +98 -8
  23. package/dist/tools/organizations.js.map +1 -1
  24. package/dist/tools/postgres-tls.d.ts +16 -0
  25. package/dist/tools/postgres-tls.js +64 -0
  26. package/dist/tools/postgres-tls.js.map +1 -0
  27. package/dist/tools/project-activities.d.ts +2 -0
  28. package/dist/tools/project-activities.js +52 -0
  29. package/dist/tools/project-activities.js.map +1 -0
  30. package/dist/tools/project-backups.d.ts +2 -0
  31. package/dist/tools/project-backups.js +159 -0
  32. package/dist/tools/project-backups.js.map +1 -0
  33. package/dist/tools/project-databases.js +26 -2
  34. package/dist/tools/project-databases.js.map +1 -1
  35. package/dist/tools/project-services.js +136 -25
  36. package/dist/tools/project-services.js.map +1 -1
  37. package/dist/tools/projects.js +116 -13
  38. package/dist/tools/projects.js.map +1 -1
  39. package/dist/tools/scaling.js +135 -2
  40. package/dist/tools/scaling.js.map +1 -1
  41. package/dist/tools/webhooks.d.ts +2 -0
  42. package/dist/tools/webhooks.js +195 -0
  43. package/dist/tools/webhooks.js.map +1 -0
  44. package/package.json +3 -2
@@ -0,0 +1,151 @@
1
+ import { z } from "zod";
2
+ import { apiRequest } from "../client.js";
3
+ /**
4
+ * On-demand diagnostics for a managed database instance: engine/operation log
5
+ * output and a query-workload snapshot. No SSH involved - the platform agent on
6
+ * the box runs the fetch and posts the result back.
7
+ *
8
+ * Endpoints:
9
+ * - GET /aws/v1/instances/:pid/logs/sources
10
+ * - POST /aws/v1/instances/:pid/logs (request a fetch)
11
+ * - GET /aws/v1/instances/:pid/logs (last 20 fetches, with output)
12
+ * - POST /aws/v1/instances/:pid/db_stats (request a sample)
13
+ * - GET /aws/v1/instances/:pid/db_stats (last 20 samples, with stats)
14
+ *
15
+ * REQUEST-THEN-READ, not a stream. POST creates a pending fetch and returns it;
16
+ * the agent fills in `output`/`stats` asynchronously and you re-read with the GET.
17
+ * The console additionally has a websocket live-tail, which is not reachable from
18
+ * here - MCP gets snapshots only.
19
+ *
20
+ * Postgres, MySQL and ClickHouse only. Both surfaces need a positive wallet
21
+ * balance, and a POST needs `cloud_instances:update`. Replicas ARE allowed
22
+ * deliberately - a replica's own logs are just as useful.
23
+ *
24
+ * ORG INJECTION IS LEFT ON (no `skipOrgInjection`) because `DbStatsController`
25
+ * looks the instance up as `find_by(pid:, orgs_pid: @current_organization&.pid)`.
26
+ * Without `organization_id` on the request the backend picks a fallback org for
27
+ * the user, and a multi-org caller then gets "Instance not found" for an instance
28
+ * they own. `LogsController` scopes by ownership instead and works either way, but
29
+ * both are kept consistent so the next edit cannot get one of them wrong.
30
+ */
31
+ const LOG_SOURCES_NOTE = "Log sources differ per engine and `list_log_sources` is the only authority - do not guess a name, an unknown one is a 422. Every engine has `engine` (the server's own log) and a `replication` view; Postgres and MySQL add backup/restore logs, and ClickHouse adds separate backup, native-restore, fork and upgrade logs. `replication` is a server-side FILTERED view of the engine log rather than a separate file on Postgres and MySQL, so it is the right source for a replication question and will look like a subset of `engine`.";
32
+ export function registerInstanceLogTools(server) {
33
+ server.tool("list_log_sources", `List the log sources available on a managed database instance. Call this before \`fetch_instance_logs\` - the valid \`log_source\` values are per engine and per instance.
34
+
35
+ ${LOG_SOURCES_NOTE}
36
+
37
+ Returns \`{sources: [{key, label}]}\`. An EMPTY list means the engine does not support log tailing at all (only Postgres, MySQL and ClickHouse do) - it does not mean something went wrong.
38
+
39
+ A 422 saying to top up means the organization's wallet is empty. This endpoint is behind the same balance gate as the fetch itself, so an empty source list and a billing block are different answers: read the message.`, {
40
+ instance_id: z.string().min(1, "Instance PID is required"),
41
+ }, async ({ instance_id }) => {
42
+ const result = await apiRequest(`/aws/v1/instances/${instance_id}/logs/sources`, {
43
+ toolName: "list_log_sources",
44
+ });
45
+ if (!result.success) {
46
+ return { content: [{ type: "text", text: `Failed to list log sources (${result.statusCode}): ${result.message}` }] };
47
+ }
48
+ return { content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }] };
49
+ });
50
+ server.tool("fetch_instance_logs", `Ask the instance for the tail of one of its logs. This is how you actually look at a database that is misbehaving - no SSH needed.
51
+
52
+ TWO STEPS. This POST creates a PENDING fetch and returns immediately; the agent on the box collects the output and posts it back a moment later. Read it with \`list_instance_log_fetches\`. The response here almost never contains the log text.
53
+
54
+ ${LOG_SOURCES_NOTE}
55
+
56
+ \`lines\` defaults to 200 and is clamped to 2000. Output is capped at 1 MB per fetch, so a very chatty log is truncated rather than refused - ask for fewer lines and a specific source if you are hunting something particular.
57
+
58
+ DEDUP AND COOLDOWN, both worth understanding before you loop:
59
+ - A pending fetch for the same source is returned as-is instead of a second one being started. So an immediate repeat call is a no-op, not progress.
60
+ - After a fetch completes or fails there is a ~10s cooldown per (instance, source) and a further request is rate-limited.
61
+ So: request once, wait, then read. Do not poll this endpoint.
62
+
63
+ Requires the instance to be \`running\` or \`provisioned\`, with a registered agent, and \`cloud_instances:update\` (a 403 means the caller's role is too low - reading the result needs only view access). Replicas are fine.`, {
64
+ instance_id: z.string().min(1, "Instance PID is required"),
65
+ log_source: z.string().min(1).describe("A `key` from `list_log_sources` for this instance. Guessing gets a 422."),
66
+ lines: z.number().int().min(1).max(2000).optional().describe("Tail length; defaults to 200, clamped to 2000"),
67
+ }, async ({ instance_id, log_source, lines }) => {
68
+ const body = { log_source };
69
+ if (lines !== undefined)
70
+ body.lines = lines;
71
+ const result = await apiRequest(`/aws/v1/instances/${instance_id}/logs`, {
72
+ method: "POST",
73
+ body,
74
+ toolName: "fetch_instance_logs",
75
+ });
76
+ if (!result.success) {
77
+ return { content: [{ type: "text", text: `Failed to request logs (${result.statusCode}): ${result.message}` }] };
78
+ }
79
+ return {
80
+ content: [
81
+ { type: "text", text: `Log fetch requested for \`${log_source}\`. It is pending - the agent collects the output, then read it with \`list_instance_log_fetches\`. Give it a few seconds; do not re-request, a repeat just returns this same pending fetch.` },
82
+ { type: "text", text: JSON.stringify(result.data, null, 2) },
83
+ ],
84
+ };
85
+ });
86
+ server.tool("list_instance_log_fetches", `Read the results of log fetches on an instance - the last 20, newest first, WITH their output. This is where the log text you asked for with \`fetch_instance_logs\` actually shows up.
87
+
88
+ Each row: \`pid\`, \`log_source\`, \`lines_requested\`, \`status\`, \`output\`, \`error\`, and timestamps.
89
+
90
+ \`status\` is \`pending\` until the agent reports back, then \`completed\` (read \`output\`) or \`failed\` (read \`error\`). A fetch whose agent result was lost is flipped to \`failed\` when you read this endpoint rather than sitting pending forever - so reading is also how a stuck fetch gets cleared.
91
+
92
+ Because the backend keeps the last 20 per instance, previous fetches are already here: check them before requesting a new one, since a recent fetch of the same source may answer the question and avoid the cooldown entirely.
93
+
94
+ Output can be up to 1 MB. Summarise what matters to the user rather than replaying the whole tail.`, {
95
+ instance_id: z.string().min(1, "Instance PID is required"),
96
+ }, async ({ instance_id }) => {
97
+ const result = await apiRequest(`/aws/v1/instances/${instance_id}/logs`, {
98
+ toolName: "list_instance_log_fetches",
99
+ });
100
+ if (!result.success) {
101
+ return { content: [{ type: "text", text: `Failed to read log fetches (${result.statusCode}): ${result.message}` }] };
102
+ }
103
+ return { content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }] };
104
+ });
105
+ server.tool("capture_db_stats", `Take a query-workload snapshot of a database: what it is actually doing right now. Use this for "why is my database slow" before reaching for metrics - metrics say the CPU is busy, this says which queries are making it busy.
106
+
107
+ SAMPLES OVER TIME. The agent reads the engine's cumulative counters twice, \`sample_seconds\` apart, and reports the difference - so the result describes that window, not a single instant. Default 10s, allowed 5 to 60. A longer sample smooths out a spiky workload; a short one catches a burst.
108
+
109
+ Same two-step shape as the logs: this POST returns a PENDING sample, and you read the result with \`list_db_stats\`. Do not poll this endpoint - a pending sample is returned as-is instead of starting a second one, and there is a per-instance cooldown after one finishes.
110
+
111
+ Postgres, MySQL and ClickHouse. NOT available on a ClickHouse keeper-only node (a keeper runs clickhouse-keeper, not clickhouse-server, so there is no query log to sample) - that is a 422 and the answer is to target a data node instead. Instance must be \`running\` or \`provisioned\` with a registered agent, and this needs \`cloud_instances:update\`.`, {
112
+ instance_id: z.string().min(1, "Instance PID is required"),
113
+ sample_seconds: z.number().int().min(5).max(60).optional().describe("Sampling window in seconds; default 10, clamped to 5-60"),
114
+ }, async ({ instance_id, sample_seconds }) => {
115
+ const body = {};
116
+ if (sample_seconds !== undefined)
117
+ body.sample_seconds = sample_seconds;
118
+ const result = await apiRequest(`/aws/v1/instances/${instance_id}/db_stats`, {
119
+ method: "POST",
120
+ body,
121
+ toolName: "capture_db_stats",
122
+ });
123
+ if (!result.success) {
124
+ return { content: [{ type: "text", text: `Failed to request query stats (${result.statusCode}): ${result.message}` }] };
125
+ }
126
+ return {
127
+ content: [
128
+ { type: "text", text: `Query-stats sample requested over ${sample_seconds ?? 10}s. It is pending - wait for the window to pass plus a moment, then read it with \`list_db_stats\`.` },
129
+ { type: "text", text: JSON.stringify(result.data, null, 2) },
130
+ ],
131
+ };
132
+ });
133
+ server.tool("list_db_stats", `Read query-workload samples for an instance - the last 20, newest first, with their results. This is where a \`capture_db_stats\` sample lands.
134
+
135
+ Each row: \`pid\`, \`sample_seconds\`, \`status\`, \`stats\`, \`error\`, and timestamps. \`status\` is \`pending\` until the agent reports, then \`completed\` (read \`stats\`) or \`failed\` (read \`error\`).
136
+
137
+ Check here first: a recent sample may already answer the question, and reusing it avoids both the sampling wait and the cooldown.
138
+
139
+ Remember what the numbers are - a delta over the sample window, not lifetime totals - so "queries per second" figures are for that window only and a quiet moment will understate a workload the user is complaining about. If the numbers look implausibly calm, take a longer sample while the problem is happening rather than concluding the database is fine.`, {
140
+ instance_id: z.string().min(1, "Instance PID is required"),
141
+ }, async ({ instance_id }) => {
142
+ const result = await apiRequest(`/aws/v1/instances/${instance_id}/db_stats`, {
143
+ toolName: "list_db_stats",
144
+ });
145
+ if (!result.success) {
146
+ return { content: [{ type: "text", text: `Failed to read query stats (${result.statusCode}): ${result.message}` }] };
147
+ }
148
+ return { content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }] };
149
+ });
150
+ }
151
+ //# sourceMappingURL=instance-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-logs.js","sourceRoot":"","sources":["../../src/tools/instance-logs.ts"],"names":[],"mappings":"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"}
@@ -288,7 +288,17 @@ platform fee on top.
288
288
  Pass type_of_dbms whenever you know the engine. ClickHouse prices differently: with
289
289
  replica_count=1 the platform provisions a third, keeper-only node (${CLICKHOUSE_KEEPER_INSTANCE_TYPE} + ${CLICKHOUSE_KEEPER_STORAGE_GB} GB) to hold
290
290
  the Raft quorum, and this tool only includes it when it knows the engine. Leave the engine
291
- out for a ClickHouse cluster and the estimate understates the real bill.`, {
291
+ out for a ClickHouse cluster and the estimate understates the real bill.
292
+
293
+ CLICKHOUSE ESTIMATES RUN LOW EVEN WITH THE ENGINE PASSED, and the keeper node is not the
294
+ reason. The estimate endpoint applies ONE flat platform margin to every engine, while
295
+ billing applies the real per-engine margin - and ClickHouse's is higher than the flat one.
296
+ So a ClickHouse estimate lands roughly 10% below what the instance will actually bill. Present
297
+ it as an approximate floor for ClickHouse, not the figure the user will be charged. Every
298
+ other AWS engine estimates at its true margin and needs no such caveat.
299
+
300
+ THIS IS AWS ONLY. It cannot price a PaaS project server - those are Hetzner machines on a
301
+ different margin entirely. Use \`list_server_types\`, which returns real per-location prices.`, {
292
302
  region: z.string().min(1, "AWS region is required (e.g. us-east-1)"),
293
303
  instance_type: z.string().min(1, "EC2 instance type (e.g. t4g.small)"),
294
304
  storage_type: z.enum(["gp3", "gp2", "io2", "io1", "st1", "sc1"]).describe("EBS volume type"),
@@ -632,7 +642,13 @@ POSTGRES EXTENSIONS (neither is a separate engine - both are postgres + a flag):
632
642
  }
633
643
  return { content: [{ type: "text", text: lines.join("\n") }] };
634
644
  });
635
- server.tool("list_instances", "List all database instances for an organization, grouped by group_id (master + replicas).", {
645
+ server.tool("list_instances", `List all database instances for an organization, grouped by \`group_id\` (master + replicas).
646
+
647
+ POLL \`ready\`, NOT \`status\`. Each instance carries a server-computed \`ready\` boolean, a \`ha_ready\` for the group, and a \`readiness_detail\` hash explaining a false. That exists precisely so a caller stops guessing across \`status\`, \`internal_status\`, \`provisioning_state\` and replica health - a \`running\` instance is NOT necessarily usable. Answer "is my database up?" from \`ready\`.
648
+
649
+ \`ha_ready\` is the one to check before telling a user their cluster is highly available: it is true only when the master is ready AND every live replica's replication link is healthy, so it goes false on a quietly degraded cluster whose master still looks fine.
650
+
651
+ \`deprecated_at\` on an instance means its machine type is being retired. It keeps working, but flag it - a user planning capacity should know before the deadline rather than after.`, {
636
652
  organization_id: z.string().optional().describe("Organization PID (defaults to active org)"),
637
653
  }, async ({ organization_id }) => {
638
654
  const orgId = resolveOrgId(organization_id);
@@ -649,7 +665,15 @@ POSTGRES EXTENSIONS (neither is a separate engine - both are postgres + a flag):
649
665
  }
650
666
  return { content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }] };
651
667
  });
652
- server.tool("get_instance", "Get detailed information about a specific database instance including latest metrics.", {
668
+ server.tool("get_instance", `Get detailed information about a specific database instance, including its latest metrics.
669
+
670
+ READINESS IS ONE FIELD. \`ready\` is computed server-side and is the field to trust: for a master or single node it means running, provisioning complete, no error, and the agent healthy; for a replica it means running, complete, and the replication LINK healthy (a small lag is fine - only a broken link blocks readiness). \`readiness_detail\` says which of those failed. Do not reassemble this from \`status\` and \`internal_status\`; a \`running\` instance can be unusable.
671
+
672
+ \`ha_ready\` covers the whole group: master ready and every alive HA replica link-healthy.
673
+
674
+ If an instance has been provisioning for more than about 15 minutes it is considered STUCK rather than slow - say so instead of advising the user to keep waiting.
675
+
676
+ \`deprecated_at\`, when set, marks the machine type as scheduled for retirement. Worth surfacing unprompted.`, {
653
677
  pid: z.string().optional().describe("Instance PID (e.g. awsinst_xxx)"),
654
678
  instance_id: z.string().optional().describe("AWS EC2 instance ID (alternative to pid)"),
655
679
  snapshot_id: z.string().optional().describe("Snapshot ID (to get original instance context for restore)"),
@@ -684,9 +708,11 @@ Metric sets (same names alert rules use):
684
708
  - system: cpu_percent, memory_percent, disk_usage_percent, load_avg_1/5/15, swap_usage_percent, cpu_io_wait_percent
685
709
  - network: recv_bytes_per_sec, sent_bytes_per_sec
686
710
  - storage: disk_used_percent, disk_free_bytes, inodes_used_percent, read/write_io_per_second, ... reported PER MOUNT POINT and keyed \`storage[/mount]\` in the summary. Read the engine's data volume (e.g. \`storage[/selfhostdev/postgresql]\`), not \`storage[/]\` or \`storage[/boot]\` - a full /boot says nothing about database capacity.
687
- - <engine>.database: postgresql.database | mysql.database | redis.database | clickhouse.database - the engine's own counters
711
+ - <engine>.database: postgresql.database | mysql.database | redis.database | clickhouse.database - the engine's own counters. \`create_alert_rule\` carries the complete per-engine allow-list; these are the same names.
688
712
  - pgbouncer.stats appears once pooling is enabled. It is READABLE here but NOT alertable - the alert-rule catalog has no such metric_type, so a rule on it is rejected.
689
713
 
714
+ On a replicated instance \`active_replica_count\` is the one to watch for a quietly-degraded cluster: it drops without the instance's own status changing. Ratio metrics (\`cache_hit_ratio\`, \`innodb_buffer_pool_hit_ratio\`, \`mark_cache_hit_ratio\`) are already on a 0-100 scale - do not multiply them by 100.
715
+
690
716
  An empty result usually means the agent has not reported in that window (a stopped instance, or one still provisioning), not that the instance is idle.`, {
691
717
  organization_id: z.string().optional().describe("Organization PID (defaults to active org)"),
692
718
  instance_pid: z.string().optional().describe("Limit to one instance (awsinst_...). Omit for every instance in the org."),
@@ -831,7 +857,13 @@ snapshot first (create_snapshot) - that is the rollback path if the upgrade goes
831
857
  ],
832
858
  };
833
859
  });
834
- server.tool("stop_instance", "DESTRUCTIVE: Stop one or more running database instances. Databases will become unavailable. Cannot stop replicas independently - stop the master to stop all. You MUST set confirm=true to proceed.", {
860
+ server.tool("stop_instance", `DESTRUCTIVE: Stop one or more running database instances. Databases become unavailable. A replica cannot be stopped on its own - stop the master and the group goes with it.
861
+
862
+ STOPPING DOES NOT STOP THE BILL, and this is the most common wrong assumption to correct. Compute stops accruing, but everything that still physically exists keeps being charged: the EBS volumes, snapshots, and S3-backed storage including PITR WAL. A stopped instance is cheaper, not free. If the user's goal is to stop paying, the answer is \`delete_instance\` (and deleting snapshots separately) - say so rather than letting them believe a stop achieved it.
863
+
864
+ A final charge is issued at the moment of the stop, closing the window since the last billing run, so the next invoice includes usage right up to the transition.
865
+
866
+ You MUST set confirm=true to proceed.`, {
835
867
  pids: z.array(z.string().min(1)).min(1, "At least one instance PID is required"),
836
868
  confirm: z.boolean().describe("Must be true to proceed. Ask the user for explicit confirmation before setting this."),
837
869
  }, async ({ pids, confirm }) => {
@@ -852,9 +884,16 @@ snapshot first (create_snapshot) - that is the rollback path if the upgrade goes
852
884
  if (!result.success) {
853
885
  return { content: [{ type: "text", text: `Failed to stop instance(s) (${result.statusCode}): ${result.message}` }] };
854
886
  }
855
- return { content: [{ type: "text", text: `Instance(s) ${pids.join(", ")} stopping.` }] };
887
+ return {
888
+ content: [{
889
+ type: "text",
890
+ text: `Instance(s) ${pids.join(", ")} stopping. Compute stops billing; storage that still exists (volumes, snapshots, PITR WAL) keeps accruing, so this reduces the bill rather than ending it.`,
891
+ }],
892
+ };
856
893
  });
857
- server.tool("start_instance", "Start one or more stopped database instances. Cannot start replicas independently.", {
894
+ server.tool("start_instance", `Start one or more stopped database instances. A replica cannot be started on its own.
895
+
896
+ Compute resumes billing from the moment it starts. If the wallet is empty this can fail on the balance gate - check \`get_wallet_balance\` first when a start is refused rather than retrying.`, {
858
897
  pids: z.array(z.string().min(1)).min(1, "At least one instance PID is required"),
859
898
  }, async ({ pids }) => {
860
899
  const result = await apiRequest("/aws/v1/instances/start", {
@@ -893,6 +932,11 @@ snapshot first (create_snapshot) - that is the rollback path if the upgrade goes
893
932
  });
894
933
  server.tool("delete_instance", `DESTRUCTIVE: Delete one or more database instances. This action is irreversible.
895
934
  Delete protection must be disabled first. Master deletion must include all replicas.
935
+
936
+ A final charge is issued at deletion for usage since the last billing run, so a small charge after deleting is correct, not a bug.
937
+
938
+ WHAT SURVIVES THE DELETE AND KEEPS BILLING: snapshots and other backup storage are separate resources and are NOT removed with the instance. If the user is deleting in order to stop paying, check \`list_snapshots\` and \`list_backups\` too - otherwise they will delete the database and keep the storage bill.
939
+
896
940
  You MUST set confirm=true to proceed. Before calling this tool, always ask the user to confirm they want to delete these specific instances.`, {
897
941
  pids: z.array(z.string().min(1)).min(1, "At least one instance PID is required"),
898
942
  confirm: z.boolean().describe("Must be true to proceed. Ask the user for explicit confirmation before setting this."),
@@ -1 +1 @@
1
- {"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/tools/instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/tools/instances.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,33 @@ import { session } from "../session.js";
5
5
  function resolveOrgId(organization_id) {
6
6
  return organization_id || session.getActiveOrgId();
7
7
  }
8
+ /**
9
+ * The five organization roles. `pid` values are seeded literals (`db/seeds.rb`),
10
+ * shared across every org and stable, which is why they can be named here.
11
+ *
12
+ * They have to be: the API takes `role_pid`, but NOTHING returns the full role
13
+ * catalogue. `list_members` gives each member's role as a SLUG only, and
14
+ * `get_my_memberships` gives a pid only for the caller's own role. Without this
15
+ * table an agent cannot name a role it is not already holding.
16
+ *
17
+ * `priority` is what the backend's authorization compares, so it is the number
18
+ * that decides whether a caller may grant or change a given role.
19
+ */
20
+ const ROLES = {
21
+ owner: { pid: "role_owner", name: "Owner", priority: 100, summary: "Full control, including billing and deleting the org" },
22
+ admin: { pid: "role_admin", name: "Admin", priority: 80, summary: "Manages members, settings, projects, instances and alerts; reads billing" },
23
+ billing: { pid: "role_billing", name: "Billing", priority: 60, summary: "Billing and payment management" },
24
+ manager: { pid: "role_manager", name: "Manager", priority: 40, summary: "Operates resources without member or billing control" },
25
+ member: { pid: "role_member", name: "Member", priority: 20, summary: "Day-to-day access, no administrative control" },
26
+ };
27
+ const ROLE_SLUGS = ["owner", "admin", "billing", "manager", "member"];
28
+ /** Rendered into the tool descriptions so the model sees the ladder, not just names. */
29
+ const ROLE_LADDER = ROLE_SLUGS.map((r) => `\`${r}\` ${ROLES[r].name} (priority ${ROLES[r].priority}) - ${ROLES[r].summary}`).join("; ");
30
+ /**
31
+ * The rule the backend applies to both role changes and member removal. Stated in
32
+ * full because a caller who trips it gets a 422 that reads like a bug otherwise.
33
+ */
34
+ const ROLE_AUTHORITY_RULE = "AUTHORITY: an owner may manage everyone. An admin may only manage STRICTLY BELOW their own priority - never a peer admin, and never grant a role at or above their own. You can never change your OWN role (self-demotion would lock you out, self-promotion would be an escalation); an owner stepping down has to be demoted by another owner. The last owner cannot be demoted or removed.";
8
35
  export function registerOrganizationTools(server) {
9
36
  server.tool("list_organizations", "List all organizations you belong to", {}, async () => {
10
37
  const result = await apiRequest("/organizations", {
@@ -122,7 +149,11 @@ export function registerOrganizationTools(server) {
122
149
  }
123
150
  return { content: [{ type: "text", text: `Organization ${orgId} deleted.` }] };
124
151
  });
125
- server.tool("list_members", "List members of an organization with their roles", {
152
+ server.tool("list_members", `List members of an organization with their roles. Each row carries the user pid (as \`id\`), email, name, \`last_active_at\`, \`joined_at\` and \`role\`.
153
+
154
+ \`role\` is a SLUG, not a pid: one of ${ROLE_SLUGS.map((r) => `\`${r}\``).join(", ")}. \`update_member_role\` takes the slug too, so you can pass what you read here straight through.
155
+
156
+ The ladder, highest first: ${ROLE_LADDER}.`, {
126
157
  organization_id: z.string().optional().describe("Organization PID (defaults to active org)"),
127
158
  }, async ({ organization_id }) => {
128
159
  const orgId = resolveOrgId(organization_id);
@@ -138,9 +169,15 @@ export function registerOrganizationTools(server) {
138
169
  }
139
170
  return { content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }] };
140
171
  });
141
- server.tool("remove_member", "DESTRUCTIVE: Remove a member from an organization (requires owner or admin role). Cannot remove the last owner. You MUST set confirm=true to proceed.", {
172
+ server.tool("remove_member", `DESTRUCTIVE: Remove a member from an organization. They lose access immediately.
173
+
174
+ ${ROLE_AUTHORITY_RULE} The same strict-priority rule applies here as to \`update_member_role\`, deliberately - otherwise an admin blocked from demoting a peer could just remove them instead. Removing YOURSELF (leaving the org) is allowed.
175
+
176
+ If the intent is to reduce someone's access rather than end it, \`update_member_role\` is the tool - offer that first.
177
+
178
+ You MUST set confirm=true to proceed.`, {
142
179
  organization_id: z.string().optional().describe("Organization PID (defaults to active org)"),
143
- user_id: z.string().min(1, "User PID is required"),
180
+ user_id: z.string().min(1, "User PID is required").describe("The member's user pid - the `id` field from `list_members`"),
144
181
  confirm: z.boolean().describe("Must be true to proceed. Ask the user for explicit confirmation before setting this."),
145
182
  }, async ({ organization_id, user_id, confirm }) => {
146
183
  const orgId = resolveOrgId(organization_id);
@@ -165,27 +202,80 @@ export function registerOrganizationTools(server) {
165
202
  }
166
203
  return { content: [{ type: "text", text: `Member ${user_id} removed from organization.` }] };
167
204
  });
168
- server.tool("invite_to_org", "Invite a user to your organization by email. Requires members:invite permission. Role hierarchy is enforced (can only invite at or below your role).", {
205
+ server.tool("invite_to_org", `Invite a user to your organization by email, at a role you choose.
206
+
207
+ Pass \`role\` as a slug - ${ROLE_SLUGS.map((r) => `\`${r}\``).join(", ")} - and this resolves it to the pid the API wants. (\`role_pid\` is still accepted for a role this tool does not know about, but you should not normally need it.)
208
+
209
+ The ladder: ${ROLE_LADDER}.
210
+
211
+ ${ROLE_AUTHORITY_RULE}
212
+
213
+ Requires \`members:invite\`. The invitee gets an email with a token; the membership does not exist until they accept, so they will not show in \`list_members\` yet - track them with \`list_org_invitations\`.`, {
169
214
  organization_id: z.string().optional().describe("Organization PID (defaults to active org)"),
170
215
  email: z.string().email("Valid email is required"),
171
- role_pid: z.string().min(1, "Role PID is required (e.g. role PID for member, admin, etc.)"),
172
- }, async ({ organization_id, email, role_pid }) => {
216
+ role: z.enum(ROLE_SLUGS).optional().describe("Role to invite at, by slug. Resolved to the backend's role pid for you. Prefer this over role_pid."),
217
+ role_pid: z.string().min(1).optional().describe("Escape hatch: pass a raw role pid instead of `role`. Only needed for a role this tool does not list."),
218
+ }, async ({ organization_id, email, role, role_pid }) => {
173
219
  const orgId = resolveOrgId(organization_id);
174
220
  if (!orgId) {
175
221
  return { content: [{ type: "text", text: "No organization selected. Call `select_organization` first or pass an organization_id." }] };
176
222
  }
223
+ const resolvedPid = role ? ROLES[role].pid : role_pid;
224
+ if (!resolvedPid) {
225
+ return {
226
+ content: [{
227
+ type: "text",
228
+ text: `Which role should ${email} be invited at? Pass \`role\` as one of ${ROLE_SLUGS.join(", ")}. Ask the user rather than picking - the roles differ in who can manage members and see billing: ${ROLE_LADDER}.`,
229
+ }],
230
+ };
231
+ }
177
232
  const result = await apiRequest(`/organizations/${orgId}/invitations`, {
178
233
  method: "POST",
179
- body: { email, role_pid },
234
+ body: { email, role_pid: resolvedPid },
180
235
  toolName: "invite_to_org",
181
236
  skipOrgInjection: true,
182
237
  });
183
238
  if (!result.success) {
184
239
  return { content: [{ type: "text", text: `Failed to send invitation (${result.statusCode}): ${result.message}` }] };
185
240
  }
241
+ const roleLabel = role ? ROLES[role].name : resolvedPid;
242
+ return {
243
+ content: [
244
+ { type: "text", text: `Invitation sent to ${email} as ${roleLabel}. They appear in \`list_org_invitations\` until they accept, then in \`list_members\`.` },
245
+ { type: "text", text: JSON.stringify(result.data, null, 2) },
246
+ ],
247
+ };
248
+ });
249
+ server.tool("update_member_role", `Change an existing member's role. This is the only way to promote or demote someone after they have joined - inviting them again does not do it.
250
+
251
+ Pass \`role\` as a slug: ${ROLE_SLUGS.map((r) => `\`${r}\``).join(", ")}. The ladder, highest first: ${ROLE_LADDER}.
252
+
253
+ ${ROLE_AUTHORITY_RULE}
254
+
255
+ \`user_id\` is the member's USER pid - the \`id\` field from \`list_members\`, not their membership or email.
256
+
257
+ A 422 here is almost always one of the authority rules above rather than a fault: read the message back to the user instead of retrying. Confirm the change with them first - a demotion can remove someone's access to billing or to every instance in the org.`, {
258
+ organization_id: z.string().optional().describe("Organization PID (defaults to active org)"),
259
+ user_id: z.string().min(1).describe("The member's user pid - the `id` field from `list_members`"),
260
+ role: z.enum(ROLE_SLUGS).describe("The role to move them to"),
261
+ }, async ({ organization_id, user_id, role }) => {
262
+ const orgId = resolveOrgId(organization_id);
263
+ if (!orgId) {
264
+ return { content: [{ type: "text", text: "No organization selected. Call `select_organization` first or pass an organization_id." }] };
265
+ }
266
+ const target = ROLES[role];
267
+ const result = await apiRequest(`/organizations/${orgId}/members/${user_id}/role`, {
268
+ method: "PATCH",
269
+ body: { role_pid: target.pid },
270
+ toolName: "update_member_role",
271
+ skipOrgInjection: true,
272
+ });
273
+ if (!result.success) {
274
+ return { content: [{ type: "text", text: `Failed to change member role (${result.statusCode}): ${result.message}` }] };
275
+ }
186
276
  return {
187
277
  content: [
188
- { type: "text", text: `Invitation sent to ${email}.` },
278
+ { type: "text", text: `Member ${user_id} is now ${target.name} (priority ${target.priority}).` },
189
279
  { type: "text", text: JSON.stringify(result.data, null, 2) },
190
280
  ],
191
281
  };