Skip to main content
Glama

MCP Sheet Parser

by yuqie6
MIT License
3
  • Apple
DeveloperGuide.md4.65 kB
# 开发者指南 ## 1. 简介 本指南为需要对 MCP Sheet Parser 进行维护、扩展或二次开发的开发者提供技术参考。在开始之前,请确保您已熟悉《项目架构文档》中描述的系统分层和核心组件。 ## 2. 环境设置 ### 2.1 克隆仓库 ```bash git clone https://github.com/yuqie6/MCP-Sheet-Parser.git cd MCP-Sheet-Parser ``` ### 2.2 安装依赖 项目使用 `uv` 作为包管理器以提高依赖安装速度。 ```bash # 安装生产和开发依赖 uv sync --dev ``` 此命令会读取 `pyproject.toml` 文件并创建一个虚拟环境,然后安装所有必需的库,包括 `pytest` 等开发工具。 ### 2.3 运行测试 项目包含一套单元测试和集成测试,用于验证核心功能的正确性。 ```bash # 运行所有测试 uv run pytest tests/ ``` 在进行任何代码修改后,请务必运行完整的测试套件,确保没有引入新的问题。 ## 3. 本地调试 ### 3.1 直接运行服务器 您可以直接从命令行启动服务器,以便进行调试。 ```bash uv run main.py ``` 服务器将启动并监听标准输入。此时,您可以从另一个终端或通过 MCP 客户端向其发送 JSON-RPC 请求。 ### 3.2 使用 MCP Inspector `@modelcontextprotocol/inspector` 是官方提供的可视化调试工具,可以帮助您查看客户端与服务器之间的通信详情。 ```bash # 启动服务器并连接到 Inspector npx @modelcontextprotocol/inspector \ uv \ --directory . \ run \ main.py ``` **注意**: 您需要先安装 Node.js 和 npx。 ## 4. 代码扩展 ### 4.1 添加新的文件格式支持 要添加对一种新文件格式(例如 `.ods`)的支持,您需要完成以下步骤: 1. **创建新的解析器**: 在 `src/parsers/` 目录下,创建一个新的解析器文件,例如 `ods_parser.py`。 ```python # src/parsers/ods_parser.py from .base_parser import BaseParser from ..models.table_model import Sheet class ODSParser(BaseParser): def parse(self, file_path: str) -> list[Sheet]: # 在这里实现您的 .ods 文件解析逻辑 # ... # 您需要将文件内容转换为一个或多个 Sheet 对象的列表 pass ``` 2. **注册新的解析器**: 在 `src/parsers/factory.py` 文件中,将新的解析器添加到 `ParserFactory` 中。 ```python # src/parsers/factory.py from .xlsx_parser import XLSXParser from .csv_parser import CSVParser from .ods_parser import ODSParser # 导入新的解析器 class ParserFactory: def __init__(self): self._parsers = { '.xlsx': XLSXParser(), '.xlsm': XLSXParser(), '.xls': XLSXParser(), # 假设可以复用 '.xlsb': XLSXParser(), # 假设可以复用 '.csv': CSVParser(), '.ods': ODSParser(), # 注册新的解析器 } # ... ``` 3. **(可选)实现写回逻辑**: 如果您希望支持将数据写回到新格式的文件中,需要在 `src/core_service.py` 的 `apply_changes` 方法中添加相应的处理逻辑。 ### 4.2 添加新的工具 1. **定义工具接口**: 在 `src/models/tools.py` 的 `handle_list_tools` 函数中,添加新工具的定义,包括名称、描述和输入模式(Input Schema)。 2. **实现工具逻辑**: - 在 `src/core_service.py` 中为新工具创建一个新的方法。 - 在 `src/models/tools.py` 的 `handle_call_tool` 函数中,添加一个新的 `elif` 分支,将工具调用路由到您在 `CoreService` 中创建的新方法。 ## 5. 核心模块依赖 - **`mcp.server`**: 用于创建和管理 MCP 服务器的基础库。 - **`openpyxl`**: 用于处理 `.xlsx` 和 `.xlsm` 文件。 - **`xlrd`**: 用于处理旧版的 `.xls` 文件。 - **`pyxlsb`**: 用于处理 `.xlsb` 二进制文件。 - **`pydantic`**: 用于定义和验证数据模型,例如 `TableModel`。 ## 6. 贡献代码 我们欢迎任何形式的贡献。如果您希望为项目贡献代码,请遵循以下流程: 1. Fork 本仓库。 2. 基于 `main` 分支创建一个新的功能分支 (`git checkout -b feature/your-feature-name`)。 3. 提交您的代码修改。请确保您的代码遵循项目现有的编码风格。 4. 为您的新功能添加相应的测试用例。 5. 确保所有测试都已通过。 6. 发起一个 Pull Request,并详细描述您的修改内容。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yuqie6/MCP-Sheet-Parser-cot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server