@tokamohsen/sentry-mcp 0.29.7 → 0.29.8

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 (75) hide show
  1. package/dist/index.cjs +33696 -34
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +33706 -45
  4. package/dist/index.js.map +1 -1
  5. package/dist/{token-GX19_oyM.cjs → token-B5HKFZKz.cjs} +2 -2
  6. package/dist/{token-GX19_oyM.cjs.map → token-B5HKFZKz.cjs.map} +1 -1
  7. package/dist/{token-CO5Bq1Ct.js → token-JvPeoopD.js} +2 -2
  8. package/dist/{token-CO5Bq1Ct.js.map → token-JvPeoopD.js.map} +1 -1
  9. package/dist/{token-util-Cw83HNFN.cjs → token-util-BNYjqouU.cjs} +1 -1
  10. package/dist/{token-util-Cw83HNFN.cjs.map → token-util-BNYjqouU.cjs.map} +1 -1
  11. package/dist/{token-util-1O_mwf8r.js → token-util-CqB8j8br.js} +2 -2
  12. package/dist/{token-util-1O_mwf8r.js.map → token-util-CqB8j8br.js.map} +1 -1
  13. package/dist/transports/{stdio-DeWUp4RP.d.cts → stdio-BoqvAN3P.d.cts} +1 -1
  14. package/dist/transports/{stdio-DeWUp4RP.d.cts.map → stdio-BoqvAN3P.d.cts.map} +1 -1
  15. package/dist/transports/{stdio-DKQR8J7l.d.ts → stdio-BvNog4wx.d.ts} +1 -1
  16. package/dist/transports/{stdio-DKQR8J7l.d.ts.map → stdio-BvNog4wx.d.ts.map} +1 -1
  17. package/dist/transports/stdio.cjs +1 -1
  18. package/dist/transports/stdio.js +1 -1
  19. package/dist/{version-BD4r13ze.cjs → version-BN5g2FHt.cjs} +1 -1
  20. package/dist/{version-BD4r13ze.cjs.map → version-BN5g2FHt.cjs.map} +1 -1
  21. package/dist/{version-4iOZzjiD.js → version-CV6JJx_P.js} +1 -1
  22. package/dist/{version-4iOZzjiD.js.map → version-CV6JJx_P.js.map} +1 -1
  23. package/package.json +1 -1
  24. package/dist/cli/parse-CX7Bcldr.d.ts +0 -11
  25. package/dist/cli/parse-CX7Bcldr.d.ts.map +0 -1
  26. package/dist/cli/parse-EvLqDjN2.d.cts +0 -11
  27. package/dist/cli/parse-EvLqDjN2.d.cts.map +0 -1
  28. package/dist/cli/parse.cjs +0 -107
  29. package/dist/cli/parse.cjs.map +0 -1
  30. package/dist/cli/parse.js +0 -103
  31. package/dist/cli/parse.js.map +0 -1
  32. package/dist/cli/resolve-BVtyZcQM.d.ts +0 -10
  33. package/dist/cli/resolve-BVtyZcQM.d.ts.map +0 -1
  34. package/dist/cli/resolve-C3hwH129.d.cts +0 -10
  35. package/dist/cli/resolve-C3hwH129.d.cts.map +0 -1
  36. package/dist/cli/resolve.cjs +0 -56
  37. package/dist/cli/resolve.cjs.map +0 -1
  38. package/dist/cli/resolve.js +0 -54
  39. package/dist/cli/resolve.js.map +0 -1
  40. package/dist/cli/types-CnTkIHzd.d.ts +0 -73
  41. package/dist/cli/types-CnTkIHzd.d.ts.map +0 -1
  42. package/dist/cli/types-VWgo1wm6.d.cts +0 -73
  43. package/dist/cli/types-VWgo1wm6.d.cts.map +0 -1
  44. package/dist/cli/types.cjs +0 -0
  45. package/dist/cli/types.js +0 -1
  46. package/dist/cli/usage-B0gAPy4S.d.cts +0 -9
  47. package/dist/cli/usage-B0gAPy4S.d.cts.map +0 -1
  48. package/dist/cli/usage-BhCVaC5j.d.ts +0 -9
  49. package/dist/cli/usage-BhCVaC5j.d.ts.map +0 -1
  50. package/dist/cli/usage.cjs +0 -47
  51. package/dist/cli/usage.cjs.map +0 -1
  52. package/dist/cli/usage.js +0 -45
  53. package/dist/cli/usage.js.map +0 -1
  54. package/dist/config-CzqCJmB9.js +0 -613
  55. package/dist/config-CzqCJmB9.js.map +0 -1
  56. package/dist/config-DMt6phB6.cjs +0 -630
  57. package/dist/config-DMt6phB6.cjs.map +0 -1
  58. package/dist/constants-BrEVt86y.js +0 -194
  59. package/dist/constants-BrEVt86y.js.map +0 -1
  60. package/dist/constants-C14tQf_s.cjs +0 -217
  61. package/dist/constants-C14tQf_s.cjs.map +0 -1
  62. package/dist/server-DduxvXpe.js +0 -32499
  63. package/dist/server-DduxvXpe.js.map +0 -1
  64. package/dist/server-lur5iSHk.cjs +0 -32530
  65. package/dist/server-lur5iSHk.cjs.map +0 -1
  66. package/dist/skills-DOgs9MAy.cjs +0 -96
  67. package/dist/skills-DOgs9MAy.cjs.map +0 -1
  68. package/dist/skills-DfqlqYXj.js +0 -72
  69. package/dist/skills-DfqlqYXj.js.map +0 -1
  70. package/dist/url-utils-BHhxlntO.js +0 -119
  71. package/dist/url-utils-BHhxlntO.js.map +0 -1
  72. package/dist/url-utils-N2ExJl9F.cjs +0 -161
  73. package/dist/url-utils-N2ExJl9F.cjs.map +0 -1
  74. /package/dist/{index-16fTC-hT.d.cts → index-Cxeq9ZuA.d.ts} +0 -0
  75. /package/dist/{index-UKPmYT-S.d.ts → index-XTv1ki6h.d.cts} +0 -0
