diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index e79ae2840..c9410f80c 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed +- Fixed invalid file and url MCP results for local indexed repos [#718](https://github.com/sourcebot-dev/sourcebot/pull/718) + ## [1.0.11] - 2025-12-03 ### Changed diff --git a/packages/mcp/src/index.ts b/packages/mcp/src/index.ts index c704540f4..43c08f248 100644 --- a/packages/mcp/src/index.ts +++ b/packages/mcp/src/index.ts @@ -106,7 +106,8 @@ server.tool( (acc, chunk) => acc + chunk.matchRanges.length, 0, ); - let text = `file: ${file.webUrl}\nnum_matches: ${numMatches}\nrepository: ${file.repository}\nlanguage: ${file.language}`; + const fileIdentifier = file.webUrl ?? file.fileName.text; + let text = `file: ${fileIdentifier}\nnum_matches: ${numMatches}\nrepository: ${file.repository}\nlanguage: ${file.language}`; if (includeCodeSnippets) { const snippets = file.chunks.map(chunk => { @@ -200,9 +201,10 @@ server.tool( // Format output const content: TextContent[] = paginated.map(repo => { + const repoUrl = repo.webUrl ?? repo.repoCloneUrl; return { type: "text", - text: `id: ${repo.repoName}\nurl: ${repo.webUrl}`, + text: `id: ${repo.repoName}\nurl: ${repoUrl}`, } });