Remove list_files mcp

This commit is contained in:
Shawn Morreau
2025-12-23 15:34:38 -05:00
committed by GitHub
parent 0a7a38a9a5
commit 3f996b4759
5 changed files with 16493 additions and 9612 deletions
-1
View File
@@ -143,7 +143,6 @@ Tool names may be formatted as \`(server name)/(tool name)\`, for example: \`${g
**Git operations**: All git operations must use ${ghPullfrogMcpName} MCP tools to ensure proper authentication and commit attribution. Do NOT use git commands directly (e.g., \`git commit\`, \`git push\`, \`git checkout\`, \`git branch\`) - these will use incorrect credentials and attribute commits to the wrong author.
**File discovery**: Use \`${ghPullfrogMcpName}/list_files\` to discover files in the repository. This tool finds both git-tracked and untracked files, including newly created files that haven't been committed yet. Prefer this over native agent tools like \`glob\` or \`grep\` for file discovery, as it provides consistent results and handles untracked files correctly.
` +
// **Available git MCP tools**:
// - \`${ghPullfrogMcpName}/checkout_pr\` - Checkout an existing PR branch locally (handles fork PRs automatically)
+16492 -9517
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
add a file implementing quicksort and test it
Find all markdown files in the repository and list their names from https://github.com/ShawnMorreau/cal.com/
-91
View File
@@ -1,91 +0,0 @@
import { relative, resolve } from "node:path";
import { type } from "arktype";
import type { ToolContext } from "../main.ts";
import { $ } from "../utils/shell.ts";
import { execute, tool } from "./shared.ts";
export const ListFiles = type({
path: type.string
.describe("The path to list files from (defaults to current directory)")
.default("."),
});
export function ListFilesTool(_ctx: ToolContext) {
return tool({
name: "list_files",
description:
"List files in the repository, including both git-tracked and untracked files. Useful for discovering the file structure and locating files, including newly created files that haven't been committed yet.",
parameters: ListFiles,
execute: execute(async ({ path }: { path?: string }) => {
const pathStr = path ?? ".";
const cwd = process.cwd();
// Get git-tracked files
let gitFiles: string[] = [];
let gitFailed = false;
try {
const gitArgs = pathStr === "." ? ["ls-files"] : ["ls-files", pathStr];
const gitOutput = $("git", gitArgs, { log: false });
gitFiles = gitOutput
.split("\n")
.filter((f) => f.trim() !== "")
.map((f) => f.trim());
} catch {
// git might fail, that's ok - we'll use find instead
gitFailed = true;
}
// Always also check filesystem for untracked files
// This is important because newly created files won't be in git yet
let filesystemFiles: string[] = [];
let findFailed = false;
try {
const findOutput = $(
"find",
[pathStr, "-maxdepth", "3", "-not", "-path", "*/.*", "-type", "f"],
{ log: false }
);
filesystemFiles = findOutput
.split("\n")
.filter((f) => f.trim() !== "")
.map((f) => {
const trimmed = f.trim();
// normalize to relative paths for comparison
try {
return relative(cwd, resolve(cwd, trimmed));
} catch {
return trimmed;
}
});
} catch {
// find might fail, that's ok - we'll just use git files
findFailed = true;
}
// if both methods failed, throw an error (execute helper will handle it)
if (gitFailed && findFailed) {
throw new Error(
`Failed to list files: both git ls-files and find commands failed. ` +
`Path: ${pathStr}, working directory: ${cwd}`
);
}
// Create a Set of git files for efficient lookup
const gitFilesSet = new Set(gitFiles);
// Combine both lists, removing duplicates
const allFiles = [...new Set([...gitFiles, ...filesystemFiles])].sort();
// Calculate actual untracked count (files in filesystem but not in git)
const untrackedFiles = filesystemFiles.filter((f) => !gitFilesSet.has(f));
const untrackedCount = untrackedFiles.length;
return {
files: allFiles,
method: "combined",
trackedCount: gitFiles.length,
untrackedCount,
};
}),
});
}
-2
View File
@@ -17,7 +17,6 @@ import {
AwaitDependencyInstallationTool,
StartDependencyInstallationTool,
} from "./dependencies.ts";
import { ListFilesTool } from "./files.ts";
import { CommitFilesTool, CreateBranchTool, PushBranchTool } from "./git.ts";
import { IssueTool } from "./issue.ts";
import { GetIssueCommentsTool } from "./issueComments.ts";
@@ -95,7 +94,6 @@ export async function startMcpHttpServer(
CreateBranchTool(ctx),
CommitFilesTool(ctx),
PushBranchTool(ctx),
ListFilesTool(ctx),
];
if (!ctx.payload.disableProgressComment) {