Token导航 LogoToken导航TokenDH.com
Agent Context MCP logo
开发工具未说明官方级别未说明来源级核验

Agent Context MCP

MCP Server

一个高级的模型上下文协议(MCP)服务器,为AI代理提供自动代码上下文和关系分析,帮助快速理解代码结构、依赖关系和调用链。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
代码分析TypeScriptClaude开发工具Claude DesktopClaude

安装说明

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

作者 / 组织

DaliborBoldisSid

提供方

DaliborBoldisSid

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

代码上下文MCP服务器

一种先进的模型上下文协议(MCP)服务器,为AI代理提供自动代码上下文和关系分析。该工具可帮助AI助手快速理解代码结构、依赖关系和关系,而无需逐一手动读取文件。

特性

  • 多语言支持:TypeScript、JavaScript、TSX、JSX、Python、Java等
  • 综合代码分析:

- 符号定义和签名 - 所有参考文献和用法 - 呼叫者/被呼叫者关系 - 进出口跟踪 - 呼叫链分析

  • 快速性能:

- 基于树的AST解析 - Ripgrep用于闪电般快速的参考查找 - 智能缓存层

  • 丰富的上下文:立即返回AI理解代码关系所需的一切

为什么是这个工具?

当AI代理处理代码库时,他们通常需要:

  1. 查找函数的定义位置
  2. 查看所有拨打电话的地方
  3. 了解它在内部的称呼
  4. 了解相关类型、参数、返回值

如果没有此工具,代理必须逐一手动读取文件。使用此工具,代理可以 即时、全面的背景 关于任何代码符号。

用例

1.功能签名更改

之前:代理更新函数签名,然后读取每个文件以更新调用站点。

使用代码上下文MCP:Agent会立即看到所有呼叫站点,并可以决定使用默认参数,而不是更新每次呼叫。

2.影响分析

之前:“如果我更改此功能,会发生什么故障?”需要手动探索文件。

使用代码上下文MCP:立即查看完整的呼叫链和所有依赖项。

3.理解模糊请求

之前:“修复身份验证错误”-代理盲目搜索。

使用代码上下文MCP:Agent立即获取文件上下文、相关函数和结构。

安装

npm install
npm run build

MCP配置

添加到您的MCP设置文件中(例如,Claude Desktop配置):

{
  "mcpServers": {
    "code-context": {
      "command": "node",
      "args": ["/path/to/code-context-mcp-server/dist/index.js"],
      "env": {
        "WORKSPACE_PATH": "/path/to/your/project"
      }
    }
  }
}

或者独立运行:

WORKSPACE_PATH=/path/to/project node dist/index.js

可用工具

1. get_code_context

获取符号的全面上下文,包括定义、引用、调用者和被调用者。

输入:

{
  "symbol": "functionName",
  "filePath": "optional/specific/file.ts",
  "options": {
    "includeCallers": true,
    "includeCallees": true,
    "maxDepth": 3,
    "contextLines": 3
  }
}

输出:

{
  "success": true,
  "context": {
    "symbol": {
      "name": "functionName",
      "type": "function",
      "location": { ... },
      "signature": "function functionName(arg1: string): void",
      "language": "typescript"
    },
    "definition": {
      "code": "...",
      "location": { ... }
    },
    "references": [
      {
        "location": { ... },
        "context": "line of code with reference",
        "isDefinition": false,
        "isWrite": false
      }
    ],
    "callers": [
      {
        "location": { ... },
        "callerSymbol": "ClassName.methodName",
        "context": "..."
      }
    ],
    "callees": [
      {
        "symbol": { ... },
        "type": "calls",
        "location": { ... }
      }
    ],
    "relatedSymbols": [ ... ],
    "fileContext": {
      "imports": [ ... ],
      "exports": [ ... ],
      "structure": { ... }
    }
  },
  "metadata": {
    "totalReferences": 15,
    "totalCallers": 5,
    "totalCallees": 8,
    "analysisTimeMs": 45
  }
}

示例使用:

Agent: "I need to change the arguments for calculateTotal function"
*Calls get_code_context with symbol="calculateTotal"*
Agent receives: definition, all 23 call sites, what it calls internally
Agent: "I see it's called in 23 places. I'll add a default parameter instead of updating all calls."

2. find_symbol

按名称或图案搜索符号。

输入:

{
  "query": "calculate",
  "type": "function",
  "searchOptions": {
    "maxResults": 50
  }
}

输出:

{
  "success": true,
  "symbols": [
    {
      "name": "calculateTotal",
      "type": "function",
      "location": { ... },
      "signature": "...",
      "language": "typescript"
    }
  ],
  "metadata": {
    "totalMatches": 12,
    "searchTimeMs": 20
  }
}

3. get_file_context

获取文件级上下文,包括导入、导出和结构。

输入:

{
  "filePath": "src/utils/math.ts"
}

输出:

{
  "success": true,
  "context": {
    "filePath": "src/utils/math.ts",
    "language": "typescript",
    "imports": [
      {
        "source": "./types",
        "symbols": ["MathOptions", "Result"],
        "location": { ... }
      }
    ],
    "exports": [ ... ],
    "mainSymbols": [ ... ],
    "structure": {
      "classes": [ ... ],
      "functions": [ ... ],
      "variables": [ ... ],
      "interfaces": [ ... ]
    }
  }
}

4. analyze_call_chain

分析调用链以查看函数之间的关系。

输入:

{
  "symbol": "processData",
  "direction": "both",
  "maxDepth": 3
}

输出:

{
  "success": true,
  "chain": {
    "symbol": { ... },
    "depth": 0,
    "children": [
      {
        "symbol": { ... },
        "depth": 1,
        "callSite": { ... },
        "children": [ ... ]
      }
    ]
  },
  "metadata": {
    "totalNodes": 47,
    "maxDepth": 3,
    "analysisTimeMs": 120
  }
}

5. reindex_workspace

在发生重大更改后强制重新索引工作区。

输入: {}

6. get_index_stats

获取索引代码库的统计信息。

输出:

{
  "success": true,
  "index": {
    "totalSymbols": 1523,
    "totalFiles": 243,
    "symbolsByType": {
      "function": 456,
      "class": 123,
      "method": 678,
      "variable": 266
    }
  },
  "cache": { ... },
  "supportedLanguages": ["typescript", "javascript", "python", "java"],
  "workspacePath": "/path/to/workspace"
}

示例场景

场景1:修改公共函数

用户请求: “更改 authenticateUser 也接受可选 role 参数“

没有代码上下文MCP:

  1. 查找函数定义
  2. 修改签名
  3. 搜索所有用法(手动文件读取)
  4. 逐一更新每个呼叫站点

使用代码上下文MCP:

  1. 呼叫 get_code_context 随着 symbol="authenticateUser"
  2. 立即查看47个呼叫站点
  3. 分析大多数人不需要角色
  4. 添加默认参数 role?: string
  5. 只更新需要它的3个呼叫

场景2:理解复杂的依赖关系

用户请求: “当 saveData 被称为?"

代理人:

1. get_code_context(symbol="saveData", options={ includeCallees: true, maxDepth: 2 })
2. Receives complete tree: saveData → validateData → checkSchema → ...
3. Provides clear explanation of data flow

情景3:影响分析

用户请求: “重命名安全吗 formatCurrency?"

代理人:

1. get_code_context(symbol="formatCurrency")
2. See all 8 files that reference it
3. Check if it's exported (yes)
4. Check external dependencies
5. Inform user: "It's exported in 2 places, affecting 8 files. I can safely rename with proper imports."

演出

  • 初始指数:典型项目约2-5秒(取决于规模)
  • 查询时间:大多数操作为10-100ms
  • 缓存命中:对于重复查询,\`
  1. 在中创建解析器 src/parsers/Parser.ts
  2. 扩展 BaseParser
  3. 实施 walkTree 方法
  4. 增添 ParserFactory

许可证

麻省理工学院

鸣谢

内置:

目录标签

目录标签

代码分析TypeScriptClaude开发工具本地部署AI辅助开发多语言支持代码依赖分析

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP