MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

L
Lian MCP Llm Agent
作者 @Yueosa

2025年毕业设计课题, 想要运用上大学以来所有学过的技术, 来做一个比较厉害的项目

创建于 11/17/2025
更新于 28 days ago
Repository documentation and setup instructions

Lian-MCP-LLM Agent 系统

本地多专家智能体调度系统 + 工具调用协议管理 + 可扩展知识库

By - Lian - 2025


🌟 项目核心

| 顶层:多专家协作与调度 (论文亮点)

包括:

  1. 专家自动生成(Auto-spawn agents)

    管理员 LLM 会根据任务自动生成 n 个专家 -> 专家拥有角色标签(Role) -> 专家有生命周期(create → run → exit)

  2. 管理员 LLM 的职责

    管理员不是执行者,它是调度中心:

    接收用户输入 -> 分解任务 -> 调度不同专家 -> 路由消息 -> 控制哪些专家被杀死、哪些被创建 -> 最后收敛所有专家的输出,返回结果

  3. 专家间的通信协议(Agent → Agent, Agent → Admin)

    “需要一个明确的路由、管理规则”

    例如:

    • 请求类型:询问、协作、评估

    • 数据格式:JSON schema

    • ID 标识:session_id、agent_id

    • 管理员决定每次迭代的动作


🚀 开发进度

💾 (1) 数据库层: LianORM --done--

完全自研的轻量级 ORM 系统,采用分层架构设计。

核心架构:

  • Schema: 基于 FSM 的 SQL 解析器,脱离数据库提取元数据
  • Mapper: 智能类型转换系统,支持 JSON/Vector 自动映射
  • Repository: 业务对象 CRUD 的具体实现
  • Database: 封装连接池与原子操作客户端
  • ORM: 统一入口与资源管理

📚 文档中心:

🔌 (2) 工具层: MCP Server --done--

基于 FastAPI 实现的工具聚合服务器,提供统一的工具发现与调用接口

核心功能
  • 工具管理: 自动发现和加载工具模块,支持热重载

  • RESTful API: 提供完整的工具查询、调用接口

  • 元数据提取: 自动从工具代码中提取函数签名、参数类型、文档说明

  • 工具分类:

    • file_tool: 文件读写、复制、移动、删除等操作
    • dir_tool: 目录创建、列表、树形展示、统计信息
    • web_tool: HTTP 请求、网页内容提取、HTML/JSON 解析
启动方式

生产模式:

uv run python ./main.py server
# 自定义地址和端口
uv run python ./main.py server --host 127.0.0.1 --port 8888

文档: MCP Server API 文档 (点击跳转)

🤖 (3) 交互层: LLM Client --done-- (等待重构)

LLM 客户端封装,支持多种模型提供商与工具调用 (目前测试使用 deepseek-chat)

核心功能
  • 工具调用: 自动集成 MCP Server 工具,支持 function calling
  • 连续调用: 支持工具的多轮连续调用,直到 LLM 返回 TOOL_CALL_END
  • 对话管理: 完整的对话上下文管理和历史记录
  • 双界面: 终端交互式界面 + Streamlit Web UI
使用方式

终端客户端(交互式命令行):

uv run python ./main.py client

Web UI(Streamlit 网页界面):

uv run python ./main.py web

Web UI 特性:

  • 📱 左右分栏布局:左侧对话,右侧实时日志
  • 🎨 美观的消息气泡样式
  • 📊 可视化工具调用流程
  • 🔄 实时显示工具执行进度
  • 📚 侧边栏显示所有可用工具

环境配置: 需要在 mylib/llm/llm_config.toml 填入 DEEPSEEK_API_KEY 和 MCP Server 地址

⚙️ (4) 配置层: Config --done--

用于配置加载, 已经完备

测试: uv run python ./tests/config.test.py

文档 UserGuide.md (点击跳转)

🧠 (5) 智能体层: Agent --pedding--

定义了智能体的基类与核心行为模式。

设计哲学

自我认知是一切的起点

每个 Agent 都必须拥有三个核心要素:

  1. 身份 (Identity): 明确角色定位与能力边界
  2. 目标 (Objectives): 当前任务目标与工作范围
  3. 记忆 (Memory): 短期操作记录、长期经验积累与元认知反思

文档

Agent 设计文档 (点击跳转)

🕹️ (6) 核心层: Core --pedding--

系统的核心枢纽,负责多专家智能体的调度与协作管理。

核心职责 (Admin Agent)
  • 任务编排: 接收用户输入,分解为可执行的子任务序列
  • 专家调度: 根据任务需求自动生成 (Spawn) 或唤醒特定角色的专家 Agent
  • 生命周期管理: 控制 Agent 的创建、运行与销毁
  • 消息路由: 管理 Agent 之间以及 Agent 与 Admin 之间的通信协议
  • 结果收敛: 汇总各专家的输出,生成最终响应

