Install
$ agentstack add mcp-az-coder-123-excel-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Excel MCP Server
A Model Context Protocol (MCP) server for Excel operations with enterprise-grade security and clean architecture. Seamlessly integrates with GitHub Copilot, Cline, and other MCP-compatible tools in VS Code.
Features
- Complete Excel Operations: Read, write, and manipulate Excel files (.xlsx, .xls)
- Clean Architecture: Follows Single Responsibility Principle for maintainability
- Enterprise Security: Robust permission system with path restrictions and access control
- VS Code Integration: Works seamlessly with GitHub Copilot and Cline
- TypeScript: Full type safety with modern ES2022+ features
- Zero Deprecated Dependencies: Uses only current, actively maintained libraries
Quick Start
Installation
# Clone the repository
git clone https://github.com/az-coder-123/excel-mcp.git
cd excel-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Copy example environment file
cp .env.example .env
📌 Đã cấu hình sẵn cho Cline
Server đã được cấu hình và kết nối sẵn với Cline! Xem [Hướng dẫn cài đặt chi tiết](docs/SETUP_GUIDE.md) để biết:
✅ Trạng thái hiện tại: Đã kết nối và hoạt động bình thường
- Server đang chạy:
node dist/index.js - Cấu hình Cline:
.cline/mcp_servers.json - File cấu hình đã sẵn sàng sử dụng
Xem ngay: [docs/SETUPGUIDE.md](docs/SETUPGUIDE.md) để biết cách sử dụng
Configuration
Edit .env file to customize permissions:
# Restrict access to specific directories
MCP_ALLOWED_PATHS=/home/user/documents,/workspace
# Block sensitive system directories
MCP_DENIED_PATHS=/etc/*,/sys/*,C:\Windows\*
# Set maximum file size (50MB default)
MCP_MAX_FILE_SIZE=52428800
VS Code Integration
For GitHub Copilot
Add to your VS Code settings.json:
{
"github.copilot.chat.experimental.mcpServers": {
"excel-mcp": {
"command": "node",
"args": ["/path/to/excel-mcp/dist/index.js"],
"env": {
"MCP_LOG_LEVEL": "info"
}
}
}
}
For Cline
Add to your Cline MCP configuration file (~/.config/cline/mcp_servers.json):
{
"mcpServers": {
"excel-mcp": {
"command": "node",
"args": ["/path/to/excel-mcp/dist/index.js"],
"env": {
"MCP_LOG_LEVEL": "info"
}
}
}
}
Available Tools
excelhealthcheck
Check server health, dependencies, and configuration status. This tool is useful for verifying that the MCP server is running correctly and all systems are operational.
{
}
No parameters required
Response Example:
{
"status": "healthy",
"server": {
"name": "excel-mcp",
"version": "1.0.0",
"nodeVersion": "v18.0.0",
"platform": "darwin",
"arch": "arm64",
"uptime": "5m 32s"
},
"dependencies": {
"exceljs": "ok",
"filesystem": "ok",
"memory": "ok",
"memoryUsage": {
"heapUsed": "45MB",
"heapTotal": "64MB",
"rss": "78MB",
"external": "2MB"
}
},
"configuration": {
"logLevel": "info",
"maxFileSize": 52428800,
"maxFileSizeMB": "50MB",
"allowedPathsCount": 0,
"deniedPathsCount": 4,
"allowedExtensions": [".xlsx", ".xls", ".xlsm", ".xlsb"],
"permissions": ["read", "write", "delete"]
},
"tests": {
"permissionChecker": "pass",
"logger": "pass",
"excelOperations": "pass"
},
"responseTime": "45ms",
"timestamp": "2024-03-21T12:34:56.789Z"
}
excelopenworkbook
Open an Excel file for operations.
{
"filePath": "/path/to/file.xlsx"
}
excelcreateworkbook
Create a new Excel workbook.
{
"filename": "report",
"outputPath": "/workspace"
}
excelreadcell
Read a single cell value.
{
"filename": "report.xlsx",
"worksheet": "Sheet1",
"cellAddress": "A1"
}
excelreadrange
Read multiple cells.
{
"filename": "report.xlsx",
"worksheet": "Sheet1",
"startCell": "A1",
"endCell": "C10"
}
excelwritecell
Write a value to a cell.
{
"filename": "report.xlsx",
"worksheet": "Sheet1",
"cellAddress": "A1",
"value": "Hello World"
}
excellistworksheets
List all worksheets in a workbook.
{
"filename": "report.xlsx"
}
exceladdworksheet
Add a new worksheet.
{
"filename": "report.xlsx",
"worksheetName": "Summary"
}
excelsaveworkbook
Save the workbook to disk.
{
"filename": "report.xlsx",
"outputPath": "/workspace/report-final.xlsx"
}
excelcloseworkbook
Close an opened workbook.
{
"filename": "report.xlsx"
}
excelgetcell_info
Get detailed cell information including formulas.
{
"filename": "report.xlsx",
"worksheet": "Sheet1",
"cellAddress": "B5"
}
Security Features
Permission Levels
- read: Read-only access to Excel files
- write: Create and modify Excel files
- delete: Delete worksheets and clear data
- admin: Full administrative access
Path Restrictions
Configure allowed and denied paths using wildcards:
# Allow only specific directories
MCP_ALLOWED_PATHS=/workspace/*,/home/user/documents/*
# Block sensitive system paths
MCP_DENIED_PATHS=/etc/*,/sys/*,/proc/*,C:\Windows\*
File Size Limits
Prevent processing of excessively large files:
MCP_MAX_FILE_SIZE=52428800 # 50MB
Extension Whitelist
Only process specific file types (configured by default):
.xlsx- Excel Workbook.xls- Excel 97-2003 Workbook.xlsm- Excel Macro-Enabled Workbook.xlsb- Excel Binary Workbook
Architecture
excel-mcp/
├── src/
│ ├── index.ts # Application entry point
│ ├── types/
│ │ └── index.ts # Type definitions
│ ├── security/
│ │ └── permission-checker.ts # Access control
│ ├── services/
│ │ └── excel-service.ts # Excel operations
│ ├── tools/
│ │ ├── tool-definitions.ts # Tool schemas
│ │ └── tool-handler.ts # Tool execution
│ ├── server/
│ │ └── excel-mcp-server.ts # MCP server core
│ └── utils/
│ └── logger.ts # Logging utility
├── docs/
│ ├── ARCHITECTURE.md # Architecture details
│ ├── API.md # API reference
│ ├── SECURITY.md # Security guide
│ └── TROUBLESHOOTING.md # Common issues
└── dist/ # Compiled JavaScript
Design Principles
- Single Responsibility: Each class/module has one clear purpose
- Dependency Injection: Components are loosely coupled
- Type Safety: Full TypeScript coverage with strict mode
- Error Handling: Comprehensive error catching and reporting
- Security First: Permission checks before all operations
Development
Scripts
# Development with hot reload
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Lint code
npm run lint
# Format code
npm run format
# Clean build artifacts
npm run clean
Project Structure
src/- TypeScript source filesdist/- Compiled JavaScript outputdocs/- Documentationpackage.json- Dependencies and scriptstsconfig.json- TypeScript configuration
Environment Variables
| Variable | Description | Default | |----------|-------------|---------| | MCP_SERVER_NAME | Server identifier | excel-mcp | | MCP_SERVER_VERSION | Server version | 1.0.0 | | MCP_LOG_LEVEL | Logging verbosity | info | | MCP_ALLOWED_PATHS | Comma-separated allowed paths | All paths | | MCP_DENIED_PATHS | Comma-separated denied paths | System paths | | MCP_MAX_FILE_SIZE | Maximum file size in bytes | 52428800 (50MB) |
Troubleshooting
Common Issues
"Permission denied" errors
- Check your
MCP_ALLOWED_PATHSconfiguration - Ensure the file isn't in a denied path
- Verify you have the required permission level
"Workbook not opened" errors
- Call
excel_open_workbookbefore other operations - Check that the file path is correct
- Ensure the file isn't corrupted
TypeScript compilation errors
- Run
npm installto ensure all dependencies are installed - Check Node.js version (requires >= 18.0.0)
For more troubleshooting help, see [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md).
License
MIT License - see [LICENSE](LICENSE) file for details.
Contributing
Contributions are welcome! Please read our contributing guidelines and code of conduct.
Support
- GitHub Issues: Report bugs
- Documentation: [Full docs](docs/)
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: az-coder-123
- Source: az-coder-123/excel-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.