马克·麦克普
用于访问的MCP服务器 marc.info 邮件列表存档。
特性
- 流式HTTP MCP传输(无状态,支持SSE)
- 按类别和/或正则表达式过滤器浏览邮件列表
- 按月列出邮件,并设置页面+每页限制控件
- 获取完整的邮件内容(页眉+正文)
- 按主题、作者或正文在列表中搜索
- 内置带TTL的SQLite缓存,用于抓取结果
- 针对短暂的上游错误,自动重试并回退
- 可选JWT承载令牌身份验证
建筑
main.go
internal/
auth/
cache/
config/
httpserver/
marc/
middleware/
tools/
transport/internal/marc:marc.info的HTML scraper客户端internal/cache:缓存+FTS架构internal/tools:MCP工具实现internal/transport:流式HTTP MCP处理程序internal/httpserver:布线(/health,/mcp)
需求
- 转到1.25+
发展
make test
make build可用目标:
make test-运行单元测试make build-构建本地二进制文件./marc-mcpmake build-all-交叉构建marc-mcp-{os}-{arch}二进制文件make print-version-打印链接器版本变量make clean-删除生成的二进制文件
跑
go run .服务器默认为 :8080. make build 产生a marc-mcp 项目根目录中的二进制文件。
配置
| 变量 | 描述 | 默认值 |
|---|---|---|
LISTEN_ADDR | 服务器侦听地址 | :8080 |
AUTH_MODE | disabled 或 jwt | disabled |
JWT_PUBLIC_KEY | JWT验证的RSA公钥路径 | (空) |
LOG_LEVEL | debug / info / warn / error | info |
MARC_TIMEOUT | marc.info请求的HTTP超时 | 2m |
MARC_CACHE_DB | 自定义SQLite缓存路径 | 操作系统用户缓存目录+ /marc-mcp/cache.db |
MARC_CACHE_TTL | 缓存TTL(执行持续时间) | 24h |
READ_TIMEOUT | HTTP读取超时 | 15s |
WRITE_TIMEOUT | HTTP写入超时 | 60s |
IDLE_TIMEOUT | HTTP空闲超时 | 60s |
SHUTDOWN_TIMEOUT | 优雅的关机超时 | 10s |
MAX_HEADER_BYTES | 最大HTTP标头字节数 | 1048576 |
MARC_TIMEOUT 有效范围为10秒至15米。
身份验证(可选)
JWT验证支持承载令牌保护。
启用:
AUTH_MODE=jwt
JWT_PUBLIC_KEY=public.pem请求必须包括:
Authorization: Bearer 端点
GET /health- MCP可流式HTTP传输
/mcp
工具
list_mailing_lists
列出所有可用的邮件列表,可选择按类别和/或名称正则表达式过滤。
参数:
category(可选)filter(可选,正则表达式)
list_messages
按页码列出邮件列表中的邮件。
参数:
list(必填)month(可选,YYYYMM,默认当前月份)page(可选,从1开始,默认1)limit(可选)
get_message
获取特定消息的完整内容。
参数:
list(必填)message_id(必填)
search_messages
在邮件列表中搜索邮件。
参数:
list(必填)query(必填)search_type(可选:s主题,a作者b身体;默认s)
测试
make test许可证
麻省理工学院
