一组模型上下文协议(MCP)服务器,用于在整个项目生命周期中增强AI模型的持久上下文。每个项目的上下文存储在一个由该领域服务器处理的特定领域的知识图谱中。所有领域的服务器都可以通过中央上下文管理器进行统一访问。
每个领域服务器也是一个独立的MCP服务器,可以在没有上下文管理器的情况下单独使用。
构建上下文、加载上下文和删除上下文开始会话工具来了解过去会话的工作内容结束会话工具来分析整个会话并更新知识图谱以供未来会话使用为了释放上下文窗口(性能),并最小化标记成本(效率)。
上下文管理器协调几个特定领域的MCP服务器:
关于每个领域服务器的详细文档,请参阅其各自目录中的README文件:
上下文管理器提供:
上下文管理器使用MCP客户端SDK与特定领域的MCP服务器通信。它:
上下文管理器使用运行时构造的绝对路径来定位领域服务器。如果需要修改领域服务器路径,请更新main/index.ts中的domains数组。
您可以多种方式使用MCP上下文管理器:
直接运行:
npx github:tejpalvirk/contextmanager
全局安装以使所有服务器可用作命令:
npm install -g github:tejpalvirk/contextmanager
然后运行:
mcp-server-contextmanager
或者直接运行特定的领域服务器:
contextmanager-developer
contextmanager-project
contextmanager-student
contextmanager-qualitativeresearch
contextmanager-quantitativeresearch
用于开发或定制:
git clone https://github.com/tejpalvirk/contextmanager.git
cd contextmanager
npm install
npm run build
然后运行:
node main/index.js
上下文管理器和领域服务器接受以下命令行参数:
# 在特定端口上运行(默认:3000)
npx github:tejpalvirk/contextmanager --port 3001
# 启用调试日志
npx github:tejpalvirk/contextmanager --debug
# 指定配置文件
npx github:tejpalvirk/contextmanager --config ./my-config.json
# 只运行特定的领域服务器
npx github:tejpalvirk/contextmanager --domains developer,project
每个领域服务器支持以下环境变量来自定义数据存储位置:
<domain_directory>/memory.json<domain_directory>/sessions.json示例用法:
# 将数据存储在当前目录
MEMORY_FILE_PATH="./my-dev-memory.json" SESSIONS_FILE_PATH="./my-dev-sessions.json" npx github:tejpalvirk/contextmanager
# 将数据存储在特定位置(绝对路径)
MEMORY_FILE_PATH="/path/to/data/developer-memory.json" npx github:tejpalv
virk/contextmanager
# 将数据存储在用户的主目录
MEMORY_FILE_PATH="$HOME/contextmanager/memory.json" npx github:tejpalvirk/contextmanager
使用设置活动领域工具选择您想要工作的领域:
设置活动领域(领域="developer")
为活动领域启动一个新的会话:
开始会话(领域="developer")
完成时结束会话:
结束会话(会话ID="session_id_here", 阶段="装配", 阶段数=6, 总阶段数=6, 是否需要下一阶段=false)
为活动领域构建上下文:
构建上下文(类型="实体", 数据={...})
加载特定实体的上下文:
加载上下文(实体名称="MyProject", 实体类型="项目")
删除上下文:
删除上下文(类型="实体", 数据={...})
为实体分配状态:
构建上下文(类型="关系", 数据=[
{ from: "登录功能", to: "活跃", 关系类型: "具有状态" }
])
设置实体优先级:
构建上下文(类型="关系", 数据=[
{ from: "修复错误", to: "高", 关系类型: "具有优先级" }
])
定义顺序关系:
构建上下文(类型="关系", 数据=[
{ from: "数据模型", to: "用户界面", 关系类型: "先于" }
])
// 设置活动领域为开发者
设置活动领域(领域="developer")
// 启动新的会话
开始会话(领域="developer")
// 创建新的项目实体
构建上下文(类型="实体", 数据={
"实体类型": "项目",
"名称": "MyProject",
"描述": "一个示例项目",
"语言": "TypeScript",
"框架": "React"
})
// 加载项目的上下文
加载上下文(实体名称="MyProject", 实体类型="项目")
// 为项目创建组件,并将其状态设置为活跃
构建上下文(类型="实体", 数据={
"实体类型": "组件",
"名称": "AuthService",
"项目": "MyProject",
"描述": "身份验证服务组件",
"依赖项": ["UserService"]
})
构建上下文(类型="关系", 数据=[
{ from: "AuthService", to: "活跃", 关系类型: "具有状态" },
{ from: "AuthService", to: "高", 关系类型: "具有优先级" }
])
在不同领域之间创建实体关系:
跨领域关联(来源领域="developer", 来源实体="ProjectX", 目标领域="project", 目标实体="ProjectX", 关系类型="管理")
// 创建开发者项目和项目管理任务之间的关系
跨领域关联(
来源领域="developer",
来源实体="MyProject",
目标领域="project",
目标实体="ProjectX",
关系类型="管理"
)
在Claude桌面版中,在设置中配置上下文管理器:
{
"mcpServers": {
"contextmanager": {
"命令": "npx",
"参数": [
"-y",
"github:tejpalvirk/contextmanager"
],
"选项": {
"端口": 3000,
"领域": ["developer", "project", "student"]
}
}
}
}
错误:监听EADDRINUSE:地址已在使用中:::3000
解决方案:使用--port选项指定不同的端口。错误:连接ECONNREFUSED 127.0.0.1:3000
解决方案:确保服务器正在运行并且可以访问指定地址。错误:未找到领域服务器'developer'
解决方案:检查领域名称是否正确且服务器已注册在上下文管理器中。错误:无法找到模块'...'
解决方案:确保main/index.ts中的domains数组中的所有路径都正确指定。错误:在领域'developer'中未找到方法'buildcontext'
解决方案:验证方法名称并确保它受领域服务器支持。错误:无效的状态值'in_progress'。有效值为:非活跃、活跃、完成
解决方案:确保您使用的是特定领域正确的状态值。此包遵循语义版本控制:
当前版本:1.0.0
欢迎贡献!请遵循以下步骤:
git checkout -b feature/amazing-feature)git commit -m '添加一些惊人的功能')git push origin feature/amazing-feature)npm install
npm run build
npm test
MIT
该项目基于Anthropic为Claude创建的模型上下文协议。