Token导航 LogoToken导航TokenDH.com
ironmunch (Cmillstead) logo
安全风控stdio官方级别未说明来源级核验

ironmunch (Cmillstead)

MCP Server

codesight-mcp是一个安全加固、高效令牌使用的代码智能索引服务,通过AST解析和代码图分析,为AI助手提供精确的代码检索和关系分析功能。

工具数

34

提示词数

0

GitHub Stars

0

资源数

0
代码索引PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

cmillstead

提供方

cmillstead

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install codesight-mcp[semantic] # adds fastembed (~100MB ONNX runtime + model weights)

详细介绍

codesight mcp

Security-hardened, token-efficient code intelligence for AI assistants.

MCP服务器 它通过树型AST解析对本地和GitHub代码库进行索引,然后公开34个用于符号检索、代码图遍历和影响分析的工具——所有这些工具都具有字节偏移精度,与发送完整文件相比,可以将令牌成本降低约99%。支持66种语言。

______________________________________________________________________

快速导航

______________________________________________________________________

特性

代码索引和检索

  • 树型AST解析 跨66种语言进行字节偏移O(1)符号检索
  • 增量索引 通过内容哈希——在重新索引时跳过未更改的文件
  • 本地+GitHub存储库索引 --索引磁盘上的文件夹或从GitHub获取
  • 人工智能生成的摘要 -用于符号描述的可选Anthropic API集成
  • 全文搜索 通过支持编校的匹配跨索引文件内容
  • 语义搜索 --通过设备嵌入进行混合关键字+矢量评分(可选 [semantic] 额外)

代码图和关系分析

  • 呼叫者和街道 --谁调用函数,它调用什么?
  • 呼叫链 --追踪任意两个符号之间的完整路径
  • 类型层次结构 --继承树和接口实现
  • 导入图形 --哪些文件导入什么,从哪里导入?
  • 影响分析 --更改功能,查看下游受影响的所有内容

安全

  • 6步路径验证链 --空字节、遍历、限制、解析、包含、符号链接
  • 内容边界标记 --间接快速注射防御(微软重点研究)
  • 错误清理 --原始异常永远不会到达人工智能;系统路径总是被剥离
  • MCP工具注释 --readOnlyHint、destructiveHint、幂等Hint、openWorldHint在所有34个用于客户端权限决策的工具上
  • 2495次测试 --具有真实临时目录的对抗性、安全性、集成性、基准测试、模糊性和压力覆盖

______________________________________________________________________

支持的语言

codesight mcp支持 66种编程语言 通过树形图,包括Python、JavaScript、TypeScript、Go、Rust、Java、C/C++、C#、Ruby、Swift、Kotlin、PHP、Dart、Perl、Haskell、Scala、Erlang等49种语言。请参阅 完整语言列表 了解详情。

每种语言解析器都提取函数、类、方法、参数、调用关系、导入和继承,以构建一个全面的代码图。

______________________________________________________________________

快速开始

步骤1:安装

# From source (recommended — not published to PyPI)
git clone https://github.com/cmillstead/codesight-mcp.git
cd codesight-mcp
uv sync            # recommended — uses lockfile with pinned versions
# or: pip install -e .  (uses version ranges, not the lockfile)

步骤2:注册MCP服务器

使用 claude mcp add 注册。这是Anthropic推荐的方法 使用MCP执行代码 模式——服务器通过MCP协议自行描述其工具,您的客户端通过以下方式自动发现它们 tools/list。不需要手动工具列表或每个工具的权限配置。

claude mcp add codesight-mcp \
  -e CODESIGHT_ALLOWED_ROOTS=/Users/you/src \
  -e GITHUB_TOKEN=ghp_... \
  -- /path/to/codesight-mcp/.venv/bin/codesight-mcp
变量必填描述
CODESIGHT_ALLOWED_ROOTS是(本地)冒号分隔目录 index_folder 可以访问。如果未设置,默认情况下会被拒绝。
GITHUB_TOKEN是(GitHub)私有仓库需要;建议避免对公共回购的利率限制。
ANTHROPIC_API_KEY启用AI生成的符号摘要。如果未设置,则返回到docstring。

