返回 MCP 目录
public公开dns本地运行

mcp-framework

MCP开发框架是一个用于创建与大语言模型交互自定义工具的强大框架,提供文件处理、网页内容获取等功能,支持PDF、Word、Excel等多种格式,具有智能识别、高效处理和内存优化等技术特点。

article

README

🚀 MCP 框架开发指南

MCP(Model Context Protocol)是一个用于开发和部署智能应用的开源框架。它提供了统一的协议、工具和服务,能助力开发者快速构建高效的应用程序。

✨ 主要特性

  • 统一协议:提供标准化接口,便于不同组件之间的通信。
  • 模块化设计:支持插件扩展,可根据需求灵活定制。
  • 高性能:基于异步框架,处理大规模请求游刃有余。
  • 内置工具:集成了文档处理、数据分析等常用功能。

📦 项目结构

MCP 框架目录结构
├── mcp/types.py          # 定义内容类型和接口
├── tools/                # 工具实现
│   ├── base_tool.py      # 工具基类定义
│   └── specific_tool.py  # 具体工具实现
└── server.py             # MCP 服务器实现

🚀 快速开始

安装依赖

pip install mcp[all]  # 安装所有依赖项
# 或者按需安装:
pip install pyMuPDF python-docx pandas openpyxl httpx anyio click

启动服务

uv run mcp.server --transport sse --port 8000

访问 SSE 端点:http://localhost:8000/sse

📚 详细文档

MCP 协议

MCP 定义了一套标准化协议,用于不同组件之间的交互。核心内容包括:

  • 内容类型

    • 文本内容 (types.TextContent)
    • 图像内容 (types.ImageContent)
    • 嵌入式资源 (types.EmbeddedResource)
  • 通信协议

    • 使用 Server-Sent Events (SSE) 进行实时通信
    • 支持 HTTP/HTTPS 协议栈

工具开发指南

开发新工具

  1. tools 目录下创建新的 Python 文件,例如 your_tool.py
  2. 导入必要的依赖和基类:
    import mcp.types as types
    from . import BaseTool, ToolRegistry
    
  3. 创建继承自 BaseTool 的工具类:
    @ToolRegistry.register
    class YourTool(BaseTool):
        """您的工具描述"""
        name = "your_tool_name"  # 工具的唯一标识符
        description = "您的工具描述"  # 工具的描述信息,将显示给用户
        input_schema = {
            "type": "object",
            "required": ["param1"],  # 必需的参数
            "properties": {
                "param1": {
                    "type": "string",
                    "description": "参数1的描述",
                },
                "param2": {
                    "type": "integer",
                    "description": "参数2的描述(可选)",
                }
            },
        }
    
    async def execute(self, arguments: dict) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:
        """执行工具逻辑"""
        # 参数验证
        if "param1" not in arguments:
            return [types.TextContent(
                type="text",
                text="Error: Missing required parameter"
            )]
        
        # 处理逻辑
        result = self._process_arguments(arguments)
        
        return [types.TextContent(
            type="text",
            text=str(result)
        )]
    

部署指南

环境要求

  • 操作系统:Linux, macOS, Windows (推荐使用 Linux)
  • Python 版本:3.8+

安装依赖

pip install mcp[all]  # 安装所有依赖项
# 或者按需安装:
pip install pyMuPDF python-docx pandas openpyxl httpx anyio click

启动服务

uv run mcp.server --transport sse --port 8000

访问 SSE 端点:http://localhost:8000/sse

配置指南

基本配置

编辑 config.py 文件:

from mcp.config import Config

Config.load_defaults()
# 或者自定义配置:
Config.set('debug_mode', True)

进阶配置

通过命令行参数进行配置:

uv run mcp.server --config your_config.yaml --port 8000

依赖管理

MCP 框架依赖以下库:

  • PyMuPDF:用于 PDF 文档处理
  • python-docx:用于 Word 文档处理
  • pandas:用于数据分析
  • openpyxl:用于 Excel 文件操作
  • httpx:用于 HTTP 请求
  • anyio:用于异步编程
  • click:用于命令行工具

贡献指南

提交代码

  1. Fork 项目仓库
  2. 创建新分支 (git checkout -b feature/your-feature)
  3. 提交更改 (git add .; git commit -m "your commit message")
  4. Push 到远程仓库
  5. 创建 Pull Request

开发规范

  • 遵循 PEP8 代码风格指南
  • 提供详细的文档说明
  • 包括单元测试用例
  • 确保代码通过 CI/CD 测试

联系方式

📄 许可证

MCP 框架遵循 MIT License,具体条款见 LICENSE 文件。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端