@mseep/csv-editor 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/bug_report.md +53 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +38 -0
- package/.github/workflows/deploy-docs.yml +62 -0
- package/.github/workflows/publish-github.yml +52 -0
- package/.github/workflows/publish.yml +44 -0
- package/.github/workflows/test.yml +32 -0
- package/.pre-commit-config.yaml +157 -0
- package/ALTERNATIVE_PUBLISHING.md +175 -0
- package/ARCHITECTURE.md +1011 -0
- package/CHANGELOG.md +99 -0
- package/CODE_OF_CONDUCT.md +41 -0
- package/CONTRIBUTING.md +427 -0
- package/Dockerfile +22 -0
- package/LICENSE +21 -0
- package/MCP_CONFIG.md +505 -0
- package/PUBLISHING.md +210 -0
- package/README.md +400 -0
- package/SECURITY.md +61 -0
- package/docs/README.md +41 -0
- package/docs/blog/2019-05-28-first-blog-post.md +12 -0
- package/docs/blog/2019-05-29-long-blog-post.md +44 -0
- package/docs/blog/2021-08-01-mdx-blog-post.mdx +24 -0
- package/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- package/docs/blog/2021-08-26-welcome/index.md +29 -0
- package/docs/blog/authors.yml +25 -0
- package/docs/blog/tags.yml +19 -0
- package/docs/docs/api/overview.md +183 -0
- package/docs/docs/installation.md +252 -0
- package/docs/docs/intro.md +87 -0
- package/docs/docs/tutorial-basics/_category_.json +8 -0
- package/docs/docs/tutorial-basics/congratulations.md +23 -0
- package/docs/docs/tutorial-basics/create-a-blog-post.md +34 -0
- package/docs/docs/tutorial-basics/create-a-document.md +57 -0
- package/docs/docs/tutorial-basics/create-a-page.md +43 -0
- package/docs/docs/tutorial-basics/deploy-your-site.md +31 -0
- package/docs/docs/tutorial-basics/markdown-features.mdx +152 -0
- package/docs/docs/tutorial-extras/_category_.json +7 -0
- package/docs/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
- package/docs/docs/tutorial-extras/img/localeDropdown.png +0 -0
- package/docs/docs/tutorial-extras/manage-docs-versions.md +55 -0
- package/docs/docs/tutorial-extras/translate-your-site.md +88 -0
- package/docs/docs/tutorials/quickstart.md +365 -0
- package/docs/docusaurus.config.ts +163 -0
- package/docs/package-lock.json +17493 -0
- package/docs/package.json +48 -0
- package/docs/sidebars.ts +33 -0
- package/docs/src/components/HomepageFeatures/index.tsx +71 -0
- package/docs/src/components/HomepageFeatures/styles.module.css +11 -0
- package/docs/src/css/custom.css +30 -0
- package/docs/src/pages/index.module.css +23 -0
- package/docs/src/pages/index.tsx +44 -0
- package/docs/src/pages/markdown-page.md +7 -0
- package/docs/static/.nojekyll +0 -0
- package/docs/static/img/docusaurus-social-card.jpg +0 -0
- package/docs/static/img/docusaurus.png +0 -0
- package/docs/static/img/favicon.ico +0 -0
- package/docs/static/img/logo.svg +1 -0
- package/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
- package/docs/static/img/undraw_docusaurus_react.svg +170 -0
- package/docs/static/img/undraw_docusaurus_tree.svg +40 -0
- package/docs/tsconfig.json +8 -0
- package/examples/README.md +48 -0
- package/examples/auto_save_demo.py +206 -0
- package/examples/auto_save_overwrite.py +201 -0
- package/examples/basic_usage.py +135 -0
- package/examples/demo.py +139 -0
- package/examples/history_demo.py +317 -0
- package/examples/test_default_autosave.py +124 -0
- package/examples/update_consignee_example.py +179 -0
- package/package.json +51 -0
- package/plans/2026-04-19-fastmcp3-migration-plan.md +1045 -0
- package/pyproject.toml +331 -0
- package/requirements-dev.txt +30 -0
- package/requirements.txt +22 -0
- package/scripts/publish.py +67 -0
- package/smithery.yaml +15 -0
- package/specs/2026-04-19-fastmcp3-migration-design.md +243 -0
- package/src/csv_editor/__init__.py +8 -0
- package/src/csv_editor/models/__init__.py +39 -0
- package/src/csv_editor/models/auto_save.py +246 -0
- package/src/csv_editor/models/csv_session.py +468 -0
- package/src/csv_editor/models/data_models.py +244 -0
- package/src/csv_editor/models/history_manager.py +456 -0
- package/src/csv_editor/prompts/__init__.py +0 -0
- package/src/csv_editor/prompts/data_prompts.py +13 -0
- package/src/csv_editor/resources/__init__.py +0 -0
- package/src/csv_editor/resources/csv_resources.py +22 -0
- package/src/csv_editor/server.py +640 -0
- package/src/csv_editor/tools/__init__.py +5 -0
- package/src/csv_editor/tools/analytics.py +700 -0
- package/src/csv_editor/tools/auto_save_operations.py +235 -0
- package/src/csv_editor/tools/data_operations.py +3 -0
- package/src/csv_editor/tools/history_operations.py +315 -0
- package/src/csv_editor/tools/io_operations.py +431 -0
- package/src/csv_editor/tools/transformations.py +663 -0
- package/src/csv_editor/tools/validation.py +822 -0
- package/src/csv_editor/utils/__init__.py +0 -0
- package/src/csv_editor/utils/validators.py +205 -0
- package/tests/README.md +65 -0
- package/tests/__init__.py +7 -0
- package/tests/conftest.py +50 -0
- package/tests/test_auto_save.py +378 -0
- package/tests/test_basic.py +103 -0
- package/tests/test_integration.py +356 -0
- package/tests/test_server_boot.py +50 -0
- package/tests/test_settings.py +184 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
title: API Overview
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# API Reference Overview
|
|
7
|
+
|
|
8
|
+
CSV Editor provides a comprehensive set of tools for CSV manipulation through the Model Context Protocol (MCP). This reference documents all available tools, their parameters, and usage examples.
|
|
9
|
+
|
|
10
|
+
## Tool Categories
|
|
11
|
+
|
|
12
|
+
### 📁 I/O Operations
|
|
13
|
+
Tools for loading and exporting CSV data in various formats.
|
|
14
|
+
|
|
15
|
+
- [load_csv](./io/load-csv) - Load CSV from file
|
|
16
|
+
- [load_csv_from_url](./io/load-url) - Load CSV from URL
|
|
17
|
+
- [load_csv_from_content](./io/load-content) - Load CSV from string
|
|
18
|
+
- [export_csv](./io/export) - Export to various formats
|
|
19
|
+
- [get_session_info](./io/session-info) - Get session details
|
|
20
|
+
- [list_sessions](./io/list-sessions) - List active sessions
|
|
21
|
+
- [close_session](./io/close-session) - Close a session
|
|
22
|
+
|
|
23
|
+
### 🔧 Data Manipulation
|
|
24
|
+
Tools for transforming and modifying CSV data.
|
|
25
|
+
|
|
26
|
+
- [filter_rows](./manipulation/filter) - Filter with conditions
|
|
27
|
+
- [sort_data](./manipulation/sort) - Sort by columns
|
|
28
|
+
- [select_columns](./manipulation/select) - Select specific columns
|
|
29
|
+
- [rename_columns](./manipulation/rename) - Rename columns
|
|
30
|
+
- [add_column](./manipulation/add-column) - Add new columns
|
|
31
|
+
- [remove_columns](./manipulation/remove) - Remove columns
|
|
32
|
+
- [update_column](./manipulation/update) - Update column values
|
|
33
|
+
- [change_column_type](./manipulation/change-type) - Convert data types
|
|
34
|
+
- [fill_missing_values](./manipulation/fill-missing) - Handle nulls
|
|
35
|
+
- [remove_duplicates](./manipulation/remove-duplicates) - Deduplicate
|
|
36
|
+
|
|
37
|
+
### 📊 Analysis
|
|
38
|
+
Tools for statistical analysis and data exploration.
|
|
39
|
+
|
|
40
|
+
- [get_statistics](./analysis/statistics) - Statistical summary
|
|
41
|
+
- [get_column_statistics](./analysis/column-stats) - Column statistics
|
|
42
|
+
- [get_correlation_matrix](./analysis/correlation) - Correlation analysis
|
|
43
|
+
- [group_by_aggregate](./analysis/group-by) - Group operations
|
|
44
|
+
- [get_value_counts](./analysis/value-counts) - Frequency counts
|
|
45
|
+
- [detect_outliers](./analysis/outliers) - Find outliers
|
|
46
|
+
- [profile_data](./analysis/profile) - Data profiling
|
|
47
|
+
|
|
48
|
+
### ✅ Validation
|
|
49
|
+
Tools for data quality and validation.
|
|
50
|
+
|
|
51
|
+
- [validate_schema](./validation/schema) - Schema validation
|
|
52
|
+
- [check_data_quality](./validation/quality) - Quality metrics
|
|
53
|
+
- [find_anomalies](./validation/anomalies) - Anomaly detection
|
|
54
|
+
|
|
55
|
+
### 💾 Auto-Save & History
|
|
56
|
+
Tools for persistence and version control.
|
|
57
|
+
|
|
58
|
+
- [configure_auto_save](./persistence/auto-save) - Configure auto-save
|
|
59
|
+
- [get_auto_save_status](./persistence/auto-save-status) - Check status
|
|
60
|
+
- [trigger_manual_save](./persistence/manual-save) - Manual save
|
|
61
|
+
- [undo](./persistence/undo) - Undo last operation
|
|
62
|
+
- [redo](./persistence/redo) - Redo operation
|
|
63
|
+
- [get_history](./persistence/history) - View history
|
|
64
|
+
- [restore_to_operation](./persistence/restore) - Time travel
|
|
65
|
+
|
|
66
|
+
## Common Patterns
|
|
67
|
+
|
|
68
|
+
### Session Management
|
|
69
|
+
|
|
70
|
+
All operations require a session ID obtained from loading data:
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
# Load data and get session ID
|
|
74
|
+
result = await load_csv(file_path="/path/to/data.csv")
|
|
75
|
+
session_id = result["session_id"]
|
|
76
|
+
|
|
77
|
+
# Use session ID in subsequent operations
|
|
78
|
+
await filter_rows(session_id=session_id, conditions=[...])
|
|
79
|
+
await export_csv(session_id=session_id, format="excel")
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Error Handling
|
|
83
|
+
|
|
84
|
+
All tools return consistent error responses:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"success": false,
|
|
89
|
+
"error": "Error message",
|
|
90
|
+
"error_type": "ValueError",
|
|
91
|
+
"details": "Additional context"
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Response Format
|
|
96
|
+
|
|
97
|
+
Successful operations return:
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"success": true,
|
|
102
|
+
"data": {...},
|
|
103
|
+
"message": "Operation completed",
|
|
104
|
+
"metadata": {
|
|
105
|
+
"rows_affected": 100,
|
|
106
|
+
"execution_time": 0.123
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Data Types
|
|
112
|
+
|
|
113
|
+
### Supported Column Types
|
|
114
|
+
- `string` - Text data
|
|
115
|
+
- `integer` - Whole numbers
|
|
116
|
+
- `float` - Decimal numbers
|
|
117
|
+
- `datetime` - Date and time
|
|
118
|
+
- `boolean` - True/False values
|
|
119
|
+
- `category` - Categorical data
|
|
120
|
+
|
|
121
|
+
### Export Formats
|
|
122
|
+
- `csv` - Comma-separated values
|
|
123
|
+
- `tsv` - Tab-separated values
|
|
124
|
+
- `json` - JSON array or records
|
|
125
|
+
- `excel` - Excel spreadsheet (.xlsx)
|
|
126
|
+
- `parquet` - Apache Parquet format
|
|
127
|
+
- `html` - HTML table
|
|
128
|
+
- `markdown` - Markdown table
|
|
129
|
+
|
|
130
|
+
## Filter Operators
|
|
131
|
+
|
|
132
|
+
| Operator | Description | Example |
|
|
133
|
+
|----------|-------------|---------|
|
|
134
|
+
| `==` | Equal to | `{"column": "status", "operator": "==", "value": "active"}` |
|
|
135
|
+
| `!=` | Not equal to | `{"column": "status", "operator": "!=", "value": "inactive"}` |
|
|
136
|
+
| `>` | Greater than | `{"column": "amount", "operator": ">", "value": 1000}` |
|
|
137
|
+
| `<` | Less than | `{"column": "age", "operator": "<", "value": 18}` |
|
|
138
|
+
| `>=` | Greater than or equal | `{"column": "score", "operator": ">=", "value": 80}` |
|
|
139
|
+
| `<=` | Less than or equal | `{"column": "price", "operator": "<=", "value": 100}` |
|
|
140
|
+
| `contains` | Contains substring | `{"column": "name", "operator": "contains", "value": "John"}` |
|
|
141
|
+
| `starts_with` | Starts with | `{"column": "email", "operator": "starts_with", "value": "admin"}` |
|
|
142
|
+
| `ends_with` | Ends with | `{"column": "file", "operator": "ends_with", "value": ".csv"}` |
|
|
143
|
+
| `in` | In list | `{"column": "category", "operator": "in", "value": ["A", "B"]}` |
|
|
144
|
+
| `not_in` | Not in list | `{"column": "status", "operator": "not_in", "value": ["deleted"]}` |
|
|
145
|
+
| `is_null` | Is null | `{"column": "email", "operator": "is_null"}` |
|
|
146
|
+
| `not_null` | Is not null | `{"column": "phone", "operator": "not_null"}` |
|
|
147
|
+
|
|
148
|
+
## Aggregation Functions
|
|
149
|
+
|
|
150
|
+
Available aggregation functions for `group_by_aggregate`:
|
|
151
|
+
|
|
152
|
+
- `sum` - Sum of values
|
|
153
|
+
- `mean` - Average value
|
|
154
|
+
- `median` - Median value
|
|
155
|
+
- `min` - Minimum value
|
|
156
|
+
- `max` - Maximum value
|
|
157
|
+
- `count` - Count of non-null values
|
|
158
|
+
- `std` - Standard deviation
|
|
159
|
+
- `var` - Variance
|
|
160
|
+
- `first` - First value
|
|
161
|
+
- `last` - Last value
|
|
162
|
+
|
|
163
|
+
## Best Practices
|
|
164
|
+
|
|
165
|
+
1. **Always close sessions** when done to free resources
|
|
166
|
+
2. **Use chunking** for large files (>100MB)
|
|
167
|
+
3. **Enable auto-save** for important data
|
|
168
|
+
4. **Validate data** before processing
|
|
169
|
+
5. **Use appropriate data types** for better performance
|
|
170
|
+
6. **Handle errors gracefully** in your client code
|
|
171
|
+
|
|
172
|
+
## Rate Limits
|
|
173
|
+
|
|
174
|
+
- Maximum file size: 1GB (configurable)
|
|
175
|
+
- Maximum concurrent sessions: 10 per user
|
|
176
|
+
- Session timeout: 1 hour (configurable)
|
|
177
|
+
- Maximum rows per operation: 10 million
|
|
178
|
+
|
|
179
|
+
## Next Steps
|
|
180
|
+
|
|
181
|
+
- Explore specific tool documentation in each category
|
|
182
|
+
- See [Examples](../examples) for real-world use cases
|
|
183
|
+
- Check [Tutorials](../tutorials/quickstart) for step-by-step guides
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
title: Installation
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Installation Guide
|
|
7
|
+
|
|
8
|
+
Get CSV Editor up and running in just 2 minutes! This guide covers all installation methods and client configurations.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
- **Python 3.8+** (3.11+ recommended for best performance)
|
|
13
|
+
- **Operating System**: Windows, macOS, or Linux
|
|
14
|
+
- **Package Manager**: uv (recommended), pip, or conda
|
|
15
|
+
|
|
16
|
+
## Quick Install (Recommended)
|
|
17
|
+
|
|
18
|
+
### Using uv (Fastest)
|
|
19
|
+
|
|
20
|
+
[uv](https://github.com/astral-sh/uv) is an ultra-fast Python package manager that makes installation simple:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Install uv (one-time setup)
|
|
24
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
25
|
+
# Or on Windows: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
26
|
+
|
|
27
|
+
# Clone and install CSV Editor
|
|
28
|
+
git clone https://github.com/santoshray02/csv-editor.git
|
|
29
|
+
cd csv-editor
|
|
30
|
+
uv sync
|
|
31
|
+
|
|
32
|
+
# Run the server
|
|
33
|
+
uv run csv-editor
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Using pip
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Clone the repository
|
|
40
|
+
git clone https://github.com/santoshray02/csv-editor.git
|
|
41
|
+
cd csv-editor
|
|
42
|
+
|
|
43
|
+
# Create virtual environment
|
|
44
|
+
python -m venv .venv
|
|
45
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
46
|
+
|
|
47
|
+
# Install dependencies
|
|
48
|
+
pip install -e .
|
|
49
|
+
|
|
50
|
+
# Run the server
|
|
51
|
+
python -m csv_editor.server
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Client Configuration
|
|
55
|
+
|
|
56
|
+
### Claude Desktop
|
|
57
|
+
|
|
58
|
+
Configure Claude Desktop to use CSV Editor as an MCP server.
|
|
59
|
+
|
|
60
|
+
#### macOS
|
|
61
|
+
Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"mcpServers": {
|
|
66
|
+
"csv-editor": {
|
|
67
|
+
"command": "uv",
|
|
68
|
+
"args": ["tool", "run", "csv-editor"],
|
|
69
|
+
"cwd": "/path/to/csv-editor",
|
|
70
|
+
"env": {
|
|
71
|
+
"CSV_MAX_FILE_SIZE": "1073741824",
|
|
72
|
+
"CSV_SESSION_TIMEOUT": "3600"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### Windows
|
|
80
|
+
Edit `%APPDATA%\Claude\claude_desktop_config.json`:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"csv-editor": {
|
|
86
|
+
"command": "uv",
|
|
87
|
+
"args": ["tool", "run", "csv-editor"],
|
|
88
|
+
"cwd": "C:\\path\\to\\csv-editor",
|
|
89
|
+
"env": {
|
|
90
|
+
"CSV_MAX_FILE_SIZE": "1073741824",
|
|
91
|
+
"CSV_SESSION_TIMEOUT": "3600"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### Linux
|
|
99
|
+
Edit `~/.config/Claude/claude_desktop_config.json`:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"csv-editor": {
|
|
105
|
+
"command": "uv",
|
|
106
|
+
"args": ["tool", "run", "csv-editor"],
|
|
107
|
+
"cwd": "/home/user/csv-editor",
|
|
108
|
+
"env": {
|
|
109
|
+
"CSV_MAX_FILE_SIZE": "1073741824",
|
|
110
|
+
"CSV_SESSION_TIMEOUT": "3600"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### VS Code Extensions
|
|
118
|
+
|
|
119
|
+
#### Continue
|
|
120
|
+
Edit `~/.continue/config.json`:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"csv-editor": {
|
|
126
|
+
"command": "uv",
|
|
127
|
+
"args": ["tool", "run", "csv-editor"],
|
|
128
|
+
"cwd": "/path/to/csv-editor"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
#### Cline
|
|
135
|
+
Add to VS Code settings (`settings.json`):
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"cline.mcpServers": {
|
|
140
|
+
"csv-editor": {
|
|
141
|
+
"command": "uv",
|
|
142
|
+
"args": ["tool", "run", "csv-editor"],
|
|
143
|
+
"cwd": "/path/to/csv-editor"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Other Clients
|
|
150
|
+
|
|
151
|
+
For detailed configuration of other clients (Windsurf, Zed, etc.), see [MCP_CONFIG.md](https://github.com/santoshray02/csv-editor/blob/main/MCP_CONFIG.md).
|
|
152
|
+
|
|
153
|
+
## Advanced Installation
|
|
154
|
+
|
|
155
|
+
### Install with All Features
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# With uv
|
|
159
|
+
uv sync --all-extras
|
|
160
|
+
|
|
161
|
+
# With pip
|
|
162
|
+
pip install -e ".[all]"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Install for Development
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# With uv
|
|
169
|
+
uv sync --all-extras
|
|
170
|
+
uv run pre-commit install
|
|
171
|
+
|
|
172
|
+
# With pip
|
|
173
|
+
pip install -e ".[dev]"
|
|
174
|
+
pre-commit install
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Global Installation with pipx
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
pipx install git+https://github.com/santoshray02/csv-editor.git
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Environment Variables
|
|
184
|
+
|
|
185
|
+
Configure CSV Editor behavior with these environment variables:
|
|
186
|
+
|
|
187
|
+
| Variable | Default | Description |
|
|
188
|
+
|----------|---------|-------------|
|
|
189
|
+
| `CSV_MAX_FILE_SIZE` | 1GB | Maximum file size in bytes |
|
|
190
|
+
| `CSV_SESSION_TIMEOUT` | 3600 | Session timeout in seconds |
|
|
191
|
+
| `CSV_CHUNK_SIZE` | 10000 | Rows per processing chunk |
|
|
192
|
+
| `CSV_AUTO_SAVE` | true | Enable auto-save by default |
|
|
193
|
+
| `CSV_LOG_LEVEL` | INFO | Logging level |
|
|
194
|
+
|
|
195
|
+
## Verification
|
|
196
|
+
|
|
197
|
+
### Test the Installation
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Check if server starts
|
|
201
|
+
uv run csv-editor --help
|
|
202
|
+
|
|
203
|
+
# Run with verbose output
|
|
204
|
+
CSV_LOG_LEVEL=DEBUG uv run csv-editor
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Test with MCP Inspector
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Install MCP Inspector
|
|
211
|
+
npm install -g @modelcontextprotocol/inspector
|
|
212
|
+
|
|
213
|
+
# Test the server
|
|
214
|
+
mcp-inspector uv tool run csv-editor
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Verify in Your Client
|
|
218
|
+
|
|
219
|
+
1. **Claude Desktop**: Look for "csv-editor" in the MCP servers list
|
|
220
|
+
2. **VS Code**: Check the extension's MCP panel
|
|
221
|
+
3. **Command Line**: Run a test command
|
|
222
|
+
|
|
223
|
+
## Troubleshooting
|
|
224
|
+
|
|
225
|
+
### Common Issues
|
|
226
|
+
|
|
227
|
+
#### Server not starting
|
|
228
|
+
- Check Python version: `python --version` (must be 3.8+)
|
|
229
|
+
- Verify installation: `uv run csv-editor --version`
|
|
230
|
+
- Check logs: `CSV_LOG_LEVEL=DEBUG uv run csv-editor`
|
|
231
|
+
|
|
232
|
+
#### Client can't connect
|
|
233
|
+
- Verify the path in your configuration is correct
|
|
234
|
+
- Ensure the server is running
|
|
235
|
+
- Check firewall settings for local connections
|
|
236
|
+
|
|
237
|
+
#### Permission errors
|
|
238
|
+
- On macOS/Linux: Check file permissions
|
|
239
|
+
- On Windows: Run as administrator if needed
|
|
240
|
+
|
|
241
|
+
### Getting Help
|
|
242
|
+
|
|
243
|
+
- [GitHub Issues](https://github.com/santoshray02/csv-editor/issues)
|
|
244
|
+
- [GitHub Discussions](https://github.com/santoshray02/csv-editor/discussions)
|
|
245
|
+
- [Documentation](https://csv-editor-docs.vercel.app)
|
|
246
|
+
|
|
247
|
+
## Next Steps
|
|
248
|
+
|
|
249
|
+
Now that CSV Editor is installed, continue to:
|
|
250
|
+
- [Quick Start Tutorial](./tutorials/quickstart) - Learn the basics
|
|
251
|
+
- [API Reference](./api/overview) - Explore all available tools
|
|
252
|
+
- [Examples](./examples) - See real-world use cases
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
title: Introduction
|
|
4
|
+
slug: /intro
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Welcome to CSV Editor
|
|
8
|
+
|
|
9
|
+
**Transform how AI assistants work with CSV data.** CSV Editor is a high-performance MCP (Model Context Protocol) server that gives Claude, ChatGPT, and other AI assistants powerful data manipulation capabilities through simple commands.
|
|
10
|
+
|
|
11
|
+
## What is CSV Editor?
|
|
12
|
+
|
|
13
|
+
CSV Editor is a comprehensive data processing tool that bridges the gap between AI assistants and complex data operations. It provides 40+ specialized tools for CSV operations, turning AI assistants into powerful data analysts.
|
|
14
|
+
|
|
15
|
+
## Key Features
|
|
16
|
+
|
|
17
|
+
### 🚀 Core Capabilities
|
|
18
|
+
- **Session Management**: Multi-user support with isolated sessions
|
|
19
|
+
- **Auto-Save**: Automatic data persistence with multiple strategies
|
|
20
|
+
- **History & Undo/Redo**: Complete operation history with time-travel
|
|
21
|
+
- **Multiple Data Sources**: Load from files, URLs, or strings
|
|
22
|
+
- **Export Formats**: CSV, JSON, Excel, Parquet, HTML, Markdown
|
|
23
|
+
|
|
24
|
+
### 📊 Data Operations
|
|
25
|
+
- Complex filtering with AND/OR logic
|
|
26
|
+
- Multi-column sorting
|
|
27
|
+
- Column operations (add, remove, rename, update)
|
|
28
|
+
- Smart type conversion
|
|
29
|
+
- Missing value handling
|
|
30
|
+
- Duplicate removal
|
|
31
|
+
|
|
32
|
+
### 📈 Analytics
|
|
33
|
+
- Statistical analysis with percentiles
|
|
34
|
+
- Correlation matrices (Pearson, Spearman, Kendall)
|
|
35
|
+
- Group-by aggregations
|
|
36
|
+
- Outlier detection (IQR, Z-score)
|
|
37
|
+
- Comprehensive data profiling
|
|
38
|
+
|
|
39
|
+
### ✅ Validation
|
|
40
|
+
- Schema validation
|
|
41
|
+
- Data quality scoring
|
|
42
|
+
- Anomaly detection
|
|
43
|
+
- Pattern matching
|
|
44
|
+
|
|
45
|
+
## Why Choose CSV Editor?
|
|
46
|
+
|
|
47
|
+
| Feature | CSV Editor | Traditional Tools |
|
|
48
|
+
|---------|-----------|------------------|
|
|
49
|
+
| **AI Integration** | Native MCP protocol | Manual operations |
|
|
50
|
+
| **Auto-Save** | Automatic with strategies | Manual save required |
|
|
51
|
+
| **History Tracking** | Full undo/redo | Limited or none |
|
|
52
|
+
| **Session Management** | Multi-user isolated | Single user |
|
|
53
|
+
| **Performance** | Handles GB+ files | Memory limitations |
|
|
54
|
+
|
|
55
|
+
## Quick Example
|
|
56
|
+
|
|
57
|
+
Here's what your AI assistant can do with CSV Editor:
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
# Natural language commands become data operations
|
|
61
|
+
"Load the sales data and remove duplicates"
|
|
62
|
+
"Filter for Q4 2024 transactions over $10,000"
|
|
63
|
+
"Calculate correlation between price and quantity"
|
|
64
|
+
"Fill missing values with the median"
|
|
65
|
+
"Export as Excel with the analysis"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Getting Started
|
|
69
|
+
|
|
70
|
+
Ready to supercharge your AI's data capabilities? Continue to the [Installation Guide](./installation) to set up CSV Editor in just 2 minutes!
|
|
71
|
+
|
|
72
|
+
## Learn More
|
|
73
|
+
|
|
74
|
+
- [Installation Guide](./installation) - Set up CSV Editor
|
|
75
|
+
- [Quick Start Tutorial](./tutorials/quickstart) - Your first data processing
|
|
76
|
+
- [API Reference](./api/overview) - Complete tool documentation
|
|
77
|
+
- [Examples](./examples) - Real-world use cases
|
|
78
|
+
|
|
79
|
+
## Community & Support
|
|
80
|
+
|
|
81
|
+
- [GitHub Repository](https://github.com/santoshray02/csv-editor)
|
|
82
|
+
- [GitHub Discussions](https://github.com/santoshray02/csv-editor/discussions)
|
|
83
|
+
- [Report Issues](https://github.com/santoshray02/csv-editor/issues)
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
**Built with ❤️ using [FastMCP](https://github.com/jlowin/fastmcp) and [Pandas](https://pandas.pydata.org/)**
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 6
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Congratulations!
|
|
6
|
+
|
|
7
|
+
You have just learned the **basics of Docusaurus** and made some changes to the **initial template**.
|
|
8
|
+
|
|
9
|
+
Docusaurus has **much more to offer**!
|
|
10
|
+
|
|
11
|
+
Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
|
|
12
|
+
|
|
13
|
+
Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
|
|
14
|
+
|
|
15
|
+
## What's next?
|
|
16
|
+
|
|
17
|
+
- Read the [official documentation](https://docusaurus.io/)
|
|
18
|
+
- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
|
|
19
|
+
- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
|
|
20
|
+
- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
|
|
21
|
+
- Add a [search bar](https://docusaurus.io/docs/search)
|
|
22
|
+
- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
|
|
23
|
+
- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 3
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Create a Blog Post
|
|
6
|
+
|
|
7
|
+
Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
|
|
8
|
+
|
|
9
|
+
## Create your first Post
|
|
10
|
+
|
|
11
|
+
Create a file at `blog/2021-02-28-greetings.md`:
|
|
12
|
+
|
|
13
|
+
```md title="blog/2021-02-28-greetings.md"
|
|
14
|
+
---
|
|
15
|
+
slug: greetings
|
|
16
|
+
title: Greetings!
|
|
17
|
+
authors:
|
|
18
|
+
- name: Joel Marcey
|
|
19
|
+
title: Co-creator of Docusaurus 1
|
|
20
|
+
url: https://github.com/JoelMarcey
|
|
21
|
+
image_url: https://github.com/JoelMarcey.png
|
|
22
|
+
- name: Sébastien Lorber
|
|
23
|
+
title: Docusaurus maintainer
|
|
24
|
+
url: https://sebastienlorber.com
|
|
25
|
+
image_url: https://github.com/slorber.png
|
|
26
|
+
tags: [greetings]
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
Congratulations, you have made your first post!
|
|
30
|
+
|
|
31
|
+
Feel free to play around and edit this post as much as you like.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Create a Document
|
|
6
|
+
|
|
7
|
+
Documents are **groups of pages** connected through:
|
|
8
|
+
|
|
9
|
+
- a **sidebar**
|
|
10
|
+
- **previous/next navigation**
|
|
11
|
+
- **versioning**
|
|
12
|
+
|
|
13
|
+
## Create your first Doc
|
|
14
|
+
|
|
15
|
+
Create a Markdown file at `docs/hello.md`:
|
|
16
|
+
|
|
17
|
+
```md title="docs/hello.md"
|
|
18
|
+
# Hello
|
|
19
|
+
|
|
20
|
+
This is my **first Docusaurus document**!
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
|
|
24
|
+
|
|
25
|
+
## Configure the Sidebar
|
|
26
|
+
|
|
27
|
+
Docusaurus automatically **creates a sidebar** from the `docs` folder.
|
|
28
|
+
|
|
29
|
+
Add metadata to customize the sidebar label and position:
|
|
30
|
+
|
|
31
|
+
```md title="docs/hello.md" {1-4}
|
|
32
|
+
---
|
|
33
|
+
sidebar_label: 'Hi!'
|
|
34
|
+
sidebar_position: 3
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# Hello
|
|
38
|
+
|
|
39
|
+
This is my **first Docusaurus document**!
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
It is also possible to create your sidebar explicitly in `sidebars.js`:
|
|
43
|
+
|
|
44
|
+
```js title="sidebars.js"
|
|
45
|
+
export default {
|
|
46
|
+
tutorialSidebar: [
|
|
47
|
+
'intro',
|
|
48
|
+
// highlight-next-line
|
|
49
|
+
'hello',
|
|
50
|
+
{
|
|
51
|
+
type: 'category',
|
|
52
|
+
label: 'Tutorial',
|
|
53
|
+
items: ['tutorial-basics/create-a-document'],
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Create a Page
|
|
6
|
+
|
|
7
|
+
Add **Markdown or React** files to `src/pages` to create a **standalone page**:
|
|
8
|
+
|
|
9
|
+
- `src/pages/index.js` → `localhost:3000/`
|
|
10
|
+
- `src/pages/foo.md` → `localhost:3000/foo`
|
|
11
|
+
- `src/pages/foo/bar.js` → `localhost:3000/foo/bar`
|
|
12
|
+
|
|
13
|
+
## Create your first React Page
|
|
14
|
+
|
|
15
|
+
Create a file at `src/pages/my-react-page.js`:
|
|
16
|
+
|
|
17
|
+
```jsx title="src/pages/my-react-page.js"
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import Layout from '@theme/Layout';
|
|
20
|
+
|
|
21
|
+
export default function MyReactPage() {
|
|
22
|
+
return (
|
|
23
|
+
<Layout>
|
|
24
|
+
<h1>My React page</h1>
|
|
25
|
+
<p>This is a React page</p>
|
|
26
|
+
</Layout>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
|
|
32
|
+
|
|
33
|
+
## Create your first Markdown Page
|
|
34
|
+
|
|
35
|
+
Create a file at `src/pages/my-markdown-page.md`:
|
|
36
|
+
|
|
37
|
+
```mdx title="src/pages/my-markdown-page.md"
|
|
38
|
+
# My Markdown page
|
|
39
|
+
|
|
40
|
+
This is a Markdown page
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
|