这是整个系统的"大脑",实现了论文中提到的多专家协作架构。

🛠️ (7) 工具库: Kit (原 Utils)

包含了一系列自研的基础工具库,为上层模块提供支持。

🎨 终端美化

  • Printer: 基础彩色打印工具。简单轻量,开箱即用,适合快速输出带颜色的调试信息或日志,无需复杂配置。
  • Loutput: 高级终端输出库,支持 ANSI/256色/真彩色 (RGB 24bit),提供色彩降级兼容。内置了丰富的颜色映射表和样式处理器,能够自动检测终端色彩支持能力并进行适配,让终端界面开发像前端一样优雅。

🧩 算法与数据结构

  • Lstack: 封装的标准栈结构。提供了严谨的压栈、出栈接口,支持迭代器模式,是实现下推自动机和递归算法的基础容器。
  • Lfsm: 通用有限状态机 (Finite State Machine) 基类。通过继承方式定义状态与转换规则,逻辑清晰且易于维护,广泛应用于协议解析和流程控制场景。
  • Lpda: 下推自动机 (Pushdown Automaton),支持嵌套结构解析。结合了有限状态机与栈的特性,专门用于处理括号匹配、代码块解析等具有递归特性的语法结构。

📝 文本处理

  • Ltokenizer: 基于状态机的通用分词器基类。支持流式处理和位置追踪(行号/列号),能够高效地将原始文本转换为结构化的 Token 序列,为解析器提供标准输入。
  • Lparser: 基于 LPDA 的通用解析器基类,用于构建复杂的语法分析器。提供了灵活的解析钩子和上下文管理机制,开发者只需关注语法规则的定义,即可快速构建出功能强大的自定义语言解析器。
  • Lfind: 向量嵌入 (Embedding) 工具封装,用于知识库检索。集成了主流的 Embedding 模型接口,提供了开箱即用的文本向量化和相似度匹配功能,是实现 RAG(检索增强生成)系统的核心组件。

🎓 学术使用声明

本项目为 2025 届毕业设计作品

⚠️ 重要提醒

  • 保护期:2025 年 11 月 10 日 - 2026 年 1 月 19 日
  • 在此期间,禁止同校同学使用本项目进行毕业设计
  • 禁止任何形式的学术作业提交
  • 详细条款请参阅 LICENSE 文件

🧪 测试与示例

项目包含完整的测试用例,位于 tests/ 目录下。

运行方式

使用 uv 运行测试文件:

uv run python tests/{TEST_FILE_NAME}

测试文件列表

| 文件名 | 描述 | 运行命令 | | :------------------------------- | :------------------------------------------------------------------------------------------------ | :--------------------------------------------------- | | config_loader.test.py | 配置加载测试
测试配置文件的读取、解析和默认值处理。 | uv run python tests/config_loader.test.py | | lian_orm_schema_parser.test.py | SQL 解析器测试
测试 SQL 文件解析功能,验证 Schema 提取的正确性。 | uv run python tests/lian_orm_schema_parser.test.py | | test_sql_complete.py | ORM 完整功能测试
包含 CRUD、关联查询、事务、批量操作等全功能测试,也是最佳的使用教程。 | uv run python tests/test_sql_complete.py | | Loutput.test.py | 终端输出测试
展示 Loutput 库的各种颜色、样式和特效输出能力。 | uv run python tests/Loutput.test.py | | psql_connect.test.py | 数据库连接测试
测试 PostgreSQL 数据库的连接状态,并列出所有公共表。 | uv run python tests/psql_connect.test.py | | rgb_demo.py | RGB 颜色演示
展示 RGBColor 和 ANSItoRGB 工具的高级色彩处理能力。 | uv run python tests/rgb_demo.py |


🐷 小猪话

开发过程中留下的感悟, 其实一直都没有记录... ...丢掉了好多有趣的想法

📅 2025-11-24

  • 完了完了我的开发习惯疑似有点太极端了,再这么下去开发不完了呀!

📅 2025-12-02

  • 整个项目的规模已经达到 48 个目录 144 个文件了...有时候我自己都记不清哪些文件是干嘛的
  • lian_orm 我是真喜欢, 但目前时间不够了...只能暂时留着等以后重构
快速设置
此服务器的安装指南

安装包 (如果需要)

uvx lian-mcp-llm-agent

Cursor 配置 (mcp.json)

{ "mcpServers": { "yueosa-lian-mcp-llm-agent": { "command": "uvx", "args": [ "lian-mcp-llm-agent" ] } } }