SourceSage 是一款基于模型上下文协议(MCP)的服务器,旨在助力大语言模型(LLM)高效理解并记忆代码库中的关键信息。它支持多种编程语言,专注于存储与检索代码语义、实体及其关系,为代码处理带来了新的高效解决方案。
SourceSage 能帮助大语言模型(LLM)更好地理解和记忆代码库,以下是其安装与使用的基本步骤。
git clone https://github.com/your-repository.git
cd source-sage
python3 -m sourcesage.server
"请分析这个 Python 文件,并注册其中的关键实体和关系。"
register_entity 工具来存储代码中的实体。"我会注册这个文件中的主类。"
"请告诉我我的代码库中有哪些类?"
"请显示 `User` 类的详细信息。"
"请告诉我我的代码库中使用了哪些设计模式?"
以下是 SourceSage 的一个简单使用流程示例:
# 分析代码
"请分析这个 Python 文件,并注册其中的关键实体和关系。"
# 注册实体
"我会注册这个文件中的主类。"
# 查询类列表
"请告诉我我的代码库中有哪些类?"
在实际应用中,我们可能需要处理更复杂的场景,例如查询特定类的详细信息:
"请显示 `User` 类的详细信息。"
register_entity:用于存储代码中的关键实体(如类、函数等)。register_relationship:用于记录实体之间的关系(如继承、依赖等)。query_entities:根据语言、名称模式或其他条件查询实体。get_entity_details:获取特定实体的详细信息。query_patterns:按编程语言或模式名称查询代码模式。query_style_conventions:按编程语言或约定名称查询编码风格。get_knowledge_statistics:获取知识图谱的统计数据。clear_knowledge:清空所有存储的知识。"请分析这个 Python 文件,并注册其中的关键实体和关系。"
"我会注册这个文件中的主类。"
"我会记录这些类之间的继承关系。"
"请告诉我我的代码库中有哪些类?"
"请显示 `User` 类的详细信息。"
欢迎社区贡献!如果你有任何问题或建议,请随时提交 Pull Request。
本项目采用 MIT License 许可证,具体详情请参阅 LICENSE 文件。