mikhashev/pct-mcp-server
If you are the rightful owner of pct-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Personal Context Technology MCP Server allows AI assistants to access and update personalized context data, enabling persistent memory between sessions.
updateContext
Tool to update specific fields in the personal context.
Personal Context Technology MCP Server
This repository implements a server for Personal Context Technology (PCT) using the Model Context Protocol (MCP). It enables AI assistants like Claude to access and update your personalized context data, creating persistent memory between sessions.
What is Personal Context Technology?
Personal Context Technology allows you to structure and manage personal data that AI assistants can use to provide more personalized and relevant responses. With PCT:
- Your context is preserved between AI sessions
- You control where your data is stored (locally, cloud, etc.)
- You define explicit instructions for how AI systems should use your data
- You can update context as your preferences and situation change
Features
- Persistent Context Storage: Store your preferences, goals, learning style, and other personal information
- Privacy Controls: Instruction block defines which information is private/public
- Section-based Access: Access full context or individual sections
- Context Updates: Update specific fields via the updateContext tool
- Version Tracking: Maintain history of context changes
Demo
Watch the Personal Context Technology MCP Server in action:
The demo shows how to:
- Access personal context data using the MCP tool
- Update context information using the updateContext tool
- See how Claude's responses improve with personalized context
Installation
Prerequisites
- Node.js (v16+)
- npm (included with Node.js)
Setup Instructions
- Clone the repository
git clone https://github.com/mikhashev/pct-mcp-server.git
cd pct-mcp-server
- Install dependencies
npm install
- Build the server
npm run build
- Start the server
npm start
Connecting to Claude Desktop
To use this server with Claude Desktop:
Windows
- Open Claude Desktop
- Navigate to Settings > Developer > Edit Config
- This will open
%AppData%\Claude Desktop\
directory - Create or edit
claude_desktop_config.json
with the following content:
{
"mcpServers": {
"personal-context-server": {
"command": "node",
"args": ["PATH_TO_YOUR_PROJECT/pct-mcp-server/dist/index.js"],
"env": {}
}
}
}
Replace PATH_TO_YOUR_PROJECT
with the actual path to your project.
macOS
- Open Claude Desktop
- Navigate to Settings > Developer > Edit Config
- This will open
~/Library/Application Support/Claude Desktop/
directory - Create or edit
claude_desktop_config.json
with the following content:
{
"mcpServers": {
"personal-context-server": {
"command": "node",
"args": ["/path/to/your/project/pct-mcp-server/dist/index.js"],
"env": {}
}
}
}
Linux
- Open Claude Desktop
- Navigate to Settings > Developer > Edit Config
- This will open
~/.config/Claude Desktop/
directory - Create or edit
claude_desktop_config.json
with the following content:
{
"mcpServers": {
"personal-context-server": {
"command": "node",
"args": ["/path/to/your/project/pct-mcp-server/dist/index.js"],
"env": {}
}
}
}
Using the Personal Context Server
With Claude Desktop
- Start your PCT MCP server using
npm start
- Restart Claude Desktop (if needed)
- In Claude, click the MCP tool icon (wrench/tool icon) in the input field
- You'll see "personal-context-server" with available tools and resources:
- Resources: Access your context data (full context or by section)
- Tools: Update specific fields in your context
Accessing Context Data
Claude can access your personal context data in two ways:
- Full Context: Select "All Sections" to give Claude access to your entire personal context
- Section-based: Select specific sections (basic_info, preferences, etc.) to share only certain parts of your context
Example prompt: "Using my context data, recommend some learning resources that would match my learning style."
Updating Context Data
You can update your personal context using the updateContext tool:
Example prompt: "Update my learning_style in preferences to 'visual and hands-on' because I've found I learn better with practical examples."
Customizing Your Context
The default personal context includes:
- basic_info: Name, location, etc.
- preferences: Communication style, learning preferences, etc.
- instruction: Rules for how AI should use and update your context
- metadata: Version tracking, update history
You can modify the default structure by editing the DEFAULT_CONTEXT
object in src/storage/contextStorage.ts
.
Or just replace update file data [PATH_TO_YOUR_PROJECT/pct-mcp-server/data/personal_context.json] from template data in repo (https://github.com/mikhashev/personal-context-manager/blob/main/use-cases/self-education/personal_context_self_education_template.json) or another one.
Project Structure
pct-mcp-server/
āāā .git/ # Git repository data
āāā .gitignore # Git ignore rules
āāā LICENSE # License file
āāā README.md # Project documentation
āāā package-lock.json # Lock file for npm dependencies
āāā package.json # Project configuration and dependencies
āāā tsconfig.json # TypeScript configuration
āāā src/ # Source code
āāā index.ts # Main application entry point
āāā resources/ # MCP resources implementation
ā āāā personalContext.ts # Personal context resource
āāā storage/ # Storage implementation
ā āāā contextStorage.ts # Context storage functionality
āāā tools/ # MCP tools implementation
ā āāā contextSuggestion.ts # Context suggestion tool
ā āāā updateContext.ts # Update context tool
āāā utils/ # Utility functions
āāā instructionHandler.ts # Instruction handling logic
# Generated directories (not in repository)
# ----------------------------------------
# dist/ # Compiled JavaScript files (gitignored)
# node_modules/ # Dependencies (gitignored)
# data/ # User data (gitignored or contains only samples)
# āāā personal_context.json # Personal context data (sample only) (don't change filename personal_context.json, update data if need)
Advanced Configuration
Using HTTP Transport
The default implementation uses stdio transport for development. For production use, you can switch to HTTP transport:
- Edit
src/index.ts
- Uncomment the HTTP transport section
- Configure your desired port and CORS settings
- Rebuild and restart the server
! I reccomend use stdio transport for development locally on your machine always.
Multi-User Support
To support multiple users, modify the contextStorage.js
file to store contexts in user-specific files based on user IDs.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is released under the MIT License - See that covers the project.
Acknowledgments
This project is based on the Personal Context Technology concept and implements the Model Context Protocol (MCP) developed by Anthropic to enable AI systems to access external context.