@yawlabs/tailscale-mcp 0.3.0 → 0.4.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.
Files changed (59) hide show
  1. package/README.md +3 -17
  2. package/dist/index.js +22922 -120
  3. package/package.json +10 -11
  4. package/dist/api.d.ts +0 -35
  5. package/dist/api.js +0 -134
  6. package/dist/api.js.map +0 -1
  7. package/dist/cli.d.ts +0 -5
  8. package/dist/cli.js +0 -43
  9. package/dist/cli.js.map +0 -1
  10. package/dist/index.d.ts +0 -2
  11. package/dist/index.js.map +0 -1
  12. package/dist/tools/acl.d.ts +0 -86
  13. package/dist/tools/acl.js +0 -105
  14. package/dist/tools/acl.js.map +0 -1
  15. package/dist/tools/audit.d.ts +0 -50
  16. package/dist/tools/audit.js +0 -60
  17. package/dist/tools/audit.js.map +0 -1
  18. package/dist/tools/devices.d.ts +0 -290
  19. package/dist/tools/devices.js +0 -254
  20. package/dist/tools/devices.js.map +0 -1
  21. package/dist/tools/dns.d.ts +0 -130
  22. package/dist/tools/dns.js +0 -139
  23. package/dist/tools/dns.js.map +0 -1
  24. package/dist/tools/invites.d.ts +0 -158
  25. package/dist/tools/invites.js +0 -160
  26. package/dist/tools/invites.js.map +0 -1
  27. package/dist/tools/keys.d.ts +0 -94
  28. package/dist/tools/keys.js +0 -92
  29. package/dist/tools/keys.js.map +0 -1
  30. package/dist/tools/log-streaming.d.ts +0 -90
  31. package/dist/tools/log-streaming.js +0 -89
  32. package/dist/tools/log-streaming.js.map +0 -1
  33. package/dist/tools/network-lock.d.ts +0 -14
  34. package/dist/tools/network-lock.js +0 -20
  35. package/dist/tools/network-lock.js.map +0 -1
  36. package/dist/tools/oauth-clients.d.ts +0 -118
  37. package/dist/tools/oauth-clients.js +0 -102
  38. package/dist/tools/oauth-clients.js.map +0 -1
  39. package/dist/tools/posture.d.ts +0 -126
  40. package/dist/tools/posture.js +0 -103
  41. package/dist/tools/posture.js.map +0 -1
  42. package/dist/tools/services.d.ts +0 -124
  43. package/dist/tools/services.js +0 -106
  44. package/dist/tools/services.js.map +0 -1
  45. package/dist/tools/status.d.ts +0 -26
  46. package/dist/tools/status.js +0 -38
  47. package/dist/tools/status.js.map +0 -1
  48. package/dist/tools/tailnet.d.ts +0 -142
  49. package/dist/tools/tailnet.js +0 -111
  50. package/dist/tools/tailnet.js.map +0 -1
  51. package/dist/tools/users.d.ts +0 -118
  52. package/dist/tools/users.js +0 -108
  53. package/dist/tools/users.js.map +0 -1
  54. package/dist/tools/webhooks.d.ts +0 -126
  55. package/dist/tools/webhooks.js +0 -121
  56. package/dist/tools/webhooks.js.map +0 -1
  57. package/dist/tools/workload-identity.d.ts +0 -118
  58. package/dist/tools/workload-identity.js +0 -105
  59. package/dist/tools/workload-identity.js.map +0 -1