所有34个工具包括 MCP工具注释 --每个工具都声明它是只读的、破坏性的、幂等的,还是访问外部服务的。您的MCP客户端使用这些注释自动做出权限决策,因此您不需要为每个工具单独配置权限:

注释含义工具
readOnlyHint: true不修改任何状态25工具(搜索、导航、分析)
destructiveHint: false, idempotentHint: true创建/更新状态,可以安全重试index_repo, index_folder
destructiveHint: true, idempotentHint: true删除数据,可以安全重试invalidate_cache
openWorldHint: true访问外部服务(GitHub、Anthropic)index_repo, index_folder

步骤3:为存储库建立索引

在任何其他工具工作之前,您必须至少索引一个存储库。问你的AI:

  • 本地文件夹: *“将仓库索引到~/src/myproject”*
  • GitHub仓库: *“索引GitHub仓库所有者/myproject”*

AI呼叫 index_folderindex_repo,它获取文件、解析AST并将符号提取到 ~/.code-index/。后续调用会自动跳过未更改的文件。

第四步:探索

一旦被索引,AI就会使用 get_repo_outline, search_symbols,以及 get_symbol 导航代码库——只检索所需的符号,而不是整个文件。

步骤5(可选):将CLAUDE.md添加到索引存储库

添加一个 CLAUDE.md 对于每个索引仓库,Claude Code更喜欢codesight mcp而不是读取完整文件:

## Code Navigation

This repo is indexed in codesight-mcp. Use codesight-mcp MCP tools for code
exploration instead of reading full files:

- `search_symbols` — find functions/classes/types by name or description
- `get_file_outline` — all symbols in a file with signatures
- `get_symbol` — full source of a specific symbol
- `get_repo_outline` — directory structure and language breakdown
- `get_callers` / `get_callees` — call graph navigation
- `get_call_chain` — trace execution paths between two symbols
- `get_impact` — see what's affected by changing a symbol

Use `Read` only for content that isn't a named symbol (config files, etc).

______________________________________________________________________

工具

codesight mcp曝光 34个MCP工具 分为八类:

索引

工具说明
index_repo索引GitHub存储库(获取、解析AST、提取符号)
index_folder索引本地文件夹(遍历、解析AST、提取符号)
list_repos列出所有索引存储库
invalidate_cache删除索引以强制完全重新索引

导航

工具说明
get_repo_outline高级概述:目录、文件数量、语言细分
get_file_tree索引仓库的文件树,可选择按路径前缀过滤
get_file_outline包含签名和摘要的文件中的所有符号
get_symbol特定符号的完整源代码(字节偏移检索)
get_symbols在一次呼叫中批量检索多个符号
get_symbol_context一次调用中的符号+兄弟符号+父类信息

搜索

工具说明
search_symbols按名称、签名、摘要或文档字符串搜索符号
search_text在索引文件中进行全文搜索(与编辑内容进行匹配)
search_references文本搜索功能丰富,每次点击都有封闭的符号上下文

代码图

工具说明
get_callers查找调用给定符号的所有函数
get_callees查找给定符号调用的所有函数
get_call_chain跟踪两个符号之间的执行路径(带循环检测的BFS)
get_type_hierarchy显示继承树——一个类的父母和孩子
get_imports显示文件或符号的导入关系
get_impact影响分析——变更下游受影响的一切

分析和可视化

工具说明
analyze_complexity找出最复杂/最具风险的符号——圈复杂度、认知复杂度、嵌套深度、扇入/扇出、复合风险评分。支持路径过滤和排序模式。
get_key_symbols在调用图上使用PageRank按结构重要性对符号进行排名。标识最相关和最依赖的符号。
get_diagram生成Mermaid图——从代码图中调用图、类型层次结构、导入树和影响图。
get_dead_code查找未引用的符号——调用方或导入方为零的函数和类。
get_status服务器状态——存储配置、索引统计信息和功能标志。
get_usage_stats每个工具的调用次数、错误率、平均响应时间和未调用的工具。
verify验证索引完整性——校验和、符号一致性和文件是否存在。
lint_index审核索引质量——缺少字段、孤立符号、过时数据。

安全

工具说明
scan_security扫描符号以查找危险的API使用模式(19个OWASP/CWE规则)
generate_sbom生成软件物料清单(CycloneDX、SPDX或内部JSON)
check_licenses分析锁文件中的依赖许可证并标记风险
trace_taint通过代码图转发BFS源到汇污染分析

依赖和困难

工具说明
get_dependencies外部与内部导入分析——使用哪些包以及由哪些文件使用
compare_symbols使用内容哈希的两个索引版本之间的符号级差异
get_changes使用可选的下游影响分析将git diff映射到受影响的符号

______________________________________________________________________

自然语言示例

索引后,使用简单的英语通过您的AI助手进行交互:

查找代码

  • *“在哪里 process_payment 功能?"*
  • *“显示与身份验证相关的所有类”*
  • *“查找处理数据库连接的任何代码”*

理解关系

  • *“什么函数调用 validate_input?"*
  • *“什么 initialize_system 打电话?"*
  • *“向我展示来自的完整呼叫链 mainprocess_data"*
  • *“继承层次是什么 BaseController?"*

影响分析

  • *“如果我改变 calculate_tax,还有什么受到影响?"*
  • *“哪些文件导入 utils 模块?"*
  • *“让我看看下游的一切 authenticate_user"*

探索结构

  • *“请概述此存储库”*
  • *“里面有什么符号 src/server.py?"*
  • *“列出所有索引仓库”*

______________________________________________________________________

代码图和关系分析

codesight mcp根据AST解析过程中提取的关系构建内存中的代码图。不需要外部图数据库——图使用在查询时根据符号索引构造的集合邻接表的字典。

它是如何工作的:

  1. 在索引过程中,AST解析器提取 calls, imports,以及 inherits_from 每个符号的关系
  2. 这些关系与JSON索引中的符号元数据一起存储
  3. 在查询时, CodeGraph.build(symbols) 从符号字典构造图
  4. 图形工具(调用者、被调用者、调用链、影响)使用具有循环检测的BFS遍历此结构

与...相比 CodeGraphContext: codesight mcp不使用外部数据库(FalkorDB/Neo4j)。权衡是简单性和零配置与处理大量图形的能力。对于大多数项目(数千个文件),内存中的方法是快速且足够的。

______________________________________________________________________

Git钩子:提交和推送时自动重新索引

codesight mcp包括自动保持索引最新的git挂钩:

钩子触发器更新
post-commit每次提交本地文件夹索引
post-push每次推送GitHub仓库索引(自动检测远程)

在任何仓库中安装:

cp /path/to/codesight-mcp/hooks/post-commit .git/hooks/post-commit
cp /path/to/codesight-mcp/hooks/post-push   .git/hooks/post-push
chmod +x .git/hooks/post-commit .git/hooks/post-push

这两个钩子都在后台运行,因此它们永远不会阻塞您的工作流程。移除 --no-ai 如果你想自动更新人工智能生成的摘要,可以从任一钩子中选择。

一次性设置 --git钩子不继承shell环境,因此凭据和二进制路径必须单独提供:

mkdir -p ~/.config/codesight-mcp
cat > ~/.config/codesight-mcp/env <<'EOF'
export GITHUB_TOKEN=ghp_...
export CODESIGHT_BIN=/path/to/.venv/bin/codesight-mcp
EOF
chmod 600 ~/.config/codesight-mcp/env

您还可以直接从命令行进行索引:

codesight-mcp index ~/src/myproject              # index a local folder
codesight-mcp index ~/src/myproject --no-ai     # skip AI summaries (faster)
codesight-mcp index-repo owner/myproject        # index a GitHub repo

______________________________________________________________________

安全模型

codesight mcp将连接的AI视为不受信任的主体。每个工具参数在使用前都经过验证。索引中的每个文件路径在检索时都会重新验证。错误消息经过净化,因此系统路径永远不会泄漏。

防御
路径验证6步链:空字节、遍历、长度限制、解析、包含、符号链接检查
内容边界微软风格的聚光标记,以抵抗间接提示注入
错误清理工具响应中没有原始异常或系统路径
允许的根CODESIGHT_ALLOWED_ROOTS 限制哪些目录可以被索引
秘密编辑函数体中的秘密是从API输出中编辑的; CODESIGHT_NO_REDACT=1 禁用并记录警告
安息的秘密索引文件 ~/.code-index/ 包含原始源代码,包括任何嵌入的秘密。存储在加密卷上并限制文件系统权限。覆盖 CODE_INDEX_PATH.
快速注射防御基于Nonce的分隔符用于AI摘要、注入短语块列表、类型验证的提示插值
图遍历限制BFS呼叫链搜索限制在5条路径和50个深度,以防止资源耗尽

安全.md 了解完整的威胁模型、防御矩阵和验证链的详细信息。关键安全决策的架构决策记录在 文件/决定/.

______________________________________________________________________

数据处理

ANTHROPIC_API_KEY 设置时,codesight-mcp将函数和类签名发送到Anthropic API,用于索引期间生成的AI摘要。不发送源代码,只发送签名。要禁用,请省略 ANTHROPIC_API_KEY 环境变量。

______________________________________________________________________

环境变量

变量描述
CODESIGHT_ALLOWED_ROOTS冒号分隔的目录列表 index_folder 允许索引。 必需 用于本地文件夹索引——如果未设置,默认情况下会被拒绝。例子: /Users/you/src:/home/you/projects
GITHUB_TOKENGitHub个人访问令牌。私人回购需要;强烈建议避免对公共回购的利率限制。
ANTHROPIC_API_KEYAI生成符号摘要的Anthropic API密钥。可选--如果未设置,则回退到docstring。
CODE_INDEX_PATH索引的自定义存储目录。违约: ~/.code-index/
CODESIGHT_NO_REDACT设置为 1 禁用工具输出中的秘密编校。记录警告; search_text 设置后完全禁用。
CODESIGHT_READ_ONLY设置为 1 跳过文件系统权限操作(fchmod/mkdir)。自动用于沙盒环境中的非破坏性CLI命令。
CODESIGHT_USAGE_LOG持久JSONL使用日志的文件路径。如果没有此功能,使用记录仅在内存中(重新启动时丢失)。
CODESIGHT_USAGE_ENABLED设置为 0 禁用使用日志记录。违约: 1 (已启用)。
CODESIGHT_USAGE_MAX_MEMORY驱逐前内存使用记录的最大数量。违约: 10000.
CODESIGHT_LOG_LEVEL日志冗长: DEBUG, INFO, WARNING, ERROR, CRITICAL。允许所有级别。违约: WARNING.优先于 LOG_LEVEL.
LOG_LEVEL回退日志级别。限于 WARNING/ERROR/CRITICAL 为了安全起见(ADV-LOW-10)。使用 CODESIGHT_LOG_LEVEL 解锁 DEBUG/INFO.

______________________________________________________________________

语义搜索

按意图搜索,而不是按确切名称搜索。需要 semantic 额外:

pip install codesight-mcp[semantic]   # adds fastembed (~100MB ONNX runtime + model weights)

如果没有这个额外的参数,传递语义参数会返回一个有用的错误,解释要安装什么。

参数

参数类型说明
semanticbool混合关键字+语义评分(默认权重:0.7语义,0.3关键字)
semantic_onlybool纯语义评分,完全跳过关键字匹配
semantic_weightfloat混合比从0.0(仅关键字)到1.0(仅语义)

例子

# Find by intent, not exact name
search_symbols(query="the function that validates credentials", semantic=True)

# Pure semantic search
search_symbols(query="password hashing utility", semantic_only=True)

环境变量

变量描述
CODESIGHT_EMBED_PROVIDER显式提供程序选择(默认:自动检测)
CODESIGHT_EMBED_MODEL模型覆盖(默认值: BAAI/bge-base-en-v1.5)
CODESIGHT_NO_SEMANTIC设置为 1 完全禁用语义特征

运作原理

嵌入在第一个语义查询上延迟生成,并与索引一起缓存在gzip JSON sidecar文件中。重新索引时,缓存会自动失效。默认提供程序完全在设备上运行,没有API调用。当 semantic=false (默认设置),开销为零——嵌入从不加载或计算。

关键字评分包括复合标识符拆分(hash_password{hash, password}, AuthManager{auth, manager})后缀词干(hashinghash, validatesvalidate),因此即使没有启用语义搜索,基于意图的查询也会匹配。

______________________________________________________________________

归因

许可证

麻省理工学院——见 许可证.

目录标签

目录标签

代码索引PythonClaude本地部署AST解析代码图分析安全加固AI辅助

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

34

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP