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

Context Persistence MCP Server

MCP Server

一个用于VS Code的模型上下文协议(MCP)服务器,实现多窗口间的上下文共享,解决跨仓库工作时对话上下文丢失的问题。

工具数

4

提示词数

0

GitHub Stars

1

资源数

0
VSCode扩展代码分析JavaScriptVS Code开发工具VS Code

安装说明

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

作者 / 组织

jayasimhag1reddy

提供方

jayasimhag1reddy

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

上下文持久化MCP服务器

一种模型上下文协议(MCP)服务器,支持VS代码中的跨窗口上下文共享。这解决了在跨具有不同存储库的多个VS代码窗口工作时丢失对话上下文的问题。

问题陈述

在单独的VS Code窗口中使用多个存储库时:

  • 窗口A中与副驾驶的对话在窗口B中不可用
  • 分析跨存储库的代码依赖关系需要重复上下文
  • 切换窗口时没有共享以前讨论的内存

例子: 你分析 SparkJobX.java 在Repo B中使用,然后切换到Repo A以修改实现,但Copilot不知道您在Window B中的分析。

解决方案

此MCP服务器提供:

  • 永久存储:所有对话都保存到SQLite
  • 跨窗口访问:所有VS代码窗口都有上下文
  • 智能匹配:按代码实体(类、文件、方法)自动链接相关讨论
  • 混合方法:用于查询上下文的自动资源和显式工具

特性

工具(显式查询)

  • save_conversation -存储对话消息
  • get_related_context -查找提及相同类/文件的讨论
  • search_conversations -在所有工作区进行全文搜索
  • get_workspace_summary -所有跟踪的存储库概述

资源(自动上下文)

  • context://recent -所有工作区中的最后50条消息
  • context://workspace/{path} -特定存储库的历史记录

安装

  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build
  1. 在VS代码中配置:

添加到您的副驾驶设置(~/Library/Application Support/Code/User/globalStorage/github.copilot-chat/mcpServers.json 在macOS上):

{
  "mcpServers": {
    "context-persistence": {
      "command": "node",
      "args": [
        "/Users/j0k0h1v/Documents/AI/McpServerPoc/dist/index.js"
      ]
    }
  }
}
  1. 重新启动VS代码

用法

自动上下文共享

当您打开任何VS Code窗口时,Copilot可以访问:

  • 来自所有窗口的最近对话 context://recent 资源
  • 特定于工作区的历史记录 context://workspace/{path} 资源

手动上下文查询

请Copilot使用以下工具:

"Check if we discussed SparkJobX in other repositories"
→ Copilot will call get_related_context with entities: ["SparkJobX"]

"Search our previous conversations about performance optimization"
→ Copilot will call search_conversations with query: "performance optimization"

"What repositories have we analyzed?"
→ Copilot will call get_workspace_summary

工作流示例

窗口A(ETL核心仓库):

You: "Analyze SparkJobX.java performance"
Copilot: [analyzes code] "The job processes 1M records..."
[Context automatically saved]

窗口B(消费者回购):

You: "Why is SparkJobX slow when imported here?"
Copilot: [checks context://recent resource]
         "Based on our previous analysis in ETL-core, SparkJobX processes 1M records..."

建筑

┌─────────────────────────────────┐
│  VS Code Window A (Repo A)      │
│  ├─ Copilot Chat                │
│  └─ MCP Client                  │
└─────────────┬───────────────────┘
              │
              ├─── Tools ──────┐
              │                 │
              ├─── Resources ──┤
              │                 │
        ┌─────▼─────────────────▼───┐
        │  MCP Server                │
        │  ├─ Save conversations     │
        │  ├─ Extract entities       │
        │  └─ Match context          │
        └─────┬──────────────────────┘
              │
        ┌─────▼──────────────────────┐
        │  SQLite Database           │
        │  ~/.context-persistence-mcp│
        │  ├─ messages               │
        │  ├─ code_entities          │
        │  └─ workspace_metadata     │
        └─────┬──────────────────────┘
              │
┌─────────────┴───────────────────┐
│  VS Code Window B (Repo B)      │
│  ├─ Copilot Chat                │
│  └─ MCP Client                  │
└─────────────────────────────────┘

数据库模式

消息表:

  • id:主键
  • workspace_path:存储库路径
  • role:“用户”或“助理”
  • content:消息文本
  • timestamp:保存时

code_entities表:

  • message_id:消息链接
  • entity_type:“类”、“文件”或“方法”
  • entity_name:实体名称

workspace_metadata表:

  • workspace_path:主键
  • message_count:邮件总数
  • last_active:上次更新时间戳

运作原理

  1. 实体抽取:自动检测对话中的Java类、文件和方法
  2. 智能存储:保存带有提取实体的消息,以便以后进行匹配
  3. 上下文匹配:查询时,查找提及相同实体的消息
  4. 跨窗口同步:所有VS Code窗口访问相同的SQLite数据库

发展

# Watch mode for development
npm run dev

# Build for production
npm run build

# Run directly
npm start

数据库位置

SQLite数据库存储在:

~/.context-persistence-mcp/context.db

您可以使用任何SQLite浏览器或CLI进行检查:

sqlite3 ~/.context-persistence-mcp/context.db

限制和未来的增强

当前(MVP):

  • 实体的简单关键字匹配
  • 单用户本地存储
  • Copilot手动调用工具

计划:

  • 基于嵌入的语义相似度
  • 从pom.xml/build.gradle自动检测依赖关系
  • 存储库关系映射
  • 支持多用户身份验证
  • 基于相关性的自动上下文注入
  • 基于时间的上下文修剪

故障排除

服务器未启动?

  • 检查路径 mcpServers.json 是正确的
  • 验证 dist/index.js 建筑后存在
  • 检查VS代码输出面板上的MCP日志

没有出现上下文?

  • 确保对话已保存(请Copilot先明确保存)
  • 检查数据库: sqlite3 ~/.context-persistence-mcp/context.db "SELECT COUNT(*) FROM messages;"
  • 配置更改后重新启动VS代码

未找到相关上下文?

  • 实体提取是基于模式的-使用清晰的类/文件名
  • 尝试显式搜索:“在我们的对话中搜索\[关键字\]”

贡献

这是一个POC。欢迎反馈和改进!

许可证

麻省理工学院

目录标签

目录标签

VSCode扩展代码分析JavaScriptVS Code开发工具本地部署上下文共享SQLite存储

支持客户端

VS Code

接入字段

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

未说明

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

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明nonelocal-only

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP