mcpField
S
seshat-mcp

seshat-mcp

本地服务
seshat.papyruslabs.ai开发工具04 周前更新

关于 seshat-mcp

seshat-mcp 将代码仓库编译为带类型的符号图,并通过 MCP 向编码 Agent 提供结构化代码分析。它基于真实依赖关系而非文本搜索或嵌入,可追踪变更影响、调用链和提交历史。

主要功能

  1. 01查询函数、类、路由及入口点
  2. 02查看调用者、被调用者、数据流和副作用
  3. 03追踪变更的传递影响范围
  4. 04检查 JavaScript、TypeScript 和 Python 调用状态
  5. 05分析提交历史、热点和协同变更模块

适用场景

  1. 01修改函数前确认可能受影响的代码
  2. 02定位未等待的异步调用或未处理的失败
  3. 03识别反复变更或与其他模块协同修改的代码

MCP 相关

MCP 服务将已同步仓库的编译符号图和分析结果提供给 MCP 客户端。可通过 npx 安装配置,并使用 API 密钥连接服务。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"ai-papyruslabs-seshat": {
"command": "npx",
"args": [
"-y",
"@papyruslabsai/seshat-mcp"
],
"env": {
"SESHAT_API_KEY": "<SESHAT_API_KEY>"
}
}
}
}
启动命令npx -y @papyruslabsai/seshat-mcp
需要配置的环境变量
SESHAT_API_KEY密钥Your Seshat API key. Get one free at https://seshat.papyruslabs.ai

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

安装包
npm@papyruslabsai/seshat-mcp0.20.2

工具

27

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

此工具无需参数。

详细介绍

Seshat — 面向 AI Agent 的结构化代码智能

你的 Agent 根据可能性重构代码库。Seshat 则对其进行编译。

Seshat 会将代码仓库转换为类型化符号图(包含每个函数、类、路由和表,以及其真实依赖边、数据流和约束),并通过 MCP 将其提供给你的 Agent。因此,在编辑函数之前,你的 Agent 可以先询问实际会造成哪些影响,而不是靠猜测。

Seshat 基于编译后的中间表示,而非文本搜索或嵌入:如果 Seshat 说某个函数有 3 个调用方,那就确实有 3 个。

为什么

AI 编码 Agent 速度很快,但缺乏结构视野。Agent 修改一个函数时,往往无法看到所有依赖它的部分,因此会悄无声息地破坏它从未检查过的调用方。许多由 AI 引入的回归问题正是由此而来。Seshat 为 Agent 提供代码地图。

立即试用(无需安装或登录)

将任意公开代码仓库粘贴到 **https://seshat.papyruslabs.ai/try**,看看它如何追踪一项更改会造成哪些影响。

安装

npx -y @papyruslabsai/seshat-mcp setup <your-key>

前往 https://seshat.papyruslabs.ai 获取免费密钥(首次提取免费)。设置命令会写入 MCP 配置并保存密钥。

也可以手动配置(Claude Code、Cursor 或任何 MCP 客户端):

{
  "mcpServers": {
    "seshat": {
      "command": "npx",
      "args": ["-y", "@papyruslabsai/seshat-mcp"],
      "env": { "SESHAT_API_KEY": "your-key" }
    }
  }
}

工具

使用 sync_project 指定代码仓库,然后让你的 Agent 像资深工程师一样开展调查:了解概况、追踪依赖、验证结果。

了解概况

  • list_projects — 已同步的内容
  • list_modules — 代码库如何按层或模块组织
  • query_entities — 按名称、层或模块查找函数、类和路由
  • find_entry_points — 路由、导出内容和公共 API 范围

调查符号

  • get_entity — 签名、调用方、被调用方、数据流、副作用和涉及的表
  • get_dependencies — 真实调用链、调用方和被调用方
  • get_blast_radius — 更改后会受到影响的一切,包括传递影响
  • get_data_flow — 函数读取、返回和修改的内容
  • get_optimal_context — 编辑前应阅读的最精简且经过排序的文件集合
  • find_by_constraint — 涉及指定表(或具有指定特征)的所有函数
  • find_dead_code — 无法到达的符号,可安全删除

检查调用本身(JavaScript、TypeScript 和 Python)

  • query_call_sites — 按状态查找调用:未等待的异步调用(悬空 Promise、被用作条件判断的 Promise)、失败会逃逸出调用方的调用(该调用没有 try 或 .catch 包裹),以及计算后被丢弃的结果。逐个调用检查,而非逐个函数检查。get_entity 和 get_dependencies 也会显示每个调用的相同状态。

读取历史记录(来自代码仓库的提交记录,首次同步时补录)

  • get_lineage — 了解单个函数实际经历了哪些更改:按变动内容(函数体、调用、数据、签名)对每次提交分类,显示 CI 通过或失败情况及回滚记录、伴随它一起更改的内容,以及最近一次迫使此处更改的原因。修改任何关键承载代码前,请先查询它。
  • get_hotspots — 了解开发活动集中在哪里、又在哪里失败:更改最频繁的代码、变更反复回滚或合入时 CI 为红色的反复折腾区域,以及使用广泛却无人触碰的代码(稳定性压力)
  • get_co_change_clusters — 发现隐藏模块:即使文件间没有导入关系,也会一起更改的代码;因此更改其中一个成员通常意味着其余部分也要更改

每个答案都来自编译后的图,并会说明其背后的覆盖范围。历史记录反映的是提交解析得到的相关性,并会明确说明这一点;它绝不会声称存在无法证明的因果关系。

跨领域审计工具(测试覆盖率、拓扑结构、语义克隆)仍在强化中,准备就绪后会加入此列表。

隐私

分析按设计在 Papyrus Labs 云端运行:编译后的图谱是产品的竞争壁垒,将提取过程保留在服务端是保护它的方式。公共仓库会从 GitHub 克隆;私有仓库则需要你连接 GitHub 账号。源代码会经过处理以构建图谱,并缓存以提供查询服务。请访问 seshat.papyruslabs.ai 查看隐私政策。

定价

首次提取免费。免费额度用完后,每次查询收费 $0.03;一次典型的调查需要 5 至 15 次查询。详情请访问 https://seshat.papyruslabs.ai。

采用 MIT 许可的服务。以负责记录的女神命名,为让你的 Agent 能够读取这些记录而构建。

评论

支持 Markdown

第一次接触 MCP?

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

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