Conversation
…n parsing for Go/Python
- Standardized workspace detection error handling across all tools - Removed unsafe CWD fallback in workspace detection to prevent scanning home directory - Added modern framework markers (Vite, Next.js, Tailwind, etc.) for better root detection - Improved language detection using file counting heuristics - Expanded supported file extensions for web frameworks, scripting, and config files
- Implemented MCP Initialized and RootsListChanged handlers to sync workspace folders from Cursor/VSCode - Added AddWorkspaceRoots to Manager for bulk registration of roots - Injected dynamic 'Instructions' capability to guide AI to use file_path - Updated all tool descriptions with file_path usage hints - Improved workspace detection error messages with context-aware guidance
There was a problem hiding this comment.
Pull request overview
This pull request introduces major standardization and usability improvements to the RagCode MCP server by adding a consistent rag_ prefix to all tools, enhancing workspace detection with MCP Roots integration, and enabling Homebrew distribution support.
Changes:
- Renamed all 9 existing MCP tools with
rag_prefix for better namespacing (e.g.,search_code→rag_search_code) - Added new
rag_evaluatetool for AI assistants to provide qualitative feedback on system performance - Enhanced workspace detection with fallback logic for single-workspace scenarios and MCP Roots synchronization
- Expanded language detection support to include Vue, Svelte, Shell, SQL, CSS, Markdown, YAML, JSON, and TOML
- Unified GoReleaser configuration (.goreleaser.yml → .goreleaser.yaml) with Homebrew tap support
- Updated all documentation, examples, and IDE integration files to reflect new tool names
- Improved health check functionality to verify required Ollama models at startup
Reviewed changes
Copilot reviewed 42 out of 45 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| server.json | Updated version to 1.1.21 and renamed all 10 tools with rag_ prefix |
| llms.txt, llms-full.txt | Updated tool documentation with new names and added rag_evaluate |
| internal/workspace/manager.go | Added workspace registry, MCP Roots integration, and fallback detection |
| internal/workspace/language_detection.go | Expanded language support and added count-based detection |
| internal/workspace/detector.go | Added markers for modern frameworks (Next.js, Vite, Deno, etc.) |
| internal/workspace/watcher.go | Reduced file watcher debounce delay from 5s to 1s |
| internal/tools/*.go | Renamed all tools with rag_ prefix and updated descriptions |
| internal/tools/evaluate_ragcode.go | New tool for AI self-evaluation and feedback collection |
| internal/healthcheck/healthcheck.go | Added model verification to health checks |
| cmd/rag-code-mcp/main.go | Integrated MCP Roots handlers and updated tool schemas |
| .goreleaser.yaml | Added index-all build and Homebrew tap configuration |
| .goreleaser.yml | Removed in favor of .yaml extension |
| docs/*.md | Comprehensive documentation updates for new tool names |
| README.md, QUICKSTART.md | Updated quickstart guides and tool references |
| IDE configuration files | Updated all .cursorrules, .windsurfrules, etc. with new names |
…x startup health checks - Implemented generic analyzer for basic language support (Vue, Svelte, Shell, etc.) - Added pro-active AI warnings for workspace detection fallbacks in all search tools - Made startup health checks (Ollama/Qdrant/Models) fatal to prevent silent failures - Improved rag_evaluate tool with better logging and resilient workspace detection - Updated README with language support levels and technical details
…or unknown types - Resolves TestAnalyzerManager_CodeAnalyzerForProjectType_Unknown failure - Maintains generic analyzer support for Vue, Svelte, CSS, Shell, SQL, and Bash - Aligns with expected semantics for unimplemented languages like Rust and Java
… flow - Workspace: Decoupled detection from registration; added RegisterWorkspace and DetectAndRegisterWorkspace helper for Separation of Concerns. - Performance: Added JIT analysis caching for rag_find_type_definition (Go/Python) to reduce re-parsing overhead. - Search: Optimized default search limit to 5 results for rag_search_code and rag_hybrid_search to save tokens. - Stability: Improved Ollama model name matching to handle tags like ':latest' robustly. - Analyzers: Allowed indexing of 'public' and 'tmp' directories in generic and HTML analyzers to capture source code in assets. - Release: Made Homebrew tap update conditional on token presence to prevent CI failures. - Server: Added warning logs for unsupported URI schemes and fixed Windows path handling for MCP roots. - Docs: Clarified rag_evaluate parameters and updated configuration warnings.
4cc6191 to
53bf7a5
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 50 out of 53 changed files in this pull request and generated 9 comments.
Comments suppressed due to low confidence (1)
.goreleaser.yml:1
- The PR description mentions "Cleaned up the repository by removing compiled binaries and redundant files" but the
.goreleaser.ymlfile shown in the diff appears to be completely deleted (110 lines removed). While this is intentional (consolidating into.goreleaser.yaml), it would be helpful to note in the PR description that the old.goreleaser.ymlwas removed in favor of the canonical.goreleaser.yamlfile to avoid confusion about whether this was accidental.
- tools: enforce mandatory 'file_path' in context-aware tools (search_docs, list_exports, get_function) - tools: implement robust JIT caching with TTL and eviction in find_type_definition - healthcheck: fix variable shadowing in model verification loop - main: correct Windows path normalization to handle lowercase drive letters - config: align default search limit to 5 - ragcode: use consistent Language constants and improve error handling in generic analyzer - workspace: whitelist 'public' directory for better asset indexing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces major stability and consistency improvements to the RagCode MCP server, focusing on AI agent experience and release automation.
Key Changes:
rag_prefix (e.g.,rag_search_code,rag_evaluate) to ensure a clear namespace and avoid name conflicts in IDEs.file_pathparameter for all tools, ensuring accurate project root and language detection, eliminating "workspace not found" errors.rag_evaluatetool, allowing AI assistants to provide qualitative feedback on system performance and indexed code quality.doITmagic/homebrew-tap) for native installation and simplified updates on macOS.Type of change
Checklist:
go fmt ./...