@@ -1,105 +0,0 @@
1
- import { z } from "zod";
2
- import { apiDelete, apiGet, apiPatch, apiPost, encPath, getTailnet } from "../api.js";
3
- export const workloadIdentityTools = [
4
- {
5
- name: "tailscale_list_workload_identities",
6
- description: "List all federated workload identity providers configured for your tailnet. Workload identities allow CI/CD pipelines and automated systems to authenticate using OIDC federation.",
7
- annotations: {
8
- title: "List workload identities",
9
- readOnlyHint: true,
10
- destructiveHint: false,
11
- idempotentHint: true,
12
- openWorldHint: true,
13
- },
14
- inputSchema: z.object({}),
15
- handler: async () => {
16
- return apiGet(`/tailnet/${getTailnet()}/workload-identity/providers`);
17
- },
18
- },
19
- {
20
- name: "tailscale_get_workload_identity",
21
- description: "Get details for a specific workload identity provider.",
22
- annotations: {
23
- title: "Get workload identity",
24
- readOnlyHint: true,
25
- destructiveHint: false,
26
- idempotentHint: true,
27
- openWorldHint: true,
28
- },
29
- inputSchema: z.object({
30
- providerId: z.string().describe("The workload identity provider ID"),
31
- }),
32
- handler: async (input) => {
33
- return apiGet(`/tailnet/${getTailnet()}/workload-identity/providers/${encPath(input.providerId)}`);
34
- },
35
- },
36
- {
37
- name: "tailscale_create_workload_identity",
38
- description: "Create a new workload identity provider for OIDC federation. Enables CI/CD systems (GitHub Actions, GitLab CI, etc.) to authenticate to your tailnet without static credentials.",
39
- annotations: {
40
- title: "Create workload identity",
41
- readOnlyHint: false,
42
- destructiveHint: false,
43
- idempotentHint: false,
44
- openWorldHint: true,
45
- },
46
- inputSchema: z.object({
47
- name: z.string().describe("A human-readable name for this provider"),
48
- issuerUrl: z
49
- .string()
50
- .describe("The OIDC issuer URL (e.g. 'https://token.actions.githubusercontent.com' for GitHub Actions)"),
51
- audience: z.string().optional().describe("Expected audience claim in the OIDC token"),
52
- claimMappings: z
53
- .record(z.string(), z.string())
54
- .optional()
55
- .describe("Map of Tailscale attributes to OIDC token claims (e.g. { 'tag': 'repository' })"),
56
- }),
57
- handler: async (input) => {
58
- return apiPost(`/tailnet/${getTailnet()}/workload-identity/providers`, input);
59
- },
60
- },
61
- {
62
- name: "tailscale_update_workload_identity",
63
- description: "Update an existing workload identity provider's configuration.",
64
- annotations: {
65
- title: "Update workload identity",
66
- readOnlyHint: false,
67
- destructiveHint: false,
68
- idempotentHint: true,
69
- openWorldHint: true,
70
- },
71
- inputSchema: z.object({
72
- providerId: z.string().describe("The workload identity provider ID to update"),
73
- name: z.string().optional().describe("Updated human-readable name"),
74
- audience: z.string().optional().describe("Updated expected audience claim"),
75
- claimMappings: z.record(z.string(), z.string()).optional().describe("Updated claim mappings"),
76
- }),
77
- handler: async (input) => {
78
- const { providerId, ...body } = input;
79
- const cleanBody = {};
80
- for (const [key, value] of Object.entries(body)) {
81
- if (value !== undefined)
82
- cleanBody[key] = value;
83
- }
84
- return apiPatch(`/tailnet/${getTailnet()}/workload-identity/providers/${encPath(providerId)}`, cleanBody);
85
- },
86
- },
87
- {
88
- name: "tailscale_delete_workload_identity",
89
- description: "Delete a workload identity provider. This is irreversible — any CI/CD pipelines using this provider will lose access.",
90
- annotations: {
91
- title: "Delete workload identity",
92
- readOnlyHint: false,
93
- destructiveHint: true,
94
- idempotentHint: true,
95
- openWorldHint: true,
96
- },
97
- inputSchema: z.object({
98
- providerId: z.string().describe("The workload identity provider ID to delete"),
99
- }),
100
- handler: async (input) => {
101
- return apiDelete(`/tailnet/${getTailnet()}/workload-identity/providers/${encPath(input.providerId)}`);
102
- },
103
- },
104
- ];
105
- //# sourceMappingURL=workload-identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workload-identity.js","sourceRoot":"","sources":["../../src/tools/workload-identity.ts"],"names":[],"mappings":"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"}