Back to MCP directory
publicPublicdnsLocal runtime

pct-mcp-server

该项目实现了一个基于MCP协议的个人上下文管理服务器,用于存储和更新用户的个性化数据,使AI助手能够跨会话保持记忆并提供个性化服务。

article

README

🚀 个人上下文技术 MCP 服务器

本项目实现了一个基于 Personal Context Technology (PCT) 的模型上下文协议(MCP)服务器。借助该服务器,AI 助手能够访问和更新用户的个性化数据,进而在会话之间维持持久记忆,为用户提供更贴合需求的服务。

🚀 快速开始

安装与配置

  1. 克隆项目仓库:

    git clone https://github.com/mikhashev/personal-context-manager.git
    cd pct-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 配置上下文存储路径:

    • 编辑 src/storage/contextStorage.ts 文件。
    • 修改 DEFAULT_CONTEXT 对象以适应您的需求。
  4. 启动服务器:

    npm start
    

基本用法

  1. 初始化上下文文件:

    cp data/personal_context.json.example data/personal_context.json
    
  2. 修改 personal_context.json 文件,添加或更新您的个性化数据。

  3. 运行服务器并访问 API 端点以测试功能。

示例

  • 获取上下文

    curl http://localhost:3000/api/context
    
  • 更新上下文

    curl -X PUT http://localhost:3000/api/context/basic_info/name \
      -H "Content-Type: application/json" \
      -d '{"name":"John Doe"}'
    

✨ 主要特性

  • 持久存储:支持用户数据的持久化存储。
  • 隐私控制:通过规则和限制保护用户隐私。
  • 基于节目的访问:允许按节目(section)对上下文进行细粒度控制。
  • 更新历史:记录上下文的修改历史和版本信息。

📦 安装指南

  1. 克隆项目仓库:

    git clone https://github.com/mikhashev/personal-context-manager.git
    cd pct-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 配置上下文存储路径:

    • 编辑 src/storage/contextStorage.ts 文件。
    • 修改 DEFAULT_CONTEXT 对象以适应您的需求。
  4. 启动服务器:

    npm start
    

💻 使用示例

基础用法

# 初始化上下文文件
cp data/personal_context.json.example data/personal_context.json

高级用法

# 更新上下文
curl -X PUT http://localhost:3000/api/context/basic_info/name \
  -H "Content-Type: application/json" \
  -d '{"name":"John Doe"}'

📚 详细文档

个人上下文技术

个人上下文技术(PCT)是一种用于管理用户个性化数据的技术,通过模型上下文协议(MCP)实现与 AI 系统的交互。该技术旨在增强 AI 助手的能力,使其能够根据用户的上下文信息提供更智能、更个性化的服务。

自定义上下文

默认的个人上下文包括以下部分:

  • basic_info:姓名、位置等基本信息。
  • preferences:通信风格、学习偏好等。
  • instruction:AI 使用和更新上下文的规则。
  • metadata:版本跟踪和更新历史。

您可以通过编辑 src/storage/contextStorage.ts 文件或替换数据目录中的 personal_context.json 文件来自定义上下文结构。

项目结构

pct-mcp-server/
├── .git/                      # Git 仓库数据
├── .gitignore                 # Git 忽略规则
├── LICENSE                    # 许可证文件
├── README.md                  # 项目文档
├── package-lock.json          # npm 锁定文件
├── package.json               # 项目配置和依赖项
├── tsconfig.json              # TypeScript 配置
└── src/                       # 源代码
    ├── index.ts               # 应用程序入口点
    ├── resources/             # MCP 资源实现
    │   └── personalContext.ts # 个人上下文资源
    ├── storage/               # 存储实现
    │   └── contextStorage.ts  # 上下文存储功能
    ├── tools/                 # MCP 工具实现
    │   ├── contextSuggestion.ts  # 上下文建议工具
    │   └── updateContext.ts   # 更新上下文工具
    └── utils/                 # 工具函数
        └── instructionHandler.ts  # 指令处理逻辑

# 自动生成目录(不在仓库中)
# ----------------------------------------
# dist/                        # 编译后的 JavaScript 文件(被忽略)
# node_modules/                # 依赖项(被忽略)
# data/                        # 用户数据(被忽略或仅包含示例文件)
#   └── personal_context.json  # 个人上下文数据(示例文件,不要更改文件名 personal_context.json,如果需要更新数据请修改内容)

高级配置

使用 HTTP 传输

默认实现使用 stdio 传输进行开发。如需在生产环境中使用 HTTP 传输:

  1. 编辑 src/index.ts 文件。
  2. 解注释 HTTP 传输部分。
  3. 配置所需的端口和 CORS 设置。
  4. 重新启动服务器。

扩展功能

  • 支持多用户上下文管理。
  • 实现上下文同步和备份功能。

贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. 叉击仓库并创建分支:

    git checkout -b feature/your-feature-name
    
  2. 提交您的更改:

    git add .
    git commit -m "添加功能:your-feature-name"
    
  3. 推送到仓库并提交拉取请求。

📄 许可证

本项目遵循 MIT 许可证。请查看 LICENSE 文件以获取详细信息。

感谢您的支持!如需帮助或反馈,请随时与我们联系。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client