mcpField
T
Terminal History Mcp

Terminal History Mcp

本地服务
github.com/HasanJahidul开发工具524 周前更新

关于 Terminal History Mcp

Terminal History Mcp 是面向开发者和编码 Agent 的本地 MCP 服务,可搜索 zsh、bash 和 fish 历史记录。它使用 SQLite FTS5 存储命令,并在写入前清除检测到的密钥。

主要功能

  1. 01全文搜索 Shell 历史
  2. 02按工作目录筛选命令
  3. 03查找非零退出码命令
  4. 04查看相邻命令序列
  5. 05重新索引历史文件和日志
  6. 06存储前清除密钥

适用场景

  1. 01找回数周前使用过的命令
  2. 02检查 Shell 会话中的失败命令
  3. 03查找特定目录中运行的命令

MCP 相关

向 MCP 客户端提供 Shell 历史搜索、筛选和重新索引工具。它通过 stdio 运行,面向 Claude Code、Cursor、Cline 和 Zed 等客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"terminal-history": {
"command": "npx",
"args": [
"-y",
"terminal-history-mcp"
]
}
}
}
启动命令npx -y terminal-history-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmterminal-history-mcp

工具

5

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

terminal-history-mcp logo

terminal-history-mcp

MCPize mcp.so terminal-history-mcp MCP server CI npm version License: MIT

可通过 Claude Code、Cline、Cursor、Zed 或任何 MCP 客户端搜索 shell 历史记录(zsh / bash / fish)。仅限本地运行。使用 SQLite FTS5。存储前会隐藏机密信息。

demo

可以询问的问题

  • “我上次通过 ssh 登录 staging 服务器是什么时候?”
  • “显示最近失败的命令。”
  • “我昨天在 /etc/nginx 中运行了什么?”
  • “我 3 周前用过的那个很长的 docker compose 标志是什么?”
  • “显示 kubectl apply 前后的命令链。”

安装

npm install -g terminal-history-mcp
terminal-history-mcp index           # one-time backfill from existing history

(或者从克隆的仓库运行:git clone … && npm install && npm run build && npm link。)

接入 Claude Code
claude mcp add --scope user terminal-history -- terminal-history-mcp
claude mcp list
接入其他 MCP 客户端

适用于任何接受 stdio MCP 服务配置的客户端:

{
  "mcpServers": {
    "terminal-history": {
      "command": "terminal-history-mcp"
    }
  }
}

通过 MCPize 连接

无需本地安装,即可立即使用此 MCP 服务:

npx -y mcpize connect @HasanJahidul/terminal-history --client claude

或通过以下地址连接:https://mcpize.com/mcp/terminal-history

捕获 cwd 和退出代码(推荐)

默认情况下,zsh/bash 历史文件仅存储命令。若要启用 recent_in_dir 和 failed_commands,请安装 shell hook:

terminal-history-mcp install-hook zsh    # or bash, or fish
exec $SHELL                              # reload

此 hook 会将以竖线分隔的行追加到 ~/.terminal-history-mcp/extended.log。重新索引时会读取这些内容。

如需先检查代码片段:

terminal-history-mcp print-hook zsh

如需移除:

terminal-history-mcp uninstall-hook zsh

工具

工具功能
search_history(query, limit)在所有历史记录中进行 FTS5 关键词和前缀匹配
recent_in_dir(cwd, limit)某个工作目录中的最近 N 条命令(需要 hook)
failed_commands(since_ts_ms, limit)退出代码非零的命令(需要 hook)
command_chains(query, window_ms, limit)对每个匹配项,列出前后 ±5 分钟内的命令
reindex重新解析历史文件和扩展日志

隐私

所有数据都保存在本地。数据库位于 ~/.terminal-history-mcp/history.db。不会上传任何内容。

插入前会清除机密信息。可检测的模式包括:

  • GitHub PAT(ghp_*、gho_* 等)
  • OpenAI 密钥(sk-*)
  • Slack 令牌(xox[baprs]-*)
  • AWS 访问密钥(AKIA…)
  • Authorization: Bearer/Basic <value>
  • X-*-Token: …、X-*-Key: …、X-*-Secret: … 标头
  • 包含 TOKEN / KEY / SECRET / PASSWORD / API_KEY 的环境变量
  • CLI 标志 --token=…、--api-key …、-k …
  • URL 基本身份验证 https://user:pass@host
  • JWT(eyJ.*.*)

如果发现泄漏,请提交 issue。升级检测模式后,如需清除并重新索引:

rm ~/.terminal-history-mcp/history.db*
terminal-history-mcp index

开发

git clone https://github.com/hasanjahidul/terminal-history-mcp
cd terminal-history-mcp
npm install
npm run build
npm test

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。