使用说明(Markdown)

  • 项目简介

    • 该仓库实现了一个基于 Model Context Protocol (MCP) 的服务端框架,核心功能包括托管与管理 Resource(资源数据访问)、Tools(工具注册与执行)、Prompts(Prompt 模板渲染)等 MCP 组件,通过 JSON-RPC 风格的通信协议与客户端交互,支持多种传输模式(stdio、SSE、Streamable HTTP),并具备会话管理、鉴权中间件、以及可选的服务发现集成能力。
  • 主要功能点

    • MCP 核心组件:资源、工具、提示等集中管理,客户端可读取资源、调用工具、获取提示模板。
    • 多传输协议支持:stdio、SSE、Streamable HTTP,适配不同运行场景。
    • 会话与权限:提供会话上下文、日志、追踪 ID 等上下文机制,并具备可选的 API Key 鉴权中间件。
    • 插件化与扩展性:利用工厂模式与插件加载机制,支持通过 mcp 服务加载插件、扩展功能与自定义路由。
    • 服务注册与发现:与 NACOS/Nacos 等服务发现组件的集成能力,支持注册与发现 MCP 服务实例。
    • 自动化 crawling 与扩展:内置 Crawl4AI 集成,能够根据 CrawLRule 进行网页抓取、内容提取和链接扩展,提供基于文本/嵌入向量的内容处理能力(EmbeddingStrategy、StatisticalStrategy 等)。
  • 安装与运行

    • 运行环境:Python 3.x,建议使用虚拟环境。
    • 安装依赖:通过项目依赖(如 uvicorn、fastapi、pydantic、alembic、crawl4ai 等)安装需要的运行时依赖。
    • 启动服务器:直接运行入口脚本 app.py,服务器将启动并挂载 MCP 的不同传输接口。默认配置可通过配置文件 config 进行自定义。
    • 运行命令示例(不包含具体代码块,仅作文字说明):
      • 启动服务器:使用 Python 解释器执行 app.py。启动后服务器会在配置的主机与端口监听,提供 MCP 的各传输协议入口。
  • MCP 配置(客户端需要提供的最小信息,JSON 格式,描述服务器启动与连接信息) 说明:以下为 MCP 客户端用于连接服务的配置信息描述。客户端实际请求时通常需要提供服务器名称、启动命令与参数等信息,用于在客户端启动并连接 MCP 服务。请根据你的环境将信息写入 JSON 配置并提供给客户端使用。该项仅用于客户端对接,不是服务端代码。

    { "server_name": "aduib_server", // MCP 服务在服务端注册的名称 "command": "python", // 启动 MCP 服务端的命令 "args": ["app.py"], // 启动命令的参数 "transport": "streamable-http", // 客户端连接的传输协议(stdio、sse、streamable-http 之一) "host": "0.0.0.0", // MCP 服务对外暴露的主机地址 "port": 5002, // MCP 服务对外暴露的端口 "notes": "该配置用于 MCP 客户端启动与连接,实际实现中客户端不需要修改服务端源码。" }

  • 基本使用方法

    • 启动阶段:按上述运行方式启动服务器进程,确保环境变量与依赖就绪。
    • 客户端对接:客户端需要知道服务器名称、连接方式(传输协议)及服务器地址等信息,以便建立 JSON-RPC 风格的调用通道,读取资源、执行工具、获取 Prompts。
    • 扩展与自定义:可通过加载插件与自定义路由扩展 MCP 服务能力,按需注册工具、资源和 prompts,配合项目中的配置与路由系统使用。
  • 备注与注意

    • 该项目实现涵盖 MCP 的核心端功能与多传输协议支持,具备可运行的服务端代码、可扩展性设计,以及对接 CrawL4AI、Nacos 等生态的能力。
    • 部署时请确保网络连通性、依赖完整性,以及对服务发现与鉴权的配置符合你的安全与治理要求。

信息

分类

网页与API