-
Notifications
You must be signed in to change notification settings - Fork 99
feat: MCP - expanded file selector for more supported tabular file formats; auto index for files larger than 10mb
#3278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: MCP - expanded file selector for more supported tabular file formats; auto index for files larger than 10mb
#3278
Conversation
- CSV dialects (ssv, tsv, tab and snappy-compressed versions) - Excel - jsonl/ndjson Also, automatically index CSV dialects larger than 10mb
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR expands the MCP server's file format support and adds automatic indexing capabilities for improved performance. The server now handles Excel, OpenDocument Spreadsheet, and JSONL/NDJSON files in addition to native CSV formats, with transparent conversion to CSV using qsv's excel and jsonl commands. Files larger than 10MB are automatically indexed for faster processing.
Key changes:
- Added support for Excel (.xls, .xlsx, .xlsm, .xlsb), OpenDocument (.ods), and JSONL (.jsonl, .ndjson) formats with automatic conversion to CSV
- Implemented automatic indexing for CSV files >10MB to improve query performance
- Enhanced file metadata display to show file size and modification date in file listings
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 10 comments.
| File | Description |
|---|---|
.claude/skills/src/mcp-tools.ts |
Adds file conversion logic for Excel/JSONL formats and auto-indexing for large files (>10MB) |
.claude/skills/src/mcp-filesystem.ts |
Expands allowed file extensions, adds helper methods for conversion detection, updates MIME type mappings, and enhances file listing with metadata |
.claude/skills/README-MCP.md |
Documents the newly supported file formats and auto-conversion features |
.claude/skills/FILESYSTEM_USAGE.md |
Provides detailed explanation of supported formats, conversion process, and auto-indexing behavior |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 10 comments.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…_MCP_ prefix for all env_vars
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 9 comments.
All timeout-sensitive operations now have 5-minute protection against indefinite hangs, type safety is improved, and code duplication has been eliminated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Issue 1: Cache Entry Timestamp Not Updated on Reuse - Added touchConvertedFile() method to ConvertedFileManager (src/converted-file-manager.ts:133-147) - This method updates the createdAt timestamp when a cached converted file is reused - Called from mcp-tools.ts:351 before reusing a converted file - Ensures actively-used files maintain recent timestamps and won't be prematurely deleted during LIFO cleanup Issue 2: Race Condition in Cache File Operations - Implemented atomic write pattern in saveCache() method (src/converted-file-manager.ts:57-68) - Uses temp file with unique name (includes process.pid and timestamp) + atomic rename - Added stale temp file cleanup in cleanupOrphanedEntries() (src/converted-file-manager.ts:228-252) - Removes temp files older than 1 hour to prevent disk clutter from crashed processes - Prevents cache corruption when multiple qsv operations run concurrently
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
No description provided.