Skip to main content
Glama

WeChat Article Reader MCP Server

by whbfxy
CONTRIBUTING.md7.55 kB
# 贡献指南 感谢您对微信公众号文章读取 MCP 服务器项目的关注!我们欢迎各种形式的贡献,包括但不限于: - 提交 Bug 报告 - 提出新功能建议 - 提交代码改进 - 改进文档 - 分享使用经验 ## 开发环境设置 ### 1. Fork 和克隆项目 1. 在 GitHub 上 Fork 本项目 2. 克隆您的 Fork 到本地: ```bash git clone https://github.com/your-username/mcp-server-wechat.git cd mcp-server-wechat ``` 3. 添加上游仓库: ```bash git remote add upstream https://github.com/original-owner/mcp-server-wechat.git ``` ### 2. 设置开发环境 1. 创建虚拟环境: ```bash python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows ``` 2. 安装依赖: ```bash pip install -r requirements.txt pip install -r requirements-dev.txt # 开发依赖 ``` 3. 安装预提交钩子: ```bash pre-commit install ``` ## 提交代码 ### 1. 创建功能分支 从主分支创建一个新的功能分支: ```bash git checkout main git pull upstream main git checkout -b feature/your-feature-name ``` ### 2. 进行开发 1. 编写代码 2. 添加测试 3. 运行测试确保所有测试通过: ```bash python run_tests.py ``` 4. 确保代码符合项目规范: ```bash black src tests flake8 src tests isort src tests mypy src ``` ### 3. 提交更改 1. 添加更改: ```bash git add . ``` 2. 提交更改,使用清晰的提交信息: ```bash git commit -m "feat: 添加新功能描述" ``` 3. 推送到您的 Fork: ```bash git push origin feature/your-feature-name ``` ### 4. 创建 Pull Request 1. 在 GitHub 上创建 Pull Request 2. 填写 PR 模板 3. 等待代码审查 ## 提交信息规范 我们使用 [Conventional Commits](https://www.conventionalcommits.org/) 规范: ### 格式 ``` <类型>[可选的作用域]: <描述> [可选的正文] [可选的脚注] ``` ### 类型 - `feat`: 新功能 - `fix`: 修复 Bug - `docs`: 文档更新 - `style`: 代码格式化(不影响功能) - `refactor`: 代码重构 - `test`: 添加或修改测试 - `chore`: 构建过程或辅助工具的变动 - `perf`: 性能优化 - `ci`: 持续集成相关 ### 示例 ```bash feat: 添加文章搜索功能 - 实现基于关键词的文章搜索 - 添加排序和过滤选项 - 更新 API 文档 Closes #123 ``` ## 代码规范 ### 1. Python 代码风格 - 遵循 PEP 8 代码风格指南 - 使用 Black 进行代码格式化 - 使用 Flake8 进行代码检查 - 使用 isort 进行导入排序 - 使用 MyPy 进行类型检查 ### 2. 文档字符串 所有公共函数、方法和类都应有详细的文档字符串: ```python def fetch_article(url: str, content_formats: List[str] = None) -> Dict[str, Any]: """ 获取微信公众号文章内容 Args: url: 文章URL content_formats: 内容格式列表,可选值:markdown, text Returns: 包含文章内容和元数据的字典 Raises: ValidationError: 当URL无效时 NetworkError: 当网络请求失败时 """ ``` ### 3. 类型注解 所有函数和方法都应有类型注解: ```python def process_data( input_data: Dict[str, Any], config: Optional[Dict[str, Any]] = None ) -> Tuple[bool, str]: """处理输入数据""" ``` ## 测试 ### 1. 测试类型 - **单元测试**:测试单个函数或方法 - **集成测试**:测试多个组件的交互 - **性能测试**:测试系统性能 ### 2. 编写测试 1. 为新功能编写测试 2. 确保测试覆盖率高 3. 使用清晰的测试名称 ```python class TestFetchArticleTool(unittest.TestCase): async def test_execute_success(self): """测试成功获取文章""" tool = FetchArticleTool() result = await tool.execute(url="valid_url") self.assertTrue(result["success"]) async def test_execute_invalid_url(self): """测试无效URL处理""" tool = FetchArticleTool() result = await tool.execute(url="invalid_url") self.assertFalse(result["success"]) self.assertEqual(result["error_code"], "INVALID_URL") ``` ### 3. 运行测试 ```bash # 运行所有测试 python run_tests.py # 只运行单元测试 python run_tests.py --unit # 只运行集成测试 python run_tests.py --integration # 只运行性能测试 python run_tests.py --performance ``` ## 报告 Bug ### 1. 检查现有问题 在提交新 Bug 报告前,请检查是否已有相关问题: 1. 查看 [Issues](https://github.com/original-owner/mcp-server-wechat/issues) 2. 搜索关键词确认问题未被报告 ### 2. 创建 Bug 报告 使用以下模板创建 Bug 报告: ```markdown ## Bug 描述 简要描述 Bug ## 复现步骤 1. 执行操作 A 2. 点击按钮 B 3. 观察现象 C ## 期望行为 描述您期望发生的情况 ## 实际行为 描述实际发生的情况 ## 环境信息 - 操作系统: - Python 版本: - 项目版本: ## 附加信息 添加任何其他有助于解决问题的信息,如日志、截图等 ``` ## 提出新功能建议 ### 1. 检查现有建议 在提交新功能建议前,请检查是否已有相关建议: 1. 查看 [Issues](https://github.com/original-owner/mcp-server-wechat/issues) 2. 搜索关键词确认建议未被提出 ### 2. 创建功能建议 使用以下模板创建功能建议: ```markdown ## 功能描述 简要描述建议的功能 ## 问题背景 描述这个功能要解决的问题 ## 解决方案 描述您设想的解决方案 ## 替代方案 描述您考虑过的其他解决方案 ## 附加信息 添加任何其他相关信息,如参考资料、示例等 ``` ## 代码审查 ### 1. 审查流程 1. 提交 Pull Request 后,项目维护者会进行代码审查 2. 审查者可能会提出修改建议 3. 根据反馈修改代码 4. 所有审查通过后,代码将被合并 ### 2. 审查标准 - 代码是否符合项目规范 - 是否有适当的测试 - 文档是否更新 - 是否有潜在的安全问题 - 是否有性能问题 ### 3. 审查者指南 如果您是代码审查者,请关注以下几点: - 代码可读性和可维护性 - 测试覆盖率和测试质量 - 是否遵循项目最佳实践 - 是否有安全漏洞 - 是否有性能问题 ## 发布流程 ### 1. 版本控制 项目使用语义化版本控制(Semantic Versioning): - 主版本号:不兼容的 API 修改 - 次版本号:向下兼容的功能性新增 - 修订号:向下兼容的问题修正 ### 2. 发布步骤 1. 更新版本号 2. 更新 CHANGELOG.md 3. 运行完整测试套件 4. 创建 Git 标签 5. 构建分发包 6. 发布到 PyPI ## 社区准则 ### 1. 行为准则 我们致力于为每个人提供友好、安全和欢迎的环境。请遵循以下准则: - 尊重所有参与者 - 使用友好和包容的语言 - 接受建设性批评 - 专注于对社区最有利的事情 - 对其他社区成员表示同理心 ### 2. 沟通渠道 - GitHub Issues:Bug 报告和功能建议 - GitHub Discussions:一般讨论和问答 - Pull Requests:代码贡献和审查 ## 获得帮助 如果您需要帮助或有任何问题,请: 1. 查看 [文档](https://github.com/original-owner/mcp-server-wechat/docs) 2. 搜索 [Issues](https://github.com/original-owner/mcp-server-wechat/issues) 3. 创建新的 Issue 或 Discussion ## 致谢 感谢所有为项目做出贡献的开发者!您的贡献使这个项目变得更好。 --- 再次感谢您的贡献!我们期待您的参与。

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/whbfxy/MCP101Demo'

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