package/dist/cli/parse.js DELETED
@@ -1,103 +0,0 @@
1
- import { parseArgs } from "node:util";
2
-
3
- //#region src/cli/parse.ts
4
- function parseArgv(argv) {
5
- const options = {
6
- "access-token": { type: "string" },
7
- host: { type: "string" },
8
- url: { type: "string" },
9
- "mcp-url": { type: "string" },
10
- "sentry-dsn": { type: "string" },
11
- "openai-base-url": { type: "string" },
12
- "openai-model": { type: "string" },
13
- "anthropic-base-url": { type: "string" },
14
- "anthropic-model": { type: "string" },
15
- "agent-provider": { type: "string" },
16
- "organization-slug": { type: "string" },
17
- "project-slug": { type: "string" },
18
- skills: { type: "string" },
19
- agent: { type: "boolean" },
20
- experimental: { type: "boolean" },
21
- help: {
22
- type: "boolean",
23
- short: "h"
24
- },
25
- version: {
26
- type: "boolean",
27
- short: "v"
28
- }
29
- };
30
- const { values, positionals, tokens } = parseArgs({
31
- args: argv,
32
- options,
33
- allowPositionals: false,
34
- strict: false,
35
- tokens: true
36
- });
37
- const knownLong = new Set(Object.keys(options));
38
- const knownShort = new Set([...Object.values(options).map((o) => "short" in o ? o.short : void 0).filter(Boolean)]);
39
- const unknownArgs = [];
40
- for (const t of tokens || []) if (t.kind === "option") {
41
- const name = t.name;
42
- if (name && !(knownLong.has(name) || knownShort.has(name))) unknownArgs.push(t.raw ?? `--${name}`);
43
- } else if (t.kind === "positional") unknownArgs.push(t.raw ?? String(t.value ?? ""));
44
- return {
45
- accessToken: values["access-token"],
46
- host: values.host,
47
- url: values.url,
48
- mcpUrl: values["mcp-url"],
49
- sentryDsn: values["sentry-dsn"],
50
- openaiBaseUrl: values["openai-base-url"],
51
- openaiModel: values["openai-model"],
52
- anthropicBaseUrl: values["anthropic-base-url"],
53
- anthropicModel: values["anthropic-model"],
54
- agentProvider: values["agent-provider"],
55
- organizationSlug: values["organization-slug"],
56
- projectSlug: values["project-slug"],
57
- skills: values.skills,
58
- agent: values.agent === true,
59
- experimental: values.experimental === true,
60
- help: values.help === true,
61
- version: values.version === true,
62
- unknownArgs: unknownArgs.length > 0 ? unknownArgs : positionals || []
63
- };
64
- }
65
- function parseEnv(env) {
66
- const fromEnv = {};
67
- if (env.SENTRY_ACCESS_TOKEN) fromEnv.accessToken = env.SENTRY_ACCESS_TOKEN;
68
- if (env.SENTRY_URL) fromEnv.url = env.SENTRY_URL;
69
- if (env.SENTRY_HOST) fromEnv.host = env.SENTRY_HOST;
70
- if (env.MCP_URL) fromEnv.mcpUrl = env.MCP_URL;
71
- if (env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN) fromEnv.sentryDsn = env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN;
72
- if (env.OPENAI_MODEL) fromEnv.openaiModel = env.OPENAI_MODEL;
73
- if (env.ANTHROPIC_MODEL) fromEnv.anthropicModel = env.ANTHROPIC_MODEL;
74
- if (env.EMBEDDED_AGENT_PROVIDER) fromEnv.agentProvider = env.EMBEDDED_AGENT_PROVIDER;
75
- if (env.MCP_SKILLS) fromEnv.skills = env.MCP_SKILLS;
76
- return fromEnv;
77
- }
78
- function merge(cli, env) {
79
- return {
80
- accessToken: cli.accessToken ?? env.accessToken,
81
- url: cli.url ?? env.url,
82
- host: cli.host ?? env.host,
83
- mcpUrl: cli.mcpUrl ?? env.mcpUrl,
84
- sentryDsn: cli.sentryDsn ?? env.sentryDsn,
85
- openaiBaseUrl: cli.openaiBaseUrl,
86
- openaiModel: cli.openaiModel ?? env.openaiModel,
87
- anthropicBaseUrl: cli.anthropicBaseUrl,
88
- anthropicModel: cli.anthropicModel ?? env.anthropicModel,
89
- agentProvider: cli.agentProvider ?? env.agentProvider,
90
- skills: cli.skills ?? env.skills,
91
- agent: cli.agent === true,
92
- experimental: cli.experimental === true,
93
- organizationSlug: cli.organizationSlug,
94
- projectSlug: cli.projectSlug,
95
- help: cli.help === true,
96
- version: cli.version === true,
97
- unknownArgs: cli.unknownArgs
98
- };
99
- }
100
-
101
- //#endregion
102
- export { merge, parseArgv, parseEnv };
103
- //# sourceMappingURL=parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","names":[],"sources":["../../src/cli/parse.ts"],"sourcesContent":["import { parseArgs } from \"node:util\";\nimport type { CliArgs, EnvArgs, MergedArgs } from \"./types\";\n\nexport function parseArgv(argv: string[]): CliArgs {\n const options = {\n \"access-token\": { type: \"string\" as const },\n host: { type: \"string\" as const },\n url: { type: \"string\" as const },\n \"mcp-url\": { type: \"string\" as const },\n \"sentry-dsn\": { type: \"string\" as const },\n \"openai-base-url\": { type: \"string\" as const },\n \"openai-model\": { type: \"string\" as const },\n \"anthropic-base-url\": { type: \"string\" as const },\n \"anthropic-model\": { type: \"string\" as const },\n \"agent-provider\": { type: \"string\" as const },\n \"organization-slug\": { type: \"string\" as const },\n \"project-slug\": { type: \"string\" as const },\n skills: { type: \"string\" as const },\n agent: { type: \"boolean\" as const },\n experimental: { type: \"boolean\" as const },\n help: { type: \"boolean\" as const, short: \"h\" as const },\n version: { type: \"boolean\" as const, short: \"v\" as const },\n };\n\n const { values, positionals, tokens } = parseArgs({\n args: argv,\n options,\n allowPositionals: false,\n strict: false,\n tokens: true,\n });\n\n const knownLong = new Set(Object.keys(options));\n const knownShort = new Set([\n ...(Object.values(options)\n .map((o) => (\"short\" in o ? (o.short as string | undefined) : undefined))\n .filter(Boolean) as string[]),\n ]);\n\n const unknownArgs: string[] = [];\n for (const t of (tokens as any[]) || []) {\n if (t.kind === \"option\") {\n const name = t.name as string | undefined;\n if (name && !(knownLong.has(name) || knownShort.has(name))) {\n unknownArgs.push((t.raw as string) ?? `--${name}`);\n }\n } else if (t.kind === \"positional\") {\n unknownArgs.push((t.raw as string) ?? String(t.value ?? \"\"));\n }\n }\n\n return {\n accessToken: values[\"access-token\"] as string | undefined,\n host: values.host as string | undefined,\n url: values.url as string | undefined,\n mcpUrl: values[\"mcp-url\"] as string | undefined,\n sentryDsn: values[\"sentry-dsn\"] as string | undefined,\n openaiBaseUrl: values[\"openai-base-url\"] as string | undefined,\n openaiModel: values[\"openai-model\"] as string | undefined,\n anthropicBaseUrl: values[\"anthropic-base-url\"] as string | undefined,\n anthropicModel: values[\"anthropic-model\"] as string | undefined,\n agentProvider: values[\"agent-provider\"] as string | undefined,\n organizationSlug: values[\"organization-slug\"] as string | undefined,\n projectSlug: values[\"project-slug\"] as string | undefined,\n skills: values.skills as string | undefined,\n agent: values.agent === true,\n experimental: values.experimental === true,\n help: (values.help as boolean | undefined) === true,\n version: (values.version as boolean | undefined) === true,\n unknownArgs:\n unknownArgs.length > 0 ? unknownArgs : (positionals as string[]) || [],\n };\n}\n\nexport function parseEnv(env: NodeJS.ProcessEnv): EnvArgs {\n const fromEnv: EnvArgs = {};\n if (env.SENTRY_ACCESS_TOKEN) fromEnv.accessToken = env.SENTRY_ACCESS_TOKEN;\n if (env.SENTRY_URL) fromEnv.url = env.SENTRY_URL;\n if (env.SENTRY_HOST) fromEnv.host = env.SENTRY_HOST;\n if (env.MCP_URL) fromEnv.mcpUrl = env.MCP_URL;\n if (env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN)\n fromEnv.sentryDsn = env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN;\n\n if (env.OPENAI_MODEL) fromEnv.openaiModel = env.OPENAI_MODEL;\n if (env.ANTHROPIC_MODEL) fromEnv.anthropicModel = env.ANTHROPIC_MODEL;\n if (env.EMBEDDED_AGENT_PROVIDER)\n fromEnv.agentProvider = env.EMBEDDED_AGENT_PROVIDER;\n if (env.MCP_SKILLS) fromEnv.skills = env.MCP_SKILLS;\n return fromEnv;\n}\n\nexport function merge(cli: CliArgs, env: EnvArgs): MergedArgs {\n // CLI wins over env\n return {\n accessToken: cli.accessToken ?? env.accessToken,\n // If CLI provided url/host, prefer those; else fall back to env\n url: cli.url ?? env.url,\n host: cli.host ?? env.host,\n mcpUrl: cli.mcpUrl ?? env.mcpUrl,\n sentryDsn: cli.sentryDsn ?? env.sentryDsn,\n openaiBaseUrl: cli.openaiBaseUrl,\n openaiModel: cli.openaiModel ?? env.openaiModel,\n anthropicBaseUrl: cli.anthropicBaseUrl,\n anthropicModel: cli.anthropicModel ?? env.anthropicModel,\n agentProvider: cli.agentProvider ?? env.agentProvider,\n // Skills precedence: CLI skills override env\n skills: cli.skills ?? env.skills,\n agent: cli.agent === true,\n experimental: cli.experimental === true,\n organizationSlug: cli.organizationSlug,\n projectSlug: cli.projectSlug,\n help: cli.help === true,\n version: cli.version === true,\n unknownArgs: cli.unknownArgs,\n };\n}\n"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { MergedArgs, ResolvedConfig } from "./types-CnTkIHzd.js";
2
-
3
- //#region src/cli/resolve.d.ts
4
- declare function formatInvalidSkills(invalid: string[], envName?: string): string;
5
- declare function finalize(input: MergedArgs): ResolvedConfig;
6
- //# sourceMappingURL=resolve.d.ts.map
7
-
8
- //#endregion
9
- export { finalize, formatInvalidSkills };
10
- //# sourceMappingURL=resolve-BVtyZcQM.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-BVtyZcQM.d.ts","names":[],"sources":["../../src/cli/resolve.ts"],"sourcesContent":[],"mappings":";;;iBAQgB,mBAAA;iBASA,QAAA,QAAgB,aAAa;AAT7C"}
@@ -1,10 +0,0 @@
1
- import { MergedArgs, ResolvedConfig } from "./types-VWgo1wm6.cjs";
2
-
3
- //#region src/cli/resolve.d.ts
4
- declare function formatInvalidSkills(invalid: string[], envName?: string): string;
5
- declare function finalize(input: MergedArgs): ResolvedConfig;
6
- //# sourceMappingURL=resolve.d.ts.map
7
-
8
- //#endregion
9
- export { finalize, formatInvalidSkills };
10
- //# sourceMappingURL=resolve-C3hwH129.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-C3hwH129.d.cts","names":[],"sources":["../../src/cli/resolve.ts"],"sourcesContent":[],"mappings":";;;iBAQgB,mBAAA;iBASA,QAAA,QAAgB,aAAa;AAT7C"}
@@ -1,56 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_skills = require('../skills-DOgs9MAy.cjs');
3
- const require_url_utils = require('../url-utils-N2ExJl9F.cjs');
4
-
5
- //#region src/cli/resolve.ts
6
- function formatInvalidSkills(invalid, envName) {
7
- const where = envName ? `${envName} provided` : "Invalid skills provided";
8
- const allSkills = Object.keys(require_skills.SKILLS).join(", ");
9
- return `Error: ${where}: ${invalid.join(", ")}\nAvailable skills: ${allSkills}`;
10
- }
11
- function finalize(input) {
12
- if (!input.accessToken) throw new Error("Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.");
13
- let sentryHost = "sentry.io";
14
- if (input.url) sentryHost = require_url_utils.validateAndParseSentryUrlThrows(input.url);
15
- else if (input.host) {
16
- require_url_utils.validateSentryHostThrows(input.host);
17
- sentryHost = input.host;
18
- }
19
- let finalSkills = void 0;
20
- if (input.skills) {
21
- const { valid, invalid } = require_skills.parseSkills(input.skills);
22
- if (invalid.length > 0) throw new Error(formatInvalidSkills(invalid));
23
- if (valid.size === 0) throw new Error("Error: Invalid skills provided. No valid skills found.");
24
- finalSkills = valid;
25
- } else {
26
- const allSkills = Object.keys(require_skills.SKILLS);
27
- finalSkills = new Set(allSkills);
28
- }
29
- const resolvedOpenAiBaseUrl = input.openaiBaseUrl ? require_url_utils.validateOpenAiBaseUrlThrows(input.openaiBaseUrl) : void 0;
30
- const resolvedAnthropicBaseUrl = input.anthropicBaseUrl ? require_url_utils.validateOpenAiBaseUrlThrows(input.anthropicBaseUrl) : void 0;
31
- let agentProvider = void 0;
32
- if (input.agentProvider) {
33
- const provider = input.agentProvider.toLowerCase();
34
- if (provider !== "openai" && provider !== "anthropic") throw new Error(`Error: Invalid agent provider "${input.agentProvider}". Must be "openai" or "anthropic".`);
35
- agentProvider = provider;
36
- }
37
- return {
38
- accessToken: input.accessToken,
39
- sentryHost,
40
- mcpUrl: input.mcpUrl,
41
- sentryDsn: input.sentryDsn,
42
- openaiBaseUrl: resolvedOpenAiBaseUrl,
43
- openaiModel: input.openaiModel,
44
- anthropicBaseUrl: resolvedAnthropicBaseUrl,
45
- anthropicModel: input.anthropicModel,
46
- agentProvider,
47
- finalSkills,
48
- organizationSlug: input.organizationSlug,
49
- projectSlug: input.projectSlug
50
- };
51
- }
52
-
53
- //#endregion
54
- exports.finalize = finalize;
55
- exports.formatInvalidSkills = formatInvalidSkills;
56
- //# sourceMappingURL=resolve.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve.cjs","names":["SKILLS","validateAndParseSentryUrlThrows","parseSkills","validateOpenAiBaseUrlThrows"],"sources":["../../src/cli/resolve.ts"],"sourcesContent":["import { parseSkills, SKILLS, type Skill } from \"@sentry/mcp-core/skills\";\nimport {\n validateAndParseSentryUrlThrows,\n validateOpenAiBaseUrlThrows,\n validateSentryHostThrows,\n} from \"@sentry/mcp-core/utils/url-utils\";\nimport type { MergedArgs, ResolvedConfig } from \"./types\";\n\nexport function formatInvalidSkills(\n invalid: string[],\n envName?: string,\n): string {\n const where = envName ? `${envName} provided` : \"Invalid skills provided\";\n const allSkills = Object.keys(SKILLS).join(\", \");\n return `Error: ${where}: ${invalid.join(\", \")}\\nAvailable skills: ${allSkills}`;\n}\n\nexport function finalize(input: MergedArgs): ResolvedConfig {\n // Access token required\n if (!input.accessToken) {\n throw new Error(\n \"Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.\",\n );\n }\n\n // Determine host from url/host with validation\n let sentryHost = \"sentry.io\";\n if (input.url) {\n sentryHost = validateAndParseSentryUrlThrows(input.url);\n } else if (input.host) {\n validateSentryHostThrows(input.host);\n sentryHost = input.host;\n }\n\n // Skills resolution\n //\n // IMPORTANT: stdio (CLI) intentionally defaults to ALL skills when no --skills flag is provided\n //\n // This differs from the OAuth flow, which requires explicit user selection:\n // - stdio/CLI: Non-interactive, defaults to ALL skills (inspect, docs, seer, triage, project-management)\n // - OAuth: Interactive, requires user to explicitly select skills (with sensible defaults pre-checked)\n //\n // Rationale:\n // We don't want the MCP to break if users don't specify skills. stdio is typically used in\n // local development and CI/CD environments where maximum access by default is expected.\n // OAuth is used in multi-tenant hosted environments where users should consciously grant\n // permissions on a per-app basis.\n //\n // For OAuth validation that enforces minimum 1 skill selection, see:\n // packages/mcp-cloudflare/src/server/oauth/routes/callback.ts (lines 234-248)\n //\n let finalSkills: Set<Skill> | undefined = undefined;\n if (input.skills) {\n // Override: use only the specified skills\n const { valid, invalid } = parseSkills(input.skills);\n if (invalid.length > 0) {\n throw new Error(formatInvalidSkills(invalid));\n }\n if (valid.size === 0) {\n throw new Error(\"Error: Invalid skills provided. No valid skills found.\");\n }\n finalSkills = valid;\n } else {\n // Default: grant ALL skills when no flag is provided (see comment block above for rationale)\n const allSkills = Object.keys(SKILLS) as Skill[];\n finalSkills = new Set<Skill>(allSkills);\n }\n\n const resolvedOpenAiBaseUrl = input.openaiBaseUrl\n ? validateOpenAiBaseUrlThrows(input.openaiBaseUrl)\n : undefined;\n\n // Validate anthropic base URL if provided (same validation as OpenAI)\n const resolvedAnthropicBaseUrl = input.anthropicBaseUrl\n ? validateOpenAiBaseUrlThrows(input.anthropicBaseUrl)\n : undefined;\n\n // Validate agent provider if explicitly set\n let agentProvider: \"openai\" | \"anthropic\" | undefined = undefined;\n if (input.agentProvider) {\n const provider = input.agentProvider.toLowerCase();\n if (provider !== \"openai\" && provider !== \"anthropic\") {\n throw new Error(\n `Error: Invalid agent provider \"${input.agentProvider}\". Must be \"openai\" or \"anthropic\".`,\n );\n }\n agentProvider = provider;\n }\n\n return {\n accessToken: input.accessToken,\n sentryHost,\n mcpUrl: input.mcpUrl,\n sentryDsn: input.sentryDsn,\n openaiBaseUrl: resolvedOpenAiBaseUrl,\n openaiModel: input.openaiModel,\n anthropicBaseUrl: resolvedAnthropicBaseUrl,\n anthropicModel: input.anthropicModel,\n agentProvider,\n finalSkills,\n organizationSlug: input.organizationSlug,\n projectSlug: input.projectSlug,\n };\n}\n"],"mappings":";;;;;AAQA,SAAgB,oBACd,SACA,SACQ;CACR,MAAM,QAAQ,UAAU,GAAG,QAAQ,aAAa;CAChD,MAAM,YAAY,OAAO,KAAKA,sBAAO,CAAC,KAAK,KAAK;AAChD,QAAO,UAAU,MAAM,IAAI,QAAQ,KAAK,KAAK,CAAC,sBAAsB;;AAGtE,SAAgB,SAAS,OAAmC;AAE1D,KAAI,CAAC,MAAM,YACT,OAAM,IAAI,MACR,oGACD;CAIH,IAAI,aAAa;AACjB,KAAI,MAAM,IACR,cAAaC,kDAAgC,MAAM,IAAI;UAC9C,MAAM,MAAM;AACrB,6CAAyB,MAAM,KAAK;AACpC,eAAa,MAAM;;CAoBrB,IAAI,cAAsC;AAC1C,KAAI,MAAM,QAAQ;EAEhB,MAAM,EAAE,OAAO,YAAYC,2BAAY,MAAM,OAAO;AACpD,MAAI,QAAQ,SAAS,EACnB,OAAM,IAAI,MAAM,oBAAoB,QAAQ,CAAC;AAE/C,MAAI,MAAM,SAAS,EACjB,OAAM,IAAI,MAAM,yDAAyD;AAE3E,gBAAc;QACT;EAEL,MAAM,YAAY,OAAO,KAAKF,sBAAO;AACrC,gBAAc,IAAI,IAAW,UAAU;;CAGzC,MAAM,wBAAwB,MAAM,gBAChCG,8CAA4B,MAAM,cAAc,GAChD;CAGJ,MAAM,2BAA2B,MAAM,mBACnCA,8CAA4B,MAAM,iBAAiB,GACnD;CAGJ,IAAI,gBAAoD;AACxD,KAAI,MAAM,eAAe;EACvB,MAAM,WAAW,MAAM,cAAc,aAAa;AAClD,MAAI,aAAa,YAAY,aAAa,YACxC,OAAM,IAAI,MACR,kCAAkC,MAAM,cAAc,qCACvD;AAEH,kBAAgB;;AAGlB,QAAO;EACL,aAAa,MAAM;EACnB;EACA,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB,eAAe;EACf,aAAa,MAAM;EACnB,kBAAkB;EAClB,gBAAgB,MAAM;EACtB;EACA;EACA,kBAAkB,MAAM;EACxB,aAAa,MAAM;EACpB"}
@@ -1,54 +0,0 @@
1
- import { i as parseSkills, n as SKILLS } from "../skills-DfqlqYXj.js";
2
- import { a as validateAndParseSentryUrlThrows, o as validateOpenAiBaseUrlThrows, s as validateSentryHostThrows } from "../url-utils-BHhxlntO.js";
3
-
4
- //#region src/cli/resolve.ts
5
- function formatInvalidSkills(invalid, envName) {
6
- const where = envName ? `${envName} provided` : "Invalid skills provided";
7
- const allSkills = Object.keys(SKILLS).join(", ");
8
- return `Error: ${where}: ${invalid.join(", ")}\nAvailable skills: ${allSkills}`;
9
- }
10
- function finalize(input) {
11
- if (!input.accessToken) throw new Error("Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.");
12
- let sentryHost = "sentry.io";
13
- if (input.url) sentryHost = validateAndParseSentryUrlThrows(input.url);
14
- else if (input.host) {
15
- validateSentryHostThrows(input.host);
16
- sentryHost = input.host;
17
- }
18
- let finalSkills = void 0;
19
- if (input.skills) {
20
- const { valid, invalid } = parseSkills(input.skills);
21
- if (invalid.length > 0) throw new Error(formatInvalidSkills(invalid));
22
- if (valid.size === 0) throw new Error("Error: Invalid skills provided. No valid skills found.");
23
- finalSkills = valid;
24
- } else {
25
- const allSkills = Object.keys(SKILLS);
26
- finalSkills = new Set(allSkills);
27
- }
28
- const resolvedOpenAiBaseUrl = input.openaiBaseUrl ? validateOpenAiBaseUrlThrows(input.openaiBaseUrl) : void 0;
29
- const resolvedAnthropicBaseUrl = input.anthropicBaseUrl ? validateOpenAiBaseUrlThrows(input.anthropicBaseUrl) : void 0;
30
- let agentProvider = void 0;
31
- if (input.agentProvider) {
32
- const provider = input.agentProvider.toLowerCase();
33
- if (provider !== "openai" && provider !== "anthropic") throw new Error(`Error: Invalid agent provider "${input.agentProvider}". Must be "openai" or "anthropic".`);
34
- agentProvider = provider;
35
- }
36
- return {
37
- accessToken: input.accessToken,
38
- sentryHost,
39
- mcpUrl: input.mcpUrl,
40
- sentryDsn: input.sentryDsn,
41
- openaiBaseUrl: resolvedOpenAiBaseUrl,
42
- openaiModel: input.openaiModel,
43
- anthropicBaseUrl: resolvedAnthropicBaseUrl,
44
- anthropicModel: input.anthropicModel,
45
- agentProvider,
46
- finalSkills,
47
- organizationSlug: input.organizationSlug,
48
- projectSlug: input.projectSlug
49
- };
50
- }
51
-
52
- //#endregion
53
- export { finalize, formatInvalidSkills };
54
- //# sourceMappingURL=resolve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve.js","names":[],"sources":["../../src/cli/resolve.ts"],"sourcesContent":["import { parseSkills, SKILLS, type Skill } from \"@sentry/mcp-core/skills\";\nimport {\n validateAndParseSentryUrlThrows,\n validateOpenAiBaseUrlThrows,\n validateSentryHostThrows,\n} from \"@sentry/mcp-core/utils/url-utils\";\nimport type { MergedArgs, ResolvedConfig } from \"./types\";\n\nexport function formatInvalidSkills(\n invalid: string[],\n envName?: string,\n): string {\n const where = envName ? `${envName} provided` : \"Invalid skills provided\";\n const allSkills = Object.keys(SKILLS).join(\", \");\n return `Error: ${where}: ${invalid.join(\", \")}\\nAvailable skills: ${allSkills}`;\n}\n\nexport function finalize(input: MergedArgs): ResolvedConfig {\n // Access token required\n if (!input.accessToken) {\n throw new Error(\n \"Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.\",\n );\n }\n\n // Determine host from url/host with validation\n let sentryHost = \"sentry.io\";\n if (input.url) {\n sentryHost = validateAndParseSentryUrlThrows(input.url);\n } else if (input.host) {\n validateSentryHostThrows(input.host);\n sentryHost = input.host;\n }\n\n // Skills resolution\n //\n // IMPORTANT: stdio (CLI) intentionally defaults to ALL skills when no --skills flag is provided\n //\n // This differs from the OAuth flow, which requires explicit user selection:\n // - stdio/CLI: Non-interactive, defaults to ALL skills (inspect, docs, seer, triage, project-management)\n // - OAuth: Interactive, requires user to explicitly select skills (with sensible defaults pre-checked)\n //\n // Rationale:\n // We don't want the MCP to break if users don't specify skills. stdio is typically used in\n // local development and CI/CD environments where maximum access by default is expected.\n // OAuth is used in multi-tenant hosted environments where users should consciously grant\n // permissions on a per-app basis.\n //\n // For OAuth validation that enforces minimum 1 skill selection, see:\n // packages/mcp-cloudflare/src/server/oauth/routes/callback.ts (lines 234-248)\n //\n let finalSkills: Set<Skill> | undefined = undefined;\n if (input.skills) {\n // Override: use only the specified skills\n const { valid, invalid } = parseSkills(input.skills);\n if (invalid.length > 0) {\n throw new Error(formatInvalidSkills(invalid));\n }\n if (valid.size === 0) {\n throw new Error(\"Error: Invalid skills provided. No valid skills found.\");\n }\n finalSkills = valid;\n } else {\n // Default: grant ALL skills when no flag is provided (see comment block above for rationale)\n const allSkills = Object.keys(SKILLS) as Skill[];\n finalSkills = new Set<Skill>(allSkills);\n }\n\n const resolvedOpenAiBaseUrl = input.openaiBaseUrl\n ? validateOpenAiBaseUrlThrows(input.openaiBaseUrl)\n : undefined;\n\n // Validate anthropic base URL if provided (same validation as OpenAI)\n const resolvedAnthropicBaseUrl = input.anthropicBaseUrl\n ? validateOpenAiBaseUrlThrows(input.anthropicBaseUrl)\n : undefined;\n\n // Validate agent provider if explicitly set\n let agentProvider: \"openai\" | \"anthropic\" | undefined = undefined;\n if (input.agentProvider) {\n const provider = input.agentProvider.toLowerCase();\n if (provider !== \"openai\" && provider !== \"anthropic\") {\n throw new Error(\n `Error: Invalid agent provider \"${input.agentProvider}\". Must be \"openai\" or \"anthropic\".`,\n );\n }\n agentProvider = provider;\n }\n\n return {\n accessToken: input.accessToken,\n sentryHost,\n mcpUrl: input.mcpUrl,\n sentryDsn: input.sentryDsn,\n openaiBaseUrl: resolvedOpenAiBaseUrl,\n openaiModel: input.openaiModel,\n anthropicBaseUrl: resolvedAnthropicBaseUrl,\n anthropicModel: input.anthropicModel,\n agentProvider,\n finalSkills,\n organizationSlug: input.organizationSlug,\n projectSlug: input.projectSlug,\n };\n}\n"],"mappings":";;;;AAQA,SAAgB,oBACd,SACA,SACQ;CACR,MAAM,QAAQ,UAAU,GAAG,QAAQ,aAAa;CAChD,MAAM,YAAY,OAAO,KAAK,OAAO,CAAC,KAAK,KAAK;AAChD,QAAO,UAAU,MAAM,IAAI,QAAQ,KAAK,KAAK,CAAC,sBAAsB;;AAGtE,SAAgB,SAAS,OAAmC;AAE1D,KAAI,CAAC,MAAM,YACT,OAAM,IAAI,MACR,oGACD;CAIH,IAAI,aAAa;AACjB,KAAI,MAAM,IACR,cAAa,gCAAgC,MAAM,IAAI;UAC9C,MAAM,MAAM;AACrB,2BAAyB,MAAM,KAAK;AACpC,eAAa,MAAM;;CAoBrB,IAAI,cAAsC;AAC1C,KAAI,MAAM,QAAQ;EAEhB,MAAM,EAAE,OAAO,YAAY,YAAY,MAAM,OAAO;AACpD,MAAI,QAAQ,SAAS,EACnB,OAAM,IAAI,MAAM,oBAAoB,QAAQ,CAAC;AAE/C,MAAI,MAAM,SAAS,EACjB,OAAM,IAAI,MAAM,yDAAyD;AAE3E,gBAAc;QACT;EAEL,MAAM,YAAY,OAAO,KAAK,OAAO;AACrC,gBAAc,IAAI,IAAW,UAAU;;CAGzC,MAAM,wBAAwB,MAAM,gBAChC,4BAA4B,MAAM,cAAc,GAChD;CAGJ,MAAM,2BAA2B,MAAM,mBACnC,4BAA4B,MAAM,iBAAiB,GACnD;CAGJ,IAAI,gBAAoD;AACxD,KAAI,MAAM,eAAe;EACvB,MAAM,WAAW,MAAM,cAAc,aAAa;AAClD,MAAI,aAAa,YAAY,aAAa,YACxC,OAAM,IAAI,MACR,kCAAkC,MAAM,cAAc,qCACvD;AAEH,kBAAgB;;AAGlB,QAAO;EACL,aAAa,MAAM;EACnB;EACA,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB,eAAe;EACf,aAAa,MAAM;EACnB,kBAAkB;EAClB,gBAAgB,MAAM;EACtB;EACA;EACA,kBAAkB,MAAM;EACxB,aAAa,MAAM;EACpB"}
@@ -1,73 +0,0 @@
1
- import { Skill } from "@sentry/mcp-core/skills";
2
-
3
- //#region src/cli/types.d.ts
4
- type CliArgs = {
5
- accessToken?: string;
6
- host?: string;
7
- url?: string;
8
- mcpUrl?: string;
9
- sentryDsn?: string;
10
- openaiBaseUrl?: string;
11
- openaiModel?: string;
12
- anthropicBaseUrl?: string;
13
- anthropicModel?: string;
14
- agentProvider?: string;
15
- skills?: string;
16
- agent?: boolean;
17
- experimental?: boolean;
18
- organizationSlug?: string;
19
- projectSlug?: string;
20
- help?: boolean;
21
- version?: boolean;
22
- unknownArgs: string[];
23
- };
24
- type EnvArgs = {
25
- accessToken?: string;
26
- host?: string;
27
- url?: string;
28
- mcpUrl?: string;
29
- sentryDsn?: string;
30
- openaiModel?: string;
31
- anthropicModel?: string;
32
- agentProvider?: string;
33
- skills?: string;
34
- };
35
- type MergedArgs = {
36
- accessToken?: string;
37
- host?: string;
38
- url?: string;
39
- mcpUrl?: string;
40
- sentryDsn?: string;
41
- openaiBaseUrl?: string;
42
- openaiModel?: string;
43
- anthropicBaseUrl?: string;
44
- anthropicModel?: string;
45
- agentProvider?: string;
46
- skills?: string;
47
- agent?: boolean;
48
- experimental?: boolean;
49
- organizationSlug?: string;
50
- projectSlug?: string;
51
- help?: boolean;
52
- version?: boolean;
53
- unknownArgs: string[];
54
- };
55
- type ResolvedConfig = {
56
- accessToken: string;
57
- sentryHost: string;
58
- mcpUrl?: string;
59
- sentryDsn?: string;
60
- openaiBaseUrl?: string;
61
- openaiModel?: string;
62
- anthropicBaseUrl?: string;
63
- anthropicModel?: string;
64
- agentProvider?: "openai" | "anthropic";
65
- /** Primary authorization method */
66
- finalSkills?: Set<Skill>;
67
- organizationSlug?: string;
68
- projectSlug?: string;
69
- };
70
- //# sourceMappingURL=types.d.ts.map
71
- //#endregion
72
- export { CliArgs, EnvArgs, MergedArgs, ResolvedConfig };
73
- //# sourceMappingURL=types-CnTkIHzd.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-CnTkIHzd.d.ts","names":[],"sources":["../../src/cli/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,OAAA;;EAAA,IAAA,CAAA,EAAA,MAAO;EAqBP,GAAA,CAAA,EAAA,MAAO;EAYP,MAAA,CAAA,EAAA,MAAU;EAqBV,SAAA,CAAA,EAAA,MAAc;EAAA,aAAA,CAAA,EAAA,MAAA;aAWN,CAAA,EAAA,MAAA;kBAAJ,CAAA,EAAA,MAAA;EAAG,cAAA,CAAA,EAAA,MAAA;;;;;;;;;;;KA5CP,OAAA;;;;;;;;;;;KAYA,UAAA;;;;;;;;;;;;;;;;;;;;KAqBA,cAAA;;;;;;;;;;;gBAWI,IAAI"}
@@ -1,73 +0,0 @@
1
- import { Skill } from "@sentry/mcp-core/skills";
2
-
3
- //#region src/cli/types.d.ts
4
- type CliArgs = {
5
- accessToken?: string;
6
- host?: string;
7
- url?: string;
8
- mcpUrl?: string;
9
- sentryDsn?: string;
10
- openaiBaseUrl?: string;
11
- openaiModel?: string;
12
- anthropicBaseUrl?: string;
13
- anthropicModel?: string;
14
- agentProvider?: string;
15
- skills?: string;
16
- agent?: boolean;
17
- experimental?: boolean;
18
- organizationSlug?: string;
19
- projectSlug?: string;
20
- help?: boolean;
21
- version?: boolean;
22
- unknownArgs: string[];
23
- };
24
- type EnvArgs = {
25
- accessToken?: string;
26
- host?: string;
27
- url?: string;
28
- mcpUrl?: string;
29
- sentryDsn?: string;
30
- openaiModel?: string;
31
- anthropicModel?: string;
32
- agentProvider?: string;
33
- skills?: string;
34
- };
35
- type MergedArgs = {
36
- accessToken?: string;
37
- host?: string;
38
- url?: string;
39
- mcpUrl?: string;
40
- sentryDsn?: string;
41
- openaiBaseUrl?: string;
42
- openaiModel?: string;
43
- anthropicBaseUrl?: string;
44
- anthropicModel?: string;
45
- agentProvider?: string;
46
- skills?: string;
47
- agent?: boolean;
48
- experimental?: boolean;
49
- organizationSlug?: string;
50
- projectSlug?: string;
51
- help?: boolean;
52
- version?: boolean;
53
- unknownArgs: string[];
54
- };
55
- type ResolvedConfig = {
56
- accessToken: string;
57
- sentryHost: string;
58
- mcpUrl?: string;
59
- sentryDsn?: string;
60
- openaiBaseUrl?: string;
61
- openaiModel?: string;
62
- anthropicBaseUrl?: string;
63
- anthropicModel?: string;
64
- agentProvider?: "openai" | "anthropic";
65
- /** Primary authorization method */
66
- finalSkills?: Set<Skill>;
67
- organizationSlug?: string;
68
- projectSlug?: string;
69
- };
70
- //# sourceMappingURL=types.d.ts.map
71
- //#endregion
72
- export { CliArgs, EnvArgs, MergedArgs, ResolvedConfig };
73
- //# sourceMappingURL=types-VWgo1wm6.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-VWgo1wm6.d.cts","names":[],"sources":["../../src/cli/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,OAAA;;EAAA,IAAA,CAAA,EAAA,MAAO;EAqBP,GAAA,CAAA,EAAA,MAAO;EAYP,MAAA,CAAA,EAAA,MAAU;EAqBV,SAAA,CAAA,EAAA,MAAc;EAAA,aAAA,CAAA,EAAA,MAAA;aAWN,CAAA,EAAA,MAAA;kBAAJ,CAAA,EAAA,MAAA;EAAG,cAAA,CAAA,EAAA,MAAA;;;;;;;;;;;KA5CP,OAAA;;;;;;;;;;;KAYA,UAAA;;;;;;;;;;;;;;;;;;;;KAqBA,cAAA;;;;;;;;;;;gBAWI,IAAI"}
File without changes
package/dist/cli/types.js DELETED
@@ -1 +0,0 @@
1
- export { };
@@ -1,9 +0,0 @@
1
- import { Skill } from "@sentry/mcp-core/skills";
2
-
3
- //#region src/cli/usage.d.ts
4
- declare function buildUsage(packageName: string, allSkills: ReadonlyArray<Skill>): string;
5
- //# sourceMappingURL=usage.d.ts.map
6
-
7
- //#endregion
8
- export { buildUsage };
9
- //# sourceMappingURL=usage-B0gAPy4S.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage-B0gAPy4S.d.cts","names":[],"sources":["../../src/cli/usage.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,UAAA,iCAEH,cAAc"}
@@ -1,9 +0,0 @@
1
- import { Skill } from "@sentry/mcp-core/skills";
2
-
3
- //#region src/cli/usage.d.ts
4
- declare function buildUsage(packageName: string, allSkills: ReadonlyArray<Skill>): string;
5
- //# sourceMappingURL=usage.d.ts.map
6
-
7
- //#endregion
8
- export { buildUsage };
9
- //# sourceMappingURL=usage-BhCVaC5j.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage-BhCVaC5j.d.ts","names":[],"sources":["../../src/cli/usage.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,UAAA,iCAEH,cAAc"}
@@ -1,47 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
-
3
- //#region src/cli/usage.ts
4
- function buildUsage(packageName, allSkills) {
5
- return `Usage: ${packageName} --access-token=<token> [--host=<host>]
6
-
7
- Required:
8
- --access-token <token> Sentry User Auth Token with API access
9
-
10
- Common optional flags:
11
- --host <host> Change Sentry host (self-hosted)
12
- --sentry-dsn <dsn> Override DSN used for telemetry reporting
13
- --agent Agent mode: only expose use_sentry tool (for AI agents)
14
- --experimental Enable experimental tools (hidden by default)
15
-
16
- Embedded agent configuration:
17
- --agent-provider <provider> LLM provider: openai or anthropic (auto-detects from API keys)
18
- --openai-base-url <url> Override OpenAI API base URL
19
- --openai-model <model> Override OpenAI model (default: gpt-5)
20
- --anthropic-base-url <url> Override Anthropic API base URL
21
- --anthropic-model <model> Override Anthropic model (default: claude-sonnet-4-5)
22
-
23
- Session constraints:
24
- --organization-slug <slug> Force all calls to an organization
25
- --project-slug <slug> Optional project constraint
26
-
27
- Skill controls:
28
- --skills <list> Specify which skills to grant (default: all skills)
29
-
30
- All skills: ${allSkills.join(", ")}
31
-
32
- Environment variables:
33
- SENTRY_ACCESS_TOKEN Sentry auth token (alternative to --access-token)
34
- OPENAI_API_KEY OpenAI API key for AI-powered search tools
35
- ANTHROPIC_API_KEY Anthropic API key for AI-powered search tools
36
- EMBEDDED_AGENT_PROVIDER Provider override: openai or anthropic
37
-
38
- Examples:
39
- ${packageName} --access-token=TOKEN
40
- ${packageName} --access-token=TOKEN --skills=inspect,triage
41
- ${packageName} --access-token=TOKEN --host=sentry.example.com
42
- ${packageName} --access-token=TOKEN --agent-provider=anthropic`;
43
- }
44
-
45
- //#endregion
46
- exports.buildUsage = buildUsage;
47
- //# sourceMappingURL=usage.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.cjs","names":[],"sources":["../../src/cli/usage.ts"],"sourcesContent":["import type { Skill } from \"@sentry/mcp-core/skills\";\n\nexport function buildUsage(\n packageName: string,\n allSkills: ReadonlyArray<Skill>,\n): string {\n return `Usage: ${packageName} --access-token=<token> [--host=<host>]\n\nRequired:\n --access-token <token> Sentry User Auth Token with API access\n\nCommon optional flags:\n --host <host> Change Sentry host (self-hosted)\n --sentry-dsn <dsn> Override DSN used for telemetry reporting\n --agent Agent mode: only expose use_sentry tool (for AI agents)\n --experimental Enable experimental tools (hidden by default)\n\nEmbedded agent configuration:\n --agent-provider <provider> LLM provider: openai or anthropic (auto-detects from API keys)\n --openai-base-url <url> Override OpenAI API base URL\n --openai-model <model> Override OpenAI model (default: gpt-5)\n --anthropic-base-url <url> Override Anthropic API base URL\n --anthropic-model <model> Override Anthropic model (default: claude-sonnet-4-5)\n\nSession constraints:\n --organization-slug <slug> Force all calls to an organization\n --project-slug <slug> Optional project constraint\n\nSkill controls:\n --skills <list> Specify which skills to grant (default: all skills)\n\nAll skills: ${allSkills.join(\", \")}\n\nEnvironment variables:\n SENTRY_ACCESS_TOKEN Sentry auth token (alternative to --access-token)\n OPENAI_API_KEY OpenAI API key for AI-powered search tools\n ANTHROPIC_API_KEY Anthropic API key for AI-powered search tools\n EMBEDDED_AGENT_PROVIDER Provider override: openai or anthropic\n\nExamples:\n ${packageName} --access-token=TOKEN\n ${packageName} --access-token=TOKEN --skills=inspect,triage\n ${packageName} --access-token=TOKEN --host=sentry.example.com\n ${packageName} --access-token=TOKEN --agent-provider=anthropic`;\n}\n"],"mappings":";;;AAEA,SAAgB,WACd,aACA,WACQ;AACR,QAAO,UAAU,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;cAyBjB,UAAU,KAAK,KAAK,CAAC;;;;;;;;;IAS/B,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY"}
package/dist/cli/usage.js DELETED
@@ -1,45 +0,0 @@
1
- //#region src/cli/usage.ts
2
- function buildUsage(packageName, allSkills) {
3
- return `Usage: ${packageName} --access-token=<token> [--host=<host>]
4
-
5
- Required:
6
- --access-token <token> Sentry User Auth Token with API access
7
-
8
- Common optional flags:
9
- --host <host> Change Sentry host (self-hosted)
10
- --sentry-dsn <dsn> Override DSN used for telemetry reporting
11
- --agent Agent mode: only expose use_sentry tool (for AI agents)
12
- --experimental Enable experimental tools (hidden by default)
13
-
14
- Embedded agent configuration:
15
- --agent-provider <provider> LLM provider: openai or anthropic (auto-detects from API keys)
16
- --openai-base-url <url> Override OpenAI API base URL
17
- --openai-model <model> Override OpenAI model (default: gpt-5)
18
- --anthropic-base-url <url> Override Anthropic API base URL
19
- --anthropic-model <model> Override Anthropic model (default: claude-sonnet-4-5)
20
-
21
- Session constraints:
22
- --organization-slug <slug> Force all calls to an organization
23
- --project-slug <slug> Optional project constraint
24
-
25
- Skill controls:
26
- --skills <list> Specify which skills to grant (default: all skills)
27
-
28
- All skills: ${allSkills.join(", ")}
29
-
30
- Environment variables:
31
- SENTRY_ACCESS_TOKEN Sentry auth token (alternative to --access-token)
32
- OPENAI_API_KEY OpenAI API key for AI-powered search tools
33
- ANTHROPIC_API_KEY Anthropic API key for AI-powered search tools
34
- EMBEDDED_AGENT_PROVIDER Provider override: openai or anthropic
35
-
36
- Examples:
37
- ${packageName} --access-token=TOKEN
38
- ${packageName} --access-token=TOKEN --skills=inspect,triage
39
- ${packageName} --access-token=TOKEN --host=sentry.example.com
40
- ${packageName} --access-token=TOKEN --agent-provider=anthropic`;
41
- }
42
-
43
- //#endregion
44
- export { buildUsage };
45
- //# sourceMappingURL=usage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.js","names":[],"sources":["../../src/cli/usage.ts"],"sourcesContent":["import type { Skill } from \"@sentry/mcp-core/skills\";\n\nexport function buildUsage(\n packageName: string,\n allSkills: ReadonlyArray<Skill>,\n): string {\n return `Usage: ${packageName} --access-token=<token> [--host=<host>]\n\nRequired:\n --access-token <token> Sentry User Auth Token with API access\n\nCommon optional flags:\n --host <host> Change Sentry host (self-hosted)\n --sentry-dsn <dsn> Override DSN used for telemetry reporting\n --agent Agent mode: only expose use_sentry tool (for AI agents)\n --experimental Enable experimental tools (hidden by default)\n\nEmbedded agent configuration:\n --agent-provider <provider> LLM provider: openai or anthropic (auto-detects from API keys)\n --openai-base-url <url> Override OpenAI API base URL\n --openai-model <model> Override OpenAI model (default: gpt-5)\n --anthropic-base-url <url> Override Anthropic API base URL\n --anthropic-model <model> Override Anthropic model (default: claude-sonnet-4-5)\n\nSession constraints:\n --organization-slug <slug> Force all calls to an organization\n --project-slug <slug> Optional project constraint\n\nSkill controls:\n --skills <list> Specify which skills to grant (default: all skills)\n\nAll skills: ${allSkills.join(\", \")}\n\nEnvironment variables:\n SENTRY_ACCESS_TOKEN Sentry auth token (alternative to --access-token)\n OPENAI_API_KEY OpenAI API key for AI-powered search tools\n ANTHROPIC_API_KEY Anthropic API key for AI-powered search tools\n EMBEDDED_AGENT_PROVIDER Provider override: openai or anthropic\n\nExamples:\n ${packageName} --access-token=TOKEN\n ${packageName} --access-token=TOKEN --skills=inspect,triage\n ${packageName} --access-token=TOKEN --host=sentry.example.com\n ${packageName} --access-token=TOKEN --agent-provider=anthropic`;\n}\n"],"mappings":";AAEA,SAAgB,WACd,aACA,WACQ;AACR,QAAO,UAAU,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;cAyBjB,UAAU,KAAK,KAAK,CAAC;;;;;;;;;IAS/B,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY"}