使用说明(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