Token导航 LogoToken导航TokenDH.com
SourceSage MCP logo
搜索检索stdio官方级别未说明来源级核验

SourceSage MCP

MCP Server

MCP server to cache codebase as graph

工具数

11

提示词数

0

GitHub Stars

7

资源数

0
代码分析知识图谱PythonClaude代码管理Claude

安装说明

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

作者 / 组织

sarathsp06

提供方

sarathsp06

最后核验

2026/5/18 02:52

运行时

Python

快速接入

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

命令预览

uv --directory /path/to/sourcesage run main.py {}

详细介绍

SourceSage:LLM的高效代码存储

SourceSage是一个MCP(模型上下文协议)服务器,可以有效地记忆代码库的关键方面——逻辑、风格和标准——同时允许动态更新和快速检索。它被设计为与语言无关,利用LLM对多种语言代码的理解。

特性

  • 语言无关:适用于LLM理解的任何编程语言
  • 知识图谱存储:高效地存储代码实体、关系、模式和样式约定
  • LLM驱动分析:依靠LLM分析代码并提供见解
  • 令牌高效存储:优化以最小化令牌使用,同时最大限度地提高内存容量
  • 增量更新:在没有冗余存储的情况下,当代码更改时更新知识
  • 快速检索:能够快速准确地检索相关信息

运作原理

SourceSage采用了一种新颖的方法,其中:

  1. LLM分析代码文件(任何语言)
  2. LLM使用MCP工具来注册实体、关系、模式和样式约定
  3. SourceSage将此知识存储在令牌高效的图结构中
  4. LLM稍后可以在需要时查询这些知识

这种方法利用了LLM固有的语言理解能力,同时使MCP服务器专注于高效的内存管理。

安装

# Clone the repository
git clone https://github.com/yourusername/sourcesage.git
cd sourcesage

# Install the package
pip install -e .

用法

运行MCP服务器

# Run the server
sourcesage

# Or run directly from the repository
python -m sourcesage.mcp_server

连接到Claude for Desktop

  1. 打开Claude桌面版
  2. 前往“设置”>“开发人员”>“编辑配置”
  3. 将以下内容添加到您的 claude_desktop_config.json:

如果您已安装该软件包:

{
  "mcpServers": {
    "sourcesage": {
      "command": "sourcesage",
      "args": []
    }
  }
}

如果您从本地目录运行而未安装:

{
  "sourcesage": {
      "command": "uv", 
      "args": [
        "--directory",
        "/path/to/sourcesage",
        "run",
        "main.py"
      ]
    },
}
  1. 重新启动桌面版的Claude

可用工具

SourceSage提供以下MCP工具:

  1. 注册实体:在知识图中注册代码实体
   Input:
     - name: Name of the entity (e.g., class name, function name)
     - entity_type: Type of entity (class, function, module, etc.)
     - summary: Brief description of the entity
     - signature: Entity signature (optional)
     - language: Programming language (optional)
     - observations: List of observations about the entity (optional)
     - metadata: Additional metadata (optional)
   Output: Confirmation message with entity ID
  1. 注册表关系:注册实体之间的关系
   Input:
     - from_entity: Name of the source entity
     - to_entity: Name of the target entity
     - relationship_type: Type of relationship (calls, inherits, imports, etc.)
     - metadata: Additional metadata (optional)
   Output: Confirmation message with relationship ID
  1. 寄存器_模式:注册代码模式
   Input:
     - name: Name of the pattern
     - description: Description of the pattern
     - language: Programming language (optional)
     - example: Example code demonstrating the pattern (optional)
     - metadata: Additional metadata (optional)
   Output: Confirmation message with pattern ID
  1. 注册表_样式_约定:注册编码样式约定
   Input:
     - name: Name of the convention
     - description: Description of the convention
     - language: Programming language (optional)
     - examples: Example code snippets demonstrating the convention (optional)
     - metadata: Additional metadata (optional)
   Output: Confirmation message with convention ID
  1. add_entity_observation:向实体添加观察
   Input:
     - entity_name: Name of the entity
     - observation: Observation to add
   Output: Confirmation message
  1. 查询项:查询知识图中的实体
   Input:
     - entity_type: Filter by entity type (optional)
     - language: Filter by programming language (optional)
     - name_pattern: Filter by name pattern (regex, optional)
     - limit: Maximum number of results to return (optional)
   Output: List of matching entities
  1. get_entity_details:获取有关实体的详细信息
   Input:
     - entity_name: Name of the entity
   Output: Detailed information about the entity
  1. 查询模式:查询知识图中的代码模式
   Input:
     - language: Filter by programming language (optional)
     - pattern_name: Filter by pattern name (optional)
   Output: List of matching patterns
  1. query_style_conventions:查询编码样式约定
   Input:
     - language: Filter by programming language (optional)
     - convention_name: Filter by convention name (optional)
   Output: List of matching style conventions
  1. 获取知识_统计:获取知识图谱的统计数据
   Input: None
   Output: Statistics about the knowledge graph
  1. 清除知识:清除图表中的所有知识
   Input: None
   Output: Confirmation message

Claude工作流示例

  1. 分析代码:请Claude分析您的代码文件
   "Please analyze this Python file and register the key entities and relationships."
  1. 注册实体:Claude将使用register_instance工具存储代码实体
   "I'll register the main class in this file."
  1. 注册关系:Claude将使用register_relations工具存储关系
   "I'll register the inheritance relationship between these classes."
  1. 查询知识:稍后,问克劳德你的代码库
   "What classes are defined in my codebase?"
   "Show me the details of the User class."
   "What's the relationship between the User and Profile classes?"
  1. 获取编码模式:向Claude询问编码模式
   "What design patterns are used in my codebase?"
   "Show me examples of the Factory pattern in my code."

这有什么不同

与传统的代码分析工具不同,SourceSage:

  1. 利用LLM理解:利用LLM跨语言理解代码语义的能力
  2. 存储语义知识:注重意义和关系,而不仅仅是语法
  3. 语言是不可知的吗:适用于LLM理解的任何编程语言
  4. 优化令牌效率:以最小化令牌使用的方式存储知识
  5. 随着LLM能力的发展而发展:随着LLM的改进,代码理解能力也在提高

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

目录标签

目录标签

代码分析知识图谱PythonClaude代码管理research-and-datasourcesagecode-memoryllm本地部署LLM集成多语言支持

支持客户端

Claude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP