feat: 初始版本 - ttychart-mcp 终端图表 MCP 服务

- 支持三种图表: 折线图、柱状图、散点图
- MCP 协议支持 (stdio + HTTP)
- 完整的单元测试和集成测试
- Docker 支持
- Makefile 构建脚本
This commit is contained in:
2026-04-15 21:03:36 +08:00
commit d3e04c5d1a
15 changed files with 2038 additions and 0 deletions

88
changelog.md Normal file
View File

@@ -0,0 +1,88 @@
# changelog.md - 版本记录
## 版本号格式
版本号格式: vMAJOR.MINOR.PATCH
## 待实现功能
- [ ] HTTP 模式服务支持
- [ ] 添加更多图表类型 (时间序列、热度图)
- [ ] 颜色配置选项
- [ ] 单元测试覆盖
- [ ] 集成测试覆盖
## 已实现功能
- [x] 项目结构创建
- [x] MCP 协议支持 (stdio + HTTP)
- [x] plot_line 折线图工具
- [x] plot_bar 柱状图工具
- [x] plot_scatter 散点图工具
- [x] Docker 支持
- [x] Makefile 构建支持
## 认知修正 (Q&A)
### Q: mcp-go SDK 与 modelcontextprotocol/go-sdk 的区别?
A:
- `modelcontextprotocol/go-sdk` 是官方 SDK但 API 不稳定
- `mcp-go` (mark3labs) 是社区实现8.5k stars更成熟更稳定
- 推荐使用 mcp-go
### 知识点:
- 在选择 MCP SDK 时,社区活跃度是重要指标
- mcp-go 的 API 设计更加直观易用
---
### Q: lipgloss 导入路径错误?
A:
- 旧版本: `github.com/charmbracelet/lipgloss`
- 新版本 (v2): `charm.land/lipgloss/v2`
- 需要使用 v2 版本以兼容 Go 1.24
### 知识点:
- charmbracelet 的库在 v2 版本后迁移到 charm.land
- 使用前需要检查版本兼容性
---
### Q: mcp-go CallToolRequest 参数访问方式?
A:
- 直接使用 `request.Params` 是 struct 类型
- 需要通过 JSON 序列化再反序列化来访问参数
- 或者使用 mcp-go 提供的工具函数
### 知识点:
- mcp-go 的参数访问模式需要参考官方文档
- 当不确定时,可以用 json.Marshal -> json.Unmarshal
---
### Q: ntcharts 库 vs 自实现图表?
A:
- ntcharts 功能丰富但依赖BubbleTea框架
- 自实现更轻量且更容易控制
- 对于简单图表需求,自实现足够
### 知识点:
- 库的选择需要权衡功能和复杂度
- 简单需求时,自实现可能是更好的选择
---
## 版本历史
### v0.1.0 (2026-04-15)
**功能**:
- 初始版本
- MCP 服务支持 (stdio + HTTP)
- 三种图表工具: 折线图、柱状图、散点图
- Docker 支持
- Makefile 构建支持