Skip to main content
Glama

MCP Serial Port Tool

by niusulong
软件实现计划文档.md24.9 kB
# 软件实现计划文档(Implementation Plan) ## 1. 项目简介 ### 1.1 目标与背景 本项目旨在实现一个基于MCP(Model Context Protocol)协议的串口工具,为AI助手提供与物理串口设备交互的能力。通过标准化的JSON-RPC 2.0接口,AI助手可以执行串口操作(打开、关闭、读写)并接收异步事件通知(如URC上报)。 ### 1.2 最终交付物 - 可执行的MCP串口工具服务器 - 完整的TypeScript源代码 - 配置文件(URC模式、默认配置) - 测试套件(单元测试、集成测试) - 技术文档(API文档、部署指南) ### 1.3 架构文档版本与范围 - **架构版本**:基于《MCP串口工具系统架构设计文档》v1.0 - **实现范围**:完整实现架构文档中定义的所有核心功能模块 - **技术栈**:Node.js + TypeScript + @modelcontextprotocol/sdk + node-serialport ## 2. 实现范围(In Scope / Out of Scope) ### 2.1 第一期实现范围(In Scope) 1. **核心串口功能** - 串口端口发现与列表获取 - 串口打开/关闭/配置 - 同步写入+超时读取模式 - 异步URC检测与上报 2. **MCP协议支持** - JSON-RPC 2.0协议实现 - serial.*方法接口(open/close/write/list) - health.*健康检查接口 - trace.*日志查询接口 - serial.report异步通知 3. **系统架构** - 分层架构(MCP层→服务层→核心引擎层→适配器层) - 事件驱动机制(EventBus) - 写入互斥锁(WriteMutex) - 会话隔离(PortSession) - URC配置化识别 4. **跨平台支持** - Windows COM端口支持 - Linux /dev/tty*支持 - 平台差异抽象 ### 2.2 暂不实现但架构已预留的功能(Out of Scope) 1. **高级功能** - TCP/UDP转串口桥接 - 协议解析插件(AT指令解析器等) - 分布式多实例部署 - 可视化管理界面 2. **企业级功能** - 用户认证与授权 - 审计日志与合规 - 高可用集群部署 - 性能监控与告警 ## 3. 模块任务分解(WBS - Work Breakdown Structure) ### 3.1 核心模块(Core) #### 3.1.1 SerialEngine(串口引擎) - **子任务列表** - 实现端口状态管理(打开/关闭/错误) - 实现端口实例生命周期管理 - 实现状态机转换逻辑 - 实现资源清理机制 - **输入/输出** - 输入:端口配置、控制命令 - 输出:端口状态、操作结果 - **前置依赖** - 适配器层接口定义 - 事件总线实现 #### 3.1.2 EventBus(事件总线) - **子任务列表** - 实现基于EventEmitter的事件发布/订阅 - 实现事件类型定义与验证 - 实现订阅管理(订阅ID生成/取消) - 实现事件过滤与路由 - **输入/输出** - 输入:事件类型、事件数据 - 输出:事件分发结果 - **前置依赖** - 事件类型定义文件 #### 3.1.3 DataProcessor(数据处理器) - **子任务列表** - 实现Hex字符串与Buffer互转 - 实现编码处理(UTF-8/ASCII等) - 实现数据分割与拼接 - 实现数据格式验证 - **输入/输出** - 输入:原始数据、目标格式 - 输出:转换后数据 - **前置依赖** - 数据类型定义 #### 3.1.4 WriteMutex(写入互斥锁) - **子任务列表** - 实现FIFO公平锁队列 - 实现锁获取/释放机制 - 实现超时处理 - 实现锁状态查询 - **输入/输出** - 输入:端口标识、超时时间 - 输出:锁票据、操作结果 - **前置依赖** - 锁接口定义 #### 3.1.5 PortSession(端口会话) - **子任务列表** - 实现会话创建/结束机制 - 实现会话数据缓冲区管理 - 实现会话超时清理 - 实现会话状态查询 - **输入/输出** - 输入:端口标识、会话选项 - 输出:会话ID、会话数据 - **前置依赖** - 会话接口定义 #### 3.1.6 URCDetector(URC识别器) - **子任务列表** - 实现配置文件加载与解析 - 实现正则表达式模式匹配 - 实现热更新机制 - 实现URC提取与过滤 - **输入/输出** - 输入:数据流、配置文件 - 输出:URC标记、过滤后数据 - **前置依赖** - URC配置文件格式定义 ### 3.2 通信模块(Communication) #### 3.2.1 SerialPortAdapter(串口适配器) - **子任务列表** - 实现node-serialport库封装 - 实现端口打开/关闭/配置 - 实现数据读写操作 - 实现错误处理与事件转发 - **输入/输出** - 输入:端口配置、数据 - 输出:操作结果、接收数据 - **前置依赖** - node-serialport库安装 #### 3.2.2 PlatformAdapter(平台适配器) - **子任务列表** - 实现Windows COM端口枚举 - 实现Linux /dev/tty*枚举 - 实现平台差异处理 - 实现权限检查 - **输入/输出** - 输入:平台标识 - 输出:端口列表、权限信息 - **前置依赖** - 操作系统API调研 ### 3.3 异步架构模块(Async Architecture) #### 3.3.1 NotificationManager(通知管理器) - **子任务列表** - 实现通知订阅管理 - 实现通知格式化 - 实现通知推送机制 - 实现通知过滤 - **输入/输出** - 输入:事件数据、订阅信息 - 输出:格式化通知 - **前置依赖** - 通知接口定义 #### 3.3.2 MethodRouter(方法路由器) - **子任务列表** - 实现方法名解析与分发 - 实现参数验证 - 实现结果格式化 - 实现错误处理 - **输入/输出** - 输入:JSON-RPC请求 - 输出:处理结果 - **前置依赖** - MCP协议定义 ### 3.4 配置模块(Configuration) #### 3.4.1 ConfigManager(配置管理器) - **子任务列表** - 实现配置文件加载 - 实现配置验证 - 实现默认值处理 - 实现配置热更新 - **输入/输出** - 输入:配置文件路径 - 输出:配置对象 - **前置依赖** - 配置文件格式定义 ### 3.5 日志模块(Logging) #### 3.5.1 LogService(日志服务) - **子任务列表** - 实现结构化日志记录 - 实现日志轮转与压缩 - 实现日志查询接口 - 实现日志级别控制 - **输入/输出** - 输入:日志数据、查询条件 - 输出:日志记录、查询结果 - **前置依赖** - 日志格式定义 #### 3.5.2 HealthService(健康检查服务) - **子任务列表** - 实现系统状态收集 - 实现错误统计 - 实现性能指标收集 - 实现健康状态报告 - **输入/输出** - 输入:状态查询请求 - 输出:健康状态报告 - **前置依赖** - 指标定义 ### 3.6 测试工具模块(Testing Tools) #### 3.6.1 VirtualSerialPort(虚拟串口) - **子任务列表** - 实现虚拟串口对创建 - 实现数据回环测试 - 实现错误模拟 - 实现性能测试 - **输入/输出** - 输入:测试配置 - 输出:测试结果 - **前置依赖** - 测试框架选择 #### 3.6.2 URCTestGenerator(URC测试生成器) - **子任务列表** - 实现URC测试用例生成 - 实现边界条件测试 - 实现性能压力测试 - 实现兼容性测试 - **输入/输出** - 输入:URC配置 - 输出:测试用例 - **前置依赖** - URC配置格式 ## 4. 详细实现步骤与技术路线 ### 4.1 核心模块实现 #### 4.1.1 SerialEngine实现逻辑 **实现逻辑说明**: - 使用单例模式管理所有串口实例 - 维护端口状态机(Closed → Opening → Opened → Closing) - 实现资源RAII管理,确保端口正确释放 - 提供端口操作的统一入口 **数据流/控制流**: ``` openPort请求 → 验证参数 → 检查端口状态 → 创建端口实例 → 注册事件监听 → 返回成功 write请求 → 获取锁 → 写入数据 → 启动超时 → 收集响应 → 释放锁 → 返回结果 ``` **关键技术点**: - 使用Map存储端口实例:`Map<port, SerialPortInstance>` - 实现状态转换验证,防止非法操作 - 使用WeakMap避免内存泄漏 - 实现优雅关闭机制 **接口说明**: ```typescript interface ISerialEngine { openPort(config: PortConfig): Promise<SerialPortInfo>; closePort(port: string): Promise<void>; writeAndRead(port: string, data: Buffer, timeout: number, sessionId: string): Promise<ReadResult>; getPortStatus(port: string): PortStatus; } ``` #### 4.1.2 EventBus实现逻辑 **实现逻辑说明**: - 基于Node.js EventEmitter实现 - 支持事件类型验证和参数检查 - 实现订阅者管理,支持取消订阅 - 支持事件中间件机制 **数据流/控制流**: ``` 发布事件 → 验证事件类型 → 遍历订阅者 → 调用处理函数 → 捕获异常 → 记录日志 ``` **关键技术点**: - 使用泛型确保类型安全 - 实现事件优先级机制 - 支持一次性订阅(once) - 实现错误隔离,防止订阅者异常影响系统 **接口说明**: ```typescript interface IEventBus { publish<T extends EventType>(type: T, event: EventMap[T]): void; subscribe<T extends EventType>(type: T, handler: EventHandler<T>): string; unsubscribe(subscriptionId: string): void; } ``` #### 4.1.3 WriteMutex实现逻辑 **实现逻辑说明**: - 每个端口维护独立的锁队列 - 实现FIFO公平调度 - 支持锁超时机制 - 提供锁状态查询接口 **数据流/控制流**: ``` 请求锁 → 检查端口状态 → 加入队列 → 等待或获取锁 → 执行操作 → 释放锁 → 通知下一个等待者 ``` **关键技术点**: - 使用Promise实现异步锁 - 实现锁票据机制,防止误释放 - 支持锁等待超时 - 实现死锁检测 **接口说明**: ```typescript interface IWriteMutex { acquire(port: string, timeoutMs: number): Promise<LockTicket>; release(port: string, ticket: LockTicket): void; getLockInfo(port: string): LockInfo; } ``` ### 4.2 通信模块实现 #### 4.2.1 SerialPortAdapter实现逻辑 **实现逻辑说明**: - 封装node-serialport库,提供统一接口 - 实现平台差异处理 - 提供错误转换和标准化 - 实现数据缓冲和流控制 **数据流/控制流**: ``` 打开端口 → 验证参数 → 调用serialport.open → 注册事件监听 → 返回适配器实例 写入数据 → 检查端口状态 → 调用serialport.write → 等待drain → 返回结果 ``` **关键技术点**: - 使用适配器模式隔离第三方库 - 实现错误码映射 - 支持自动重连机制 - 实现数据流背压控制 **接口说明**: ```typescript interface ISerialPortAdapter { open(config: PortConfig): Promise<void>; close(): Promise<void>; write(data: Buffer): Promise<void>; on(event: string, handler: Function): void; off(event: string, handler: Function): void; } ``` ### 4.3 MCP协议层实现 #### 4.3.1 MCPServer实现逻辑 **实现逻辑说明**: - 基于@modelcontextprotocol/sdk实现 - 实现JSON-RPC 2.0协议解析 - 提供方法路由和请求分发 - 实现通知推送机制 **数据流/控制流**: ``` 接收请求 → 解析JSON-RPC → 验证参数 → 路由到处理器 → 执行业务逻辑 → 格式化响应 → 发送结果 ``` **关键技术点**: - 使用TypeScript接口确保类型安全 - 实现中间件机制(认证、日志、限流) - 支持批量请求处理 - 实现连接管理 **接口说明**: ```typescript interface IMCPServer { start(): Promise<void>; stop(): Promise<void>; registerMethod(name: string, handler: MethodHandler): void; sendNotification(method: string, params: any): void; } ``` ### 4.4 URC处理实现 #### 4.4.1 URCDetector实现逻辑 **实现逻辑说明**: - 基于配置文件的正则表达式匹配 - 支持热更新配置 - 实现多行数据识别 - 提供调试信息输出 **数据流/控制流**: ``` 加载数据 → 按行分割 → 遍历模式 → 正则匹配 → 标记URC → 返回结果 ``` **关键技术点**: - 预编译正则表达式提高性能 - 实现配置文件监听 - 支持模式优先级 - 实现缓存机制 **配置文件格式**: ```yaml version: "1.0" patterns: - id: csq pattern: "^\\+CSQ:\\s*\\d+,\\d+" description: "信号强度报告" examples: ["+CSQ: 23,99", "+CSQ: 15,0"] options: enableFilter: true reportFiltered: true maxLineLength: 1024 encoding: "utf8" ``` ## 5. 里程碑与时间排期(甘特图风格) ``` Week 1-2: 项目初始化与基础框架 ├── 创建项目结构 ├── 配置TypeScript环境 ├── 安装核心依赖 └── 实现基础类型定义 Week 2-3: 适配器层开发 ├── 实现SerialPortAdapter ├── 实现PlatformAdapter ├── 跨平台测试 └── 适配器层单元测试 Week 3-4: 核心引擎层开发 ├── 实现EventBus ├── 实现WriteMutex ├── 实现PortSession └── 核心模块单元测试 Week 4-5: 数据处理与URC识别 ├── 实现DataProcessor ├── 实现URCDetector ├── 配置文件加载 └── URC识别测试 Week 5-6: 服务层开发 ├── 实现SerialService ├── 实现LogService ├── 实现HealthService └── 服务层集成测试 Week 6-7: MCP协议层开发 ├── 实现MCPServer ├── 实现MethodRouter ├── 实现NotificationManager └── MCP协议测试 Week 7-8: 集成测试与优化 ├── 端到端测试 ├── 性能优化 ├── 错误处理完善 └── 文档编写 Week 8-9: 部署准备与发布 ├── 打包配置 ├── 部署文档 ├── 用户手册 └── 版本发布 ``` ## 6. 风险分析与缓解策略 ### 6.1 技术风险 #### 风险1:串口并发写入导致数据错乱 - **风险描述**:多个请求同时写入同一串口,导致数据交错 - **触发条件**:高并发场景,多客户端同时操作 - **缓解方案**: - 实现WriteMutex互斥锁机制 - 使用FIFO队列保证顺序 - 添加锁超时防止死锁 - 监控锁等待时间 #### 风险2:URC识别准确率不足 - **风险描述**:URC模式匹配不准确,误判或漏判 - **触发条件**:复杂URC格式,边界条件 - **缓解方案**: - 建立完整URC测试用例库 - 支持正则表达式调试模式 - 提供URC识别统计信息 - 支持运行时添加自定义模式 #### 风险3:跨平台兼容性问题 - **风险描述**:Windows/Linux串口行为差异 - **触发条件**:不同操作系统,不同硬件 - **缓解方案**: - 使用PlatformAdapter抽象差异 - 建立多平台测试环境 - 收集平台特定问题知识库 - 提供平台配置选项 ### 6.2 性能风险 #### 风险1:高频数据导致内存溢出 - **风险描述**:串口数据量大,Buffer累积过多 - **触发条件**:高波特率,长时间运行 - **缓解方案**: - 实现Buffer大小限制 - 使用流式处理大数据 - 实现背压控制机制 - 定期清理过期数据 #### 风险2:事件处理延迟 - **风险描述**:事件队列堆积,响应延迟 - **触发条件**:事件产生速度 > 处理速度 - **缓解方案**: - 使用异步非阻塞处理 - 实现事件优先级机制 - 监控事件队列长度 - 优化事件处理逻辑 ### 6.3 模块耦合风险 #### 风险1:层间依赖过紧 - **风险描述**:修改一层影响其他层 - **触发条件**:接口变更,需求变更 - **缓解方案**: - 严格遵循依赖倒置原则 - 定义清晰的接口契约 - 使用依赖注入 - 完善的Mock测试 #### 风险2:全局状态滥用 - **风险描述**:过多全局变量,状态管理混乱 - **触发条件**:复杂状态逻辑,多线程访问 - **缓解方案**: - 使用状态机管理状态 - 限制全局状态数量 - 实现状态变更通知 - 记录状态变更日志 ### 6.4 测试覆盖风险 #### 风险1:硬件依赖测试困难 - **风险描述**:真实串口设备不足,测试不充分 - **触发条件**:硬件资源限制,环境配置复杂 - **缓解方案**: - 实现虚拟串口对 - 使用Mock适配器 - 建立自动化测试环境 - 增加集成测试比例 #### 风险2:边界条件测试缺失 - **风险描述**:异常情况处理不完善 - **触发条件**:极端输入,异常状态 - **缓解方案**: - 使用模糊测试工具 - 建立边界条件测试用例 - 实现错误注入机制 - 定期进行混沌测试 ### 6.5 AI调用协议(MCP)兼容性风险 #### 风险1:MCP协议版本升级 - **风险描述**:MCP协议变更导致不兼容 - **触发条件**:MCP SDK版本升级 - **缓解方案**: - 锁定MCP SDK版本 - 实现协议适配层 - 关注MCP社区动态 - 预留版本兼容机制 #### 风险2:不同AI客户端差异 - **风险描述**:不同AI客户端实现差异 - **触发条件**:多客户端接入 - **缓解方案**: - 严格遵循MCP规范 - 建立客户端兼容性测试 - 提供客户端适配指南 - 收集客户端反馈 ## 7. 测试计划(Test Plan) ### 7.1 单元测试 #### 测试项:SerialEngine核心功能 - **测试目的**:验证串口引擎状态管理和操作正确性 - **测试方法**: - 使用Jest框架 - Mock SerialPortAdapter - 测试状态转换逻辑 - 测试资源清理 - **预期结果**: - 所有状态转换符合预期 - 资源正确释放 - 错误处理正确 #### 测试项:WriteMutex互斥锁 - **测试目的**:验证并发写入控制机制 - **测试方法**: - 模拟并发写入请求 - 测试FIFO队列行为 - 测试超时处理 - 测试锁释放机制 - **预期结果**: - 同时只有一个写入操作 - 请求按FIFO顺序处理 - 超时正确返回错误 #### 测试项:URCDetector URC识别 - **测试目的**:验证URC模式匹配准确性 - **测试方法**: - 使用多种URC样本 - 测试边界条件 - 测试性能表现 - 测试配置热更新 - **预期结果**: - URC识别准确率>99% - 非URC数据正确过滤 - 配置更新立即生效 ### 7.2 集成测试 #### 测试项:串口读写流程 - **测试目的**:验证完整的串口操作流程 - **测试方法**: - 使用虚拟串口对 - 模拟真实设备响应 - 测试超时机制 - 测试错误恢复 - **预期结果**: - 数据正确收发 - 超时正确触发 - 错误自动恢复 #### 测试项:MCP协议集成 - **测试目的**:验证MCP协议端到端功能 - **测试方法**: - 使用真实MCP客户端 - 测试所有接口方法 - 测试异步通知 - 测试错误响应 - **预期结果**: - 所有接口正常工作 - 通知及时推送 - 错误格式正确 ### 7.3 串口模拟(虚拟串口)测试 #### 测试项:虚拟串口对通信 - **测试目的**:验证虚拟串口模拟真实设备 - **测试方法**: - 使用com0com(Windows)或socat(Linux) - 创建虚拟串口对 - 模拟设备响应数据 - 测试各种波特率 - **预期结果**: - 虚拟串口稳定工作 - 数据传输正确 - 支持各种配置 #### 测试项:设备行为模拟 - **测试目的**:模拟各种设备行为特征 - **测试方法**: - 模拟响应延迟 - 模拟部分响应 - 模拟URC干扰 - 模拟连接断开 - **预期结果**: - 系统正确处理各种情况 - 错误恢复机制有效 - 日志记录完整 ### 7.4 异步事件与消息流测试 #### 测试项:URC异步上报 - **测试目的**:验证URC实时上报机制 - **测试方法**: - 模拟随机URC到达 - 测试上报及时性 - 测试多订阅者 - 测试订阅取消 - **预期结果**: - URC及时上报 - 多订阅者正确接收 - 订阅管理正确 #### 测试项:事件总线性能 - **测试目的**:验证高并发事件处理能力 - **测试方法**: - 模拟高频事件产生 - 测试事件处理延迟 - 测试内存使用 - 测试错误隔离 - **预期结果**: - 事件处理延迟<10ms - 内存使用稳定 - 错误不影响其他事件 ### 7.5 日志完整性测试 #### 测试项:日志记录完整性 - **测试目的**:验证所有操作日志记录完整 - **测试方法**: - 执行各种操作 - 检查日志内容 - 测试日志轮转 - 测试日志压缩 - **预期结果**: - 所有操作都有日志 - 日志格式正确 - 轮转机制正常 #### 测试项:日志查询功能 - **测试目的**:验证日志查询和过滤功能 - **测试方法**: - 生成大量日志数据 - 测试各种查询条件 - 测试时间范围过滤 - 测试关键词搜索 - **预期结果**: - 查询结果准确 - 过滤功能正常 - 性能满足要求 ### 7.6 回归测试 #### 测试项:版本兼容性 - **测试目的**:验证新版本向后兼容 - **测试方法**: - 使用旧版本测试用例 - 测试API兼容性 - 测试配置兼容性 - 测试行为一致性 - **预期结果**: - API保持兼容 - 配置无需修改 - 行为符合预期 #### 测试项:性能回归 - **测试目的**:确保性能不降低 - **测试方法**: - 对比基准性能数据 - 测试响应延迟 - 测试吞吐量 - 测试资源使用 - **预期结果**: - 性能指标不降低 - 资源使用合理 - 扩展性保持 ## 8. 部署方案(如适用) ### 8.1 Windows 版本部署事项 #### 8.1.1 安装包制作 - 使用electron-builder或pkg打包 - 包含所有运行时依赖 - 生成MSI安装程序 - 支持静默安装 #### 8.1.2 驱动程序准备 - 检查串口驱动状态 - 提供驱动安装指引 - 支持USB转串口驱动 - 驱动签名验证 #### 8.1.3 防火墙配置 - 添加防火墙例外 - 配置端口访问规则 - 支持域环境部署 - 提供组策略模板 ### 8.2 Linux 预留兼容项 #### 8.2.1 包管理器支持 - 提供DEB/RPM包 - 添加软件源配置 - 处理依赖关系 - 支持自动升级 #### 8.2.2 权限管理 - 配置dialout组权限 - 设置udev规则 - 支持sudo免密码 - 提供权限检查脚本 #### 8.2.3 系统服务 - 创建systemd服务 - 配置自启动 - 日志重定向 - 进程监控 ### 8.3 可执行程序发布结构 ``` mcp2serial/ ├── bin/ # 可执行文件 │ ├── mcp2serial.exe # Windows可执行文件 │ └── mcp2serial # Linux可执行文件 ├── config/ # 配置文件 │ ├── default.yaml # 默认配置 │ └── urc-patterns.yaml # URC模式配置 ├── docs/ # 文档 │ ├── README.md # 使用说明 │ ├── API.md # API文档 │ └── DEPLOYMENT.md # 部署指南 ├── scripts/ # 辅助脚本 │ ├── install.bat # Windows安装脚本 │ ├── install.sh # Linux安装脚本 │ └── check-ports.js # 端口检查脚本 └── examples/ # 示例配置 ├── modem.yaml # 调制解调器配置 └── sensor.yaml # 传感器配置 ``` ## 9. 文档与交付物 ### 9.1 技术文档 #### 9.1.1 API文档 - MCP接口规范 - 方法参数说明 - 错误码定义 - 使用示例代码 #### 9.1.2 架构文档 - 系统架构说明 - 模块职责描述 - 设计决策记录(ADR) - 扩展开发指南 #### 9.1.3 部署文档 - 安装步骤说明 - 配置参数详解 - 故障排查指南 - 常见问题解答 ### 9.2 用户文档 #### 9.2.1 快速开始指南 - 环境准备说明 - 基础使用示例 - 配置文件模板 - 常见使用场景 #### 9.2.2 配置参考手册 - 配置文件格式 - 参数详细说明 - URC模式配置 - 平台特定配置 ### 9.3 开发文档 #### 9.3.1 开发者指南 - 开发环境搭建 - 代码贡献流程 - 调试技巧说明 - 测试方法介绍 #### 9.3.2 扩展开发文档 - 插件开发接口 - 自定义适配器 - URC模式扩展 - 协议解析插件 ### 9.4 测试报告 #### 9.4.1 测试计划 - 测试策略说明 - 测试范围定义 - 测试环境描述 - 测试时间安排 #### 9.4.2 测试结果报告 - 测试用例执行情况 - 缺陷统计与分析 - 性能测试数据 - 测试覆盖率报告 ### 9.5 交付物清单 1. **源代码** - 完整TypeScript源代码 - 构建配置文件 - 依赖配置文件 - 开发工具配置 2. **可执行程序** - Windows可执行文件 - Linux可执行文件 - Docker镜像 - 安装包 3. **配置文件** - 默认配置模板 - URC模式配置 - 示例配置文件 - 环境变量模板 4. **文档** - API参考文档 - 用户手册 - 部署指南 - 开发者文档 5. **测试** - 单元测试套件 - 集成测试套件 - 测试数据 - 测试报告 6. **工具** - 安装脚本 - 配置生成工具 - 调试工具 - 性能分析工具

Latest Blog Posts

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/niusulong/mcp2serial'

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