项目简介 CodeTide 是一个专注于本地、隐私保护的代码智能平台,通过符号和结构化分析来理解Python和TypeScript代码库。它不依赖互联网、LLMs、嵌入模型或向量数据库,提供快速、可解释且确定性的代码智能。CodeTide 可以作为 MCP 服务器运行,无缝集成到AI代理和工具工作流中,使其能够动态地与代码库交互,高效检索上下文并执行代码修改。
主要功能点
- 本地化与隐私保护: 所有代码解析和查询都在本地机器上完成,确保代码不会离开您的环境。
- 结构化代码解析: 利用Tree-sitter进行代码库的结构化解析,支持Python和TypeScript(Beta)。
- 精确代码片段检索: 通过符号ID而非向量相似性,检索相关代码片段。
- 项目架构可视化: 可视化您的项目的体系结构和层级关系。
- AI代理集成 (MCP 服务器): 作为 MCP 服务器运行,允许AI代理调用工具来获取代码上下文、探索仓库结构,并应用代码修改。
- 代码修改与补丁: 支持通过补丁(patch)机制对代码进行添加、删除、移动和更新,确保修改的原子性和可控性。
- 快速缓存与智能更新: 提供快速、可缓存的解析,并能智能检测代码更新。
安装步骤
- 安装 Python 环境: 确保您的系统已安装 Python 3.10 或更高版本。
- 通过 pip 安装 CodeTide:
pip install codetide --upgrade - 安装 AgentTide 模块 (可选,用于Agent UI): 如果您希望使用 AgentTide 的UI界面,请安装 'agents-ui' 额外依赖:
pip install "codetide[agents-ui]"
MCP 服务器配置 要将 CodeTide 配置为 MCP 客户端可连接的服务器,您需要在客户端的服务器配置文件中添加以下 JSON 条目(例如,如果使用 'aicore' 客户端框架):
{ "mcpServers": { "codetide": { "command": "uvx", "args": [ "--from", "codetide", "codetide-mcp-server" ], "env": { "CODETIDE_WORKSPACE": "./" }, "description": "CodeTide MCP服务器,用于检索代码上下文和探索仓库结构。它提供了 'getContext' 和 'getRepoTree' 工具,并支持通过 'applyPatch' 修改文件。" } } }
- 'codetide': MCP 服务器的唯一名称。
- 'command': 启动 MCP 服务器的命令,这里使用 'uvx' 工具。
- 'args': 传递给 'uvx' 命令的参数,指定从 'codetide' 包启动 'codetide-mcp-server'。
- 'env': 环境变量配置,'CODETIDE_WORKSPACE' 指定 CodeTide 服务器将操作的根项目路径。请将 './' 替换为您的项目实际路径。
- 'description': 服务器的描述,帮助客户端理解其功能。
基本使用方法 配置完成后,MCP 客户端即可通过 JSON-RPC 协议与 CodeTide MCP 服务器通信,并调用其暴露的工具。
1. 初始化LLM并添加CodeTide MCP服务器: (假设您使用类似 'aicore' 的框架)
from aicore.llm import Llm, LlmConfig from codetide.mcp import codeTideMCPServer import os def init_llm() -> Llm: # 示例: 配置一个LLM模型 llm = Llm.from_config( LlmConfig( model="deepseek-chat", provider="deepseek", temperature=0, api_key=os.getenv("DEEPSEEK-API-KEY") # 确保您的环境变量已设置 ) ) # 将CodeTide MCP服务器添加到LLM提供商 llm.provider.mcp.add_server(name=codeTideMCPServer.name, parameters=codeTideMCPServer) return llm # 调用示例 if __name__ == "__main__": my_llm_with_codetide_context = init_llm() # 您的LLM现在可以调用CodeTide提供的工具了 print(f"LLM已成功集成CodeTide MCP服务器: {my_llm_with_codetide_context.provider.mcp.get_server('codetide').name}")
2. 调用 MCP 服务器工具: CodeTide MCP 服务器提供了以下核心工具供 MCP 客户端(如 AI 代理)调用:
-
'getContext(code_identifiers: List[str], context_depth: int = 1)':
- 用途: 根据提供的代码标识符(如类名、函数名或文件路径)检索其完整的代码上下文。
- 参数:
- 'code_identifiers': 要检索的代码元素的唯一标识符列表。例如:'['module.ClassName', 'src/file.py:functionName']'
- 'context_depth': 上下文的检索深度。0表示仅获取标识符本身,1(默认)表示包含直接引用,2及以上表示递归引用。
- 示例: AI代理可以调用此工具来获取特定函数或类的代码,以便进行修改或分析。
-
'getRepoTree(show_contents: bool, show_types: bool = False)':
- 用途: 生成代码仓库的视觉树状结构表示。此操作开销较大,建议每个任务仅调用一次。
- 参数:
- 'show_contents': 设置为 'True' 时,会在文件中包含类、函数和变量等详细内容。
- 'show_types': 设置为 'True' 时,会在条目前添加类型代码(如 F=函数, V=变量, C=类, A=属性, M=方法)。
- 示例: AI代理可以调用此工具来理解项目结构,然后决定需要关注哪些文件或模块。
-
'applyPatch(patch_text: str)':
- 用途: 应用结构化的 diff 样式补丁,以添加、删除、移动或修改代码文件。
- 参数:
- 'patch_text': 遵循特定 diff 格式(例如 '*** Begin Patch', '*** Update File:' 等)的补丁文本。
- 示例: AI代理在生成了代码修改方案后,可以调用此工具将修改应用到实际文件系统中。
信息
分类
开发者工具