Skip to main content
Glama
wsd1

summary-always

by wsd1

总结记录工具

该项目使用VSCode + Cline + Deepseek 耗时1小时左右生成、调整和测试完成。过程丝滑爽快,心流不断。

配置过程自己摸索吧。使用的时候,就是丢一句:总结一下刚才讨论的内容。 可以多次要求,每次要求都会将新的总结加入服务器缓存列表。 你可以随时表示:看看之前总结的内容。 也可以表示:把总结保存一下。

保存路径在 mcp server的配置项目中。

以下内容均由AI 生成。

Summary-Always MCP Server

一个用于跟踪和总结对话的MCP服务器。当用户明确请求"记一下刚才的纪要"或"总结记录一下"时,服务器会提取对话中的有价值信息并记录。

Related MCP server: mitmproxy-mcp MCP Server

功能特性

  • 智能总结:自动提取对话中的关键信息,特别是用户表示赞同、认可有用的内容

  • 关键词标记:自动为总结添加相关关键词标签

  • 快速检索:可以按关键词过滤和查看历史总结

  • 内存存储:所有总结存储在内存中,直到服务器重启

  • 简单格式:统一的纯文本格式,易于阅读和处理

安装和配置

1. 构建服务器

# 安装依赖
npm install

# 构建项目
npm run build

2. 配置MCP客户端

将以下配置添加到您的MCP设置文件中(例如Claude Desktop或Cline的MCP配置):

{
  "mcpServers": {
    "summary-always": {
      "disabled": false,
      "autoApprove": [],
      "timeout": 60,
      "type": "stdio",
      "command": "node",
      "args": [
        "/path/to/summary-always/build/index.js"
      ]
    }
  }
}

可用工具

1. add_summary - 添加对话总结

触发方式:当用户说"总结记录一下"时使用此工具

参数

  • content (必需): 需要总结的对话内容

  • keywords (可选): 关键词列表,用于标记总结的主题

示例

{
  "content": "讨论了如何创建MCP服务器,用户确认了设计需求,包括内存存储、两个工具接口和纯文本格式。",
  "keywords": ["mcp", "ai", "对话总结"]
}

输出格式

YYYYMMDD #关键词1 #关键词2 总结内容...

示例输出

20260211 #mcp #ai #对话总结 讨论了如何创建MCP服务器,用户确认了设计需求...

2. show_summaries - 显示历史总结

触发方式:当用户说"看一下之前的总结"时使用此工具

参数

  • filterKeywords (可选): 关键词过滤,只显示包含指定关键词的总结

  • limit (可选): 数量限制,显示最新的N条总结

示例

{
  "filterKeywords": ["mcp"],
  "limit": 5
}

使用场景

记录重要的对话要点

当对话中有重要的决策、确认或有用信息时,使用"总结记录一下"来保存关键内容。

跟踪项目进展

在项目讨论中,定期总结当前进展、下一步计划和关键决策。

保存技术讨论

记录技术方案讨论、架构决策和实现细节。

回顾学习内容

总结学习过程中的关键概念、技巧和最佳实践。

技术实现

数据结构

interface SummaryData {
  id: string;              // 唯一标识符
  timestamp: string;       // 时间戳 (YYYYMMDD格式)
  content: string;         // 总结内容
  keywords: string[];      // 关键词列表
  createdAt: Date;         // 创建时间
}

核心功能

  1. 内容精炼:自动截取和优化总结内容

  2. 关键词提取:从内容和用户输入中提取相关关键词

  3. 时间戳生成:自动生成标准化的时间戳

  4. 过滤检索:支持按关键词和时间范围过滤

开发指南

项目结构

summary-always/
├── src/
│   └── index.ts          # 主服务器实现
├── build/                # 编译输出目录
├── package.json          # 项目配置
├── tsconfig.json         # TypeScript配置
└── README.md            # 本文档

构建和测试

# 开发模式(监听文件变化)
npm run dev

# 构建项目
npm run build

# 运行服务器
npm start

# 运行测试
node simple_test.mjs

扩展功能建议

  1. 持久化存储:添加文件或数据库存储支持

  2. 自然语言处理:使用NLP技术改进总结质量

  3. 分类系统:为总结添加分类标签

  4. 导出功能:支持导出为Markdown、JSON等格式

  5. 搜索功能:全文搜索历史总结

故障排除

常见问题

  1. 服务器无法启动

    • 检查Node.js版本(需要>=18.0.0)

    • 确保所有依赖已安装:npm install

    • 检查TypeScript编译:npm run build

  2. 工具不可用

    • 检查MCP配置文件的路径是否正确

    • 确认服务器在MCP客户端中已启用

    • 查看服务器日志中的错误信息

  3. 总结格式不正确

    • 检查时间戳生成逻辑

    • 验证关键词提取算法

    • 确认内容精炼功能正常工作

日志查看

服务器会在stderr输出运行日志,包括:

  • 服务器启动信息

  • 工具调用记录

  • 错误和警告信息

许可证

MIT License

贡献

欢迎提交Issue和Pull Request来改进这个项目。

更新日志

v0.1.0 (2026-02-11)

  • 初始版本发布

  • 实现基本的总结添加和显示功能

  • 支持关键词过滤和数量限制

  • 添加完整的测试套件

Available Tools

3 tools
add_summaryA

添加对话总结到记录中。

当用户说"总结记录一下"时,使用此工具记录当前对话的有价值信息。 使用场景:

  • 记录重要的用户要求

  • 标记用户认可的有用信息

  • 跟踪项目进展和决策

重点要求: 总结内容需要清晰简练,遵循一句话说明白的原则。要聚焦在用户提出的内容上。 关键词的选择要要宁缺毋滥(不要超过5个)。要突出特殊性独立性关联性,比如项目名称、关键技术、人名等,不要太笼统的名词。

参数说明: ♦ content: 需要总结的对话内容。例如:'用户需要创建一个MCP服务器来记录对话总结。' ♦ keywords: 可选的关键词列表,用于标记总结的主题。

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes需要总结的内容
keywordsNo可选的关键词列表,用于标记总结的主题

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the disclosure burden. It does reveal that the tool adds/records summary content, and it emphasizes additive recording of user-provided information. It does not explain persistence, whether an existing record is appended vs. replaced, authorization needs, or error/response behavior, which are material for a write tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a front-loaded purpose, trigger, scenario bullets, and explicit parameter guidance. It is a little long, but each bullet earns its place by giving operational guidance rather than repeating boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter, no-output-schema tool, the description covers the trigger, content requirements, keyword selection, and usage scenarios, which is enough to call the tool correctly in most cases. Minor gaps remain around return behavior, persistence, and sibling-tool distinction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds real value: it gives a concrete example for content and a 'one-sentence clarity' rule, and it supplies keyword constraints (no more than 5, prefer specific/independent/relevant terms such as project names or people). This goes meaningfully beyond the generic schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: '添加对话总结到记录中' (add conversation summary to a record), and later gives a concrete trigger ('当用户说"总结记录一下"'). It does not explicitly contrast itself with sibling tools such as save_summaries, so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context and scenarios: use when the user asks to summarize/record, when capturing requirements, user-approved information, or project progress/decisions. However, it provides no exclusions or explicit guidance on when to prefer save_summaries/show_summaries instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_summariesA

保存当前所有总结到文件。

当用户说"保存总结"时,使用此工具将当前内存中的所有总结记录保存到文件中。

保存方式:

  1. 打开 当前时间戳YYYYMMDD.md 文件

  2. 将当前的所有记录summaries数组内的内容,依序添加在文件后续

  3. 只记录字符串,不用记录json格式

ParametersJSON Schema
NameRequiredDescriptionDefault
customPathNo可选的自定义文件保存路径,如果不提供则使用环境变量中的路径

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, and it does so well. It discloses that the tool appends records to a timestamp-named YYYYMMDD.md file, preserves order, writes plain strings rather than JSON, and saves all in-memory summaries at once.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-sentence purpose, a usage trigger, and a short numbered list of procedural steps. Every sentence earns its place, and key details are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter, no annotations, and no output schema, the description is complete enough for an agent to invoke it correctly. It covers when to use it, what data it writes, where it writes, how it formats content, and the append behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, customPath, is already fully described in the schema with 100% schema coverage, including its optional nature and fallback to an environment-variable path. The tool description adds no additional parameter meaning beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: saves all current summaries to a file. It names the resource ('summaries'), the action ('save'), and the destination ('file'), and it is clearly distinct from siblings add_summary and show_summaries, which mutate or display rather than persist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit trigger condition: when the user says 'save summaries', use this tool. It explains that it operates on all current in-memory summaries rather than a single one, but it does not explicitly name alternatives or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_summariesA

显示之前记录的总结。

当用户说"看一下之前的总结"时,使用此工具查看所有历史总结记录。

参数说明: ♦ filterKeywords: 可选的关键词过滤,只显示包含指定关键词的总结 ♦ limit: 可选的数量限制,显示最新的N条总结

输出格式: 每行显示一条总结,格式为: YYYYMMDD #关键词1 #关键词2 总结内容...

使用场景:

  • 回顾之前的对话要点

  • 查找特定主题的总结

  • 查看最近的记录

  • 了解总结统计信息

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo可选的数量限制,显示最新的N条总结
filterKeywordsNo可选的关键词过滤,只显示包含指定关键词的总结

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It conveys a read-only behavior through '显示/查看' and discloses the output format (one summary per line with date, keywords, and content) plus filter/limit behavior. It does not explicitly mention side effects or authentication, but the read-only language is clear enough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized into sections: purpose, parameters, output format, and use cases, with the core purpose front-loaded. It is economical overall, though the use-case list is slightly redundant and the mention of summary statistics does not match the line-oriented output format described.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with two optional parameters and no output schema, the description covers parameter behavior, output format, and typical triggers. Minor gaps remain, such as how multiple filterKeywords are combined and the default ordering when limit is omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes filterKeywords and limit in the same terms. The description repeats this information without adding defaults, matching rules, or examples, so it stays at the baseline rather than adding semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '显示之前记录的总结' (display previously recorded summaries). It also clarifies scope as all historical summaries, and the read-only verb clearly separates it from the sibling write tools add_summary and save_summaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger phrase (when the user asks to view previous summaries) and a bulleted list of valid use cases: reviewing previous points, finding a topic, viewing recent records. It does not explicitly name sibling tools as alternatives or state when not to use it, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedadd_summary
    • First observedsave_summaries
    • First observedshow_summaries

TDQS

A4.2/5.0
Disambiguation5/5

每个工具的目标动作完全不同:添加总结、显示总结、保存总结,职责边界清晰。即使没有详细描述,代理也能根据工具名称和参数区分用途。

Naming Consistency5/5

工具命名遵循统一的 verb_noun 模式,add_summary、show_summaries、save_summaries 均为动词加名词的 snake_case 风格。虽然 summary 单复数略有不同,但不影响整体一致性。

Tool Count5/5

3 个工具刚好覆盖了总结记录的核心操作:记录、查看、持久化。数量精简,没有冗余工具,也没有缺失必要职责。

Completeness4/5

add/show/save 构成了一个可用的核心闭环,能够满足记录和回顾总结的基本需求。但缺少删除或更新总结的能力,长期使用中可能留下无法清理的过时记录,属于轻微缺口。

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/wsd1/mcp-server-summary-always'

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