Excel MCP Server (Python版 - FastMCP使用)
AI代理Excel自由操作Model Context Protocol (MCP) 服务器Python是安装版。FastMCP使用框架简单易用API中描述的相应参数的值。
机能
这个MCP服务器包括:Excel提供操作功能:
使用工作簿工作表
create_workbook-新的Excel创建工作簿get_workbook_info-获取工作簿详细信息add_worksheet-添加工作表
单元格区域操作
set_cell_value-为单元格设置值get_cell_value-获取单元格值set_range_values-在区域中设置二维数组数据get_range_values-获取范围数据
书式设定
format_cell-设置单元格格式(字体、填充和格线)
数式・计算
add_formula-将公式添加到单元格
数据操作
find_data-在工作表中查找数据
出力
export_to_csv-打开工作表CSV导出到文件
必要条件
- Python 3.10以上
- uv (建议)或pip
快速启动
uv使用(推奨)
- uv安装 (如果尚未):
pip install uv- 开发环境设置:
uv sync --dev或者,使用批处理文件(Windows):
setup-dev.bat- 启动服务器:
uv run excel-mcp-server或者,使用批处理文件(Windows):
start-server.bat- 运行测试:
uv run python -m pytest传统pip使用
- 创建虚拟环境并安装依赖关系:
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
pip install -r requirements.txt- 启动服务器:
python src/excel_mcp_server/index.py开发命令(使用uv)
# 仮想環境に入る
uv shell
# サーバー起動
uv run excel-mcp-server
# テスト実行
uv run python -m pytest
# コードフォーマット
uv run black src/
# リンター実行
uv run ruff src/
# 型チェック
uv run mypy src/
# 開発用依存関係を含む同期
uv sync --dev
# プロダクション用のみ同期
uv syncMCP客户端使用
FastMCP的规格化距离的幂函数MCP可以从客户端调用:
# 新しいワークブックを作成
{
"tool": "create_workbook",
"arguments": {
"file_path": "C:/path/to/workbook.xlsx"
}
}
# ワークシートを追加
{
"tool": "add_worksheet",
"arguments": {
"file_path": "C:/path/to/workbook.xlsx",
"sheet_name": "Sheet1"
}
}
# セルに値を設定
{
"tool": "set_cell_value",
"arguments": {
"file_path": "C:/path/to/workbook.xlsx",
"sheet_name": "Sheet1",
"cell": "A1",
"value": "Hello, Excel!"
}
}
# 範囲にデータを設定
{
"tool": "set_range_values",
"arguments": {
"file_path": "C:/path/to/workbook.xlsx",
"sheet_name": "Sheet1",
"start_cell": "A1",
"values": [
["名前", "年齢", "職業"],
["田中", 30, "エンジニア"],
["佐藤", 25, "デザイナー"]
]
}
}
# セルの書式を設定
{
"tool": "format_cell",
"arguments": {
"file_path": "C:/path/to/workbook.xlsx",
"sheet_name": "Sheet1",
"cell": "A1",
"format_spec": {
"font": {
"bold": true,
"size": 14,
"color": "FF0000FF"
},
"fill": {
"type": "pattern",
"pattern": "solid",
"fgColor": "FFFF00"
}
}
}
}
## 開発
### テストの実行
pytest
### 代码格式
black src/ test/
### 模具检查
mypy src/
## 文件结构
excel_mcp_server_python/ ├── src/ │ ├── excel_mcp_server/ # メインパッケージ │ │ ├── __init__.py # パッケージ初期化 │ │ └── main.py # メインサーバー実装 │ └── main.py # 従来形式の実行ファイル(互換性用) ├── test/ # テストファイル │ ├── test_uv_setup.py # uvセットアップテスト │ ├── excel_integration_test.py # Excel統合テスト │ ├── test_tools_list.py # ツールリストテスト │ └── output/ # テスト出力ファイル ├── scripts/ # ユーティリティスクリプト ├── pyproject.toml # プロジェクト設定(uv対応) ├── uv.lock # uvロックファイル ├── requirements.txt # 従来の依存関係 ├── setup-dev.bat # 開発環境セットアップ(Windows) ├── start-server.bat # サーバー起動(Windows) └── README.md # このファイル
## uv(推荐)的优点
- **高速**: Rust的包装管理器速度非常快
- **信頼性**:通过锁定文件进行可靠的依赖关系管理
- **简单的**:简化项目管理
- **互换性**: pip的兼容性,更好的用户体验
## 技术仕样
- **言语**:Python 3.10+
- **包管理器**: uv(建议)或pip
- **MCP框架结构**:FastMCP
- **Excel程序库**:openpyxl
- **数据处理**:熊猫
- **开发工具**:pytest,黑色,ruff,mypy
## TypeScript版本差异
这个Python版本为TypeScript提供与版本相同的功能,但有以下区别:
- **言语**: Python 3.8+使用
- **MCP框架结构**: FastMCP(基于简单的解码器)
- **Excel程序库**: openpyxl使用(TypeScript版为ExcelJS)
- **非同期処理**:不需要(FastMCP内部处理)
## FastMCP优点
- **简单的**:在基于解码器的基础上轻松定义工具
- **自动架构生成**:自动从函数文档生成模式
- **型安全**: Python利用标准类型提示
- **軽量**:以最低依赖关系运行
## 许可证
国际协调委员会
## 貢献
欢迎普尔请求和伊修的报告。