Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/mcp-provider-api/src/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export abstract class McpProvider implements Versioned {
}

/**
* This method allows the server to check that this provider is return compatible prompts, resources, and tools to be registered.
* This method allows the server to check that this provider is returning compatible prompts, resources, and tools to be registered.
* IMPORTANT: Subclasses should not override this method.
*/
public getVersion(): SemVer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Examples (natural language → selector/topN):
`;

export const inputSchema = z.object({
resultsFile: z.string().describe("Absolute path to a results JSON file produced by the code analyzer., if results file is not provided, call run_code_analyzer tool to generate a results file first."),
resultsFile: z.string().describe("Absolute path to a results JSON file produced by the code analyzer. If a results file is not provided, call run_code_analyzer tool to generate a results file first."),
selector: z.string().describe('Selector (same semantics as "list_code_analyzer_rules"): colon-separated tokens with optional OR-groups in parentheses, e.g., "Security:(pmd,eslint):High".'),
topN: z.number().int().positive().max(1000).default(DEFAULT_TOPN_POLICY_LIMIT)
.describe(`Return at most this many violations after filtering and sorting (default ${DEFAULT_TOPN_POLICY_LIMIT}). Never increase this number unless the user explicitly asks for a larger result set. Requests >${DEFAULT_TOPN_POLICY_LIMIT} require allowLargeResultSet=true.`),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,11 @@ export class SfDevopsPromoteWorkItem extends McpTool<InputArgsShape, OutputArgsS
- Never promote without explicit user confirmation of workitems.

**Output:**
- JSON with promotion requestId (if available) and any error details.
A JSON object containing the promotion request ID, the org details, and any relevant status or tracking information.

**Next steps:**
- Suggest how to track promotion status using the returned requestId or the DevOps Center UI.
- If applicable, prompt the user to promote to the next stage after validation.

**Output:**
A JSON object containing the promotion request ID, the org details, and any relevant status or tracking information.
`,
inputSchema: inputSchema.shape,
outputSchema: undefined,
Expand Down
4 changes: 2 additions & 2 deletions packages/mcp-provider-dx-core/src/shared/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ export function sanitizePath(projectPath: string): boolean {
// Check for various traversal patterns
const hasTraversal =
normalizedProjectPath.includes('..') ||
normalizedProjectPath.includes('\u2025') || // Unicode horizontal ellipsis
normalizedProjectPath.includes('\u2026'); // Unicode vertical ellipsis
normalizedProjectPath.includes('\u2025') || // Unicode two dot leader
normalizedProjectPath.includes('\u2026'); // Unicode horizontal ellipsis

// `path.isAbsolute` doesn't cover Windows's drive-relative path:
// https://github.com/nodejs/node/issues/56766
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ create a snapshot of my MyScratch in myDevHub`,
});

if (createResponse.success === false) {
return textResponse(`An error while created the org snapshot: ${JSON.stringify(createResponse)}`, true);
return textResponse(`An error occurred while creating the org snapshot: ${JSON.stringify(createResponse)}`, true);
}
const result = await devHubConnection.singleRecordQuery(`SELECT Id,
SnapshotName,
Expand Down
6 changes: 3 additions & 3 deletions packages/mcp-provider-dx-core/src/tools/deploy_metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ import { textResponse } from '../shared/utils.js';
*/

export const deployMetadataParams = z.object({
ignoreConflicts: z.boolean().describe(' Ignore conflicts and deploy local files, even if they overwrite changes in the org.').optional(),
ignoreConflicts: z.boolean().describe('Ignore conflicts and deploy local files, even if they overwrite changes in the org.').optional(),
sourceDir: z
.array(z.string())
.describe('Path to the local source files to deploy. Leave this unset if the user is vague about what to deploy.')
Expand All @@ -59,7 +59,7 @@ export const deployMetadataParams = z.object({
`Apex test level to use during deployment.

AGENT INSTRUCTIONS
Set this only if the user specifically ask to run apex tests in some of these ways:
Set this only if the user specifically asks to run Apex tests in some of these ways:

NoTestRun="No tests are run"
RunLocalTests="Run all tests in the org, except the ones that originate from installed managed and unlocked packages."
Expand All @@ -73,7 +73,7 @@ Don't set this param if "apexTests" is also set.
.describe(
`Apex tests classes to run.

Set this param if the user ask an Apex test to be run during deployment.
Set this param if the user asks for an Apex test to be run during deployment.
`,
)
.optional(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ Report on my org snapshot`,
case resumableIdPrefixes.get('orgSnapshot'):
return resumeOrgSnapshot(connection, input.jobId, input.wait);
default:
return textResponse(`The job id: ${input.jobId} is not resumeable.`, true);
return textResponse(`The job id: ${input.jobId} is not resumable.`, true);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ Retrieve X metadata from my org and ignore any conflicts between the local proje
output: project.getDefaultPackage().fullPath,
});

// polling freq. is set dynamically by SDR based no the component set size.
// polling freq. is set dynamically by SDR based on the component set size.
const result = await retrieve.pollStatus({
timeout: Duration.minutes(10),
});
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp-provider-dx-core/src/tools/run_apex_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ RunSpecifiedTests="Run the Apex tests I specify, these will be specified in the
.boolean()
.default(false)
.describe(
'Weather to wait for the test to finish (false) or enque the Apex tests and return the test run id (true)',
'Whether to wait for the test to finish (false) or enqueue the Apex tests and return the test run id (true)',
),
suiteName: z.string().describe('a suite of apex test classes to run').optional(),
testRunId: z.string().default('an id of an in-progress, or completed apex test run').optional(),
Expand Down
4 changes: 2 additions & 2 deletions packages/mcp-provider-scale-products/src/shared/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ export function sanitizePath(projectPath: string): boolean {
// Check for various traversal patterns
const hasTraversal =
normalizedProjectPath.includes("..") ||
normalizedProjectPath.includes("\u2025") || // Unicode horizontal ellipsis
normalizedProjectPath.includes("\u2026"); // Unicode vertical ellipsis
normalizedProjectPath.includes("\u2025") || // Unicode two dot leader
normalizedProjectPath.includes("\u2026"); // Unicode horizontal ellipsis

// `path.isAbsolute` doesn't cover Windows's drive-relative path:
// https://github.com/nodejs/node/issues/56766
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp/src/utils/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ async function getDefaultConfig(

if (!value || typeof value !== 'string' || !path) return undefined;

// Return an typed object with only the necessary properties
// Return a typed object with only the necessary properties
// This reduces assertions and lowers context returned to the LLM
return { key, location, value, path } as OrgConfigInfo;
}
Expand Down