mcpField
C
Carrick

Carrick

远程服务
carrick.tools开发工具7今天更新

关于 Carrick

Carrick 为 AI Agent 和 IDE 提供 TypeScript 代码库分析,可索引单体仓库或跨仓库服务,并追踪路由、类型和调用关系。它通过 MCP、LSP 和 CI 提供代码搜索、契约检查与变更影响信息。

主要功能

  1. 01索引多个 TypeScript 仓库与服务
  2. 02按函数意图搜索现有实现
  3. 03追踪跨服务调用与 API 契约
  4. 04检查消费者与提供者类型兼容性
  5. 05在 CI 和 IDE 中报告变更风险

适用场景

  1. 01修改 API 前查找受影响的调用方
  2. 02为 Agent 查找可复用的现有函数
  3. 03在拉取请求中发现服务契约不一致

MCP 相关

Carrick 将索引作为结构化工具提供给 MCP Agent,涵盖意图搜索、调用方查询、服务图和类型兼容性检查等。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://api.carrick.tools/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Carrick

Carrick

面向 AI Agent 和 IDE 的 TypeScript 代码库智能分析。

Listed on mcpservers.org GitHub Marketplace Carrick MCP connector – tool definition quality and endpoint health on Glama Claude directory npm Open VSX MCP Registry

在完整栈和多服务代码库中工作的编码 Agent,经常会重复开发已有的辅助工具、依赖过时的类型定义,还会在不了解哪些调用方会受影响的情况下修改 API 契约。

Carrick 会为整个 TypeScript 生态系统建立索引,涵盖前端应用和后端服务,无论它们位于单体仓库还是分布在多个代码库中。Carrick 与 TypeScript 编译器深度集成,可追踪每条路由、每种类型和每次跨服务调用,同时记录函数行为,让 Agent 能按意图而非名称搜索,并基于真实架构开展工作。

Carrick 通过 MCP 为 AI Agent 提供服务,通过 LSP 支持 IDE,确保模型在生成新代码前能看到已有端点和实用工具。扫描器采用源代码可用模式,可通过命令行或 CI 流水线运行,并提供免费方案,让你立即开始构建更安全的 Agent 工作流。

开始使用

npm install -g carrick
carrick init

carrick init 会为你登录,询问要索引哪些代码库,并连接你的 Agent。随后,你的 Agent 会为每个代码库编写 carrick.json 并运行首次扫描。快速入门中提供了详细说明(需要 Node 24 或更高版本)。

一个索引,三个使用场景

通过 Agent 搜索现有代码,在编辑器中检查实时契约,并在拉取请求中发现破坏性变更。

在你的 Agent 中

为 AI 助手提供完整上下文,了解已有内容、端点的结构,以及变更会影响哪些调用方。Carrick 会根据每个函数的实际功能建立映射,让 Agent 找到已有实现并在其基础上继续开发,即使相关代码库尚未在本地检出也可以。端点类型直接从暴露这些端点的服务所使用的 TypeScript 编译器中提取。

兼容所有支持 MCP 的 Agent,包括 Claude Code、Cursor、Windsurf 和 Codex。

在你的编辑器中

检查跨服务契约,并在相互关联的文件之间跳转,无需离开 IDE。当代码位于磁盘上时,“转到定义”会从服务调用直接跳转到对应处理程序,而 Code Lens 会以内联方式显示本地索引中的所有调用方。如果前端调用与后端处理程序不同步,Carrick 会将类型不匹配显示为原生编辑器诊断信息。

可在 Visual Studio Marketplace 和 Open VSX 获取,也可以作为标准 LSP 服务运行。

在你的拉取请求中

将同一索引用于 CI,以发现契约风险、重复工作和未察觉的版本漂移。如果生产方和消费方不同步,无论使用何种协议,Carrick 都会在 PR 合并前直接标出确切的不匹配之处。它还会检查各服务之间的依赖版本,及早发现冲突的软件包更新。

技能

Carrick 内置四种技能,用于应对最常见的 Agent 失误:破坏其他服务中的调用方、重新实现已有代码、信任其他服务类型的过期副本,以及遗漏代码库范围变更中的位置。每种技能都会从 Carrick 索引中获取答案。carrick init 会将它们安装到 .claude/skills/ 和 .agents/skills/ 中。

技能使用场景返回内容
carrick-impact在更改或删除路由、处理程序、响应结构、事件或共享函数之前,或想询问“谁调用了它?”时所有依赖于即将更改代码的内容;每项都附有文件和行号,并为每个使用方提供类型判定
carrick-reuse在添加或更改函数的任务结束时,或想询问“这已经存在了吗?”时将新函数与完整函数索引进行比较,并指出项目中重复实现同一功能的位置
carrick-drift更改请求或响应类型之前,或兼容性判定指出了你无法定位的问题时并列显示生产方的类型、每个使用方调用点的预期类型以及存储的判定,一次处理一个操作
carrick-census用于“找出所有执行 X 的位置”这类问题找出同一概念两种表述的所有匹配项,逐页查至末尾,并将结果合并为一份列表并附上凭证

询问你的 Agent

  • “哪些函数会在我们的服务之间处理 webhook 签名?”
  • “我们在哪里按电子邮件对用户去重?”
  • “哪些内容调用了 /api/users,每个调用方预期的响应结构是什么?”
  • “列出所有会在遇到速率限制错误时重试的函数。”

MCP 工具

MCP 端点会将索引作为结构化工具公开,供你的 Agent 直接调用。MCP 工具参考列出了每个工具的参数和响应。

工具用途
search_by_intent按函数的用途搜索,将自然语言查询与每个函数的意图进行匹配
find_similar查找相似函数,适用于你即将编写的代码或项目中已有的重复代码
list_function_intents按服务或文件逐页浏览已编入索引的函数及其意图
get_project_map显示项目地图,简要概述服务、契约和未匹配的调用
list_projects列出工作区项目及其关联的仓库
list_services列出项目的服务,以及每项服务的端点、调用和函数数量
get_service_graph显示跨服务调用图,包括未匹配的调用和孤立端点
get_operation根据方法和路径,查找某个操作的服务方和调用方
get_callers查找项目中任何位置对某个函数的调用方
get_api_endpoints列出服务通过 HTTP、GraphQL、WebSockets 和 pub/sub 提供的操作
get_endpoint_types读取端点的请求和响应类型,类型由 TypeScript 编译器解析
get_type_definition将具名类型定义解析为展开后的 TypeScript
check_compatibility检查使用方与生产方之间的兼容性,并为每个调用提供类型判定
get_service_dependencies读取单个服务或整个项目的 npm 依赖项和版本冲突
list_external_calls列出发往外部目标的出站调用,例如 SDK 调用、外部域名和环境变量 URL
get_contract_pair按操作逐一比较使用方和生产方的类型
scaffold生成 Carrick 配置文件(工作流、Carrick 技能、carrick.json 和 Claude Code 钩子)

保持索引为最新

GitHub Action 会在每次推送到 main 时更新索引中对应仓库的部分。它在 CI 中以只读方式运行,无需存储 API 密钥。

name: Carrick
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
permissions:
  id-token: write
  contents: read
jobs:
  carrick:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: carrick-tools/carrick@v1

构建索引介绍了完整工作流,包括按需重新扫描、安装依赖项和配置 monorepo。

文档

许可

Carrick 提供免费版,付费方案请见定价页面。本仓库中的扫描器以源代码可见的形式根据 Elastic License 2.0 授权。版权所有 (c) 2026 Far Harbour B.V.

开发

有关构建、测试和贡献规范,请参阅 AGENTS.md。

cargo test
cargo fmt
cargo clippy

安装可选的 pre-commit 钩子,以便在每次提交前运行格式检查和测试:

./scripts/install-hooks.sh

评论

支持 Markdown

第一次接触 MCP?

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

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