Personal MCP

Connect your Personal Hub to Claude, ChatGPT, or any AI service that supports the Model Context Protocol (MCP). Share selected personal data so your AI can give you truly personalized answers, while keeping everything encrypted with a key only you hold.

Description

Personal Hub is a personal data integration layer where users collect, organize, and control their digital life in one encrypted space. Personal MCP lets users share selected data from their hub with AI services through a secure, encrypted connection.

Each connection uses a separate encryption key generated in the user's browser. Your shared data is always encrypted with this key. Users control exactly which data fields each service can see, and can disconnect at any time to delete all shared data instantly.

Authentication

Personal MCP supports two connection methods:

Easiest: Connect through the directory

Available for Claude. Find Personal MCP in Claude's connector directory and click Connect. You will be redirected to Personal Hub to choose what to share. OAuth 2.0 handles the authentication automatically.

With this method, your share key is stored encrypted on our server with a key-encryption-key. The share key is only decrypted during active requests from your AI service.

Most secure: Manual connection URL

Available for all MCP services. Generate a connection URL in your Personal Hub. The URL contains your share key. Our servers never store this key. It exists only in the URL and in your browser.

This is the strongest encryption option. The trade-off is that you need to copy and paste the URL into your AI service settings manually.

Both methods encrypt your shared data with a key unique to each connection. Both allow field-level control over what is shared. Both can be revoked instantly.

Features

Profile data sharing

Share selected fields from your personal profile: name, location, languages, interests, preferences, and more. Exclude any field you want to keep private.

Purchase data sharing

Optionally share purchase history with controls for what details to include (merchant names, amounts, categories, or categories only).

Chat history search

Upload conversation exports from ChatGPT, Claude, or other services. Your AI can search these conversations for relevant context from past discussions.

AI-suggested updates

Your AI can offer to save new information to your hub during conversation. Suggestions are queued for your review. Nothing is saved until you approve.

Delta loading

After the first read, your AI only needs to check what changed. The get_recent_changes tool returns only updated data, saving tokens and time.

Per-service encryption

Each AI connection gets its own encryption key. Revoking one connection has no effect on others. Different services can see different data.

Field-level control

Choose not just which dimensions to share, but which specific fields within each dimension. Share your name and location with Claude, but not your birthday. Share interests with ChatGPT, but not purchases.

How your data flows

This diagram shows each stage your data passes through, from its original source to your AI service and back. The encryption status is shown at each stage.

Origin

Your data lives in email, bank, or platform services.

Readable by the original service

You export or import in your browser

Your browser

Data arrives as plaintext in your browser.

Readable by you only

Encrypted with your vault key (derived from your password)

Personal Vault

Stored encrypted in your vault.

Encrypted. We cannot read it. No one can without your password.

You select data to share. Browser decrypts, then re-encrypts with a new share key.

Personal MCP

Selected data, encrypted with a separate key per connection.

Encrypted. We cannot read it. The share key exists only in your connection URL.

AI service sends request with the share key. Data decrypted in server memory (~50ms), served, key discarded.

AI service

Your AI processes the data during conversation.

Readable by the AI service during the session. Subject to its own privacy policy.

AI suggests updates (encrypted with share key)

Suggestion queue

Suggestions waiting for your approval in Personal Hub.

Encrypted. We cannot read it.

You approve in your browser. Re-encrypted with vault key, saved to your vault.

Back to your vault

Approved data is encrypted with your vault key and stored securely.

Setup

  1. Sign in to Personal Hub at personalhub.io
  2. Go to the Share page
  3. Click “Connect” on the AI service you want to use
  4. Select which data to share (nothing is shared by default)
  5. Copy your connection URL
  6. Add the URL as a custom connector in your AI service

For Claude

Go to claude.ai/customize, click Connectors, click the + button, select “Add custom connector,” enter a name like “Personal MCP,” paste the URL, and click Add.

For ChatGPT

Go to Settings, click Connectors, then Advanced, enable Developer Mode, click “Add connector,” paste the URL, and click Save. Requires ChatGPT Plus or higher.

For other MCP services

Add the URL as a remote MCP server or custom connector in your service's settings.

Authentication

Personal MCP uses URL-based authentication. Each connection URL contains a unique encrypted token that identifies the user and carries the decryption key. No separate login or OAuth flow is required.

The token is generated in the user's browser and the server stores only a SHA-256 hash for revocation purposes. The full token (and therefore the decryption key) is never stored on our servers.

Users can revoke access at any time from the Share page in Personal Hub. Revoking deletes all shared data and invalidates the connection URL.

For the complete encryption specification, see our privacy policy. The encryption code is open source at github.com/mariusokland/personal-encryption.

Tools

Personal MCP provides 7 tools: 5 for reading your data and 2 for saving new information back to your hub.

Read tools

get_profile_summary

Returns a compact overview of all shared data. Call this first to understand what context is available. Includes your name, location, which dimensions are shared, and whether anything changed since the last read.

get_dimension

Returns the full data for a specific shared dimension. Available dimensions vary per user. Common dimensions: basics, interests, preferences, purchases.

get_recent_changes

Returns only data that changed since a given timestamp. Use for efficient context updates without re-reading everything.

search_context

Searches across all shared data for information matching a query. Use when you need specific information without loading all dimensions.

get_chat_context

Searches uploaded conversation history from other AI services for relevant excerpts.

Suggest tools

suggest_profile_update

Suggests an update to your profile. For example, if you mention a new interest or preference during conversation, the AI can offer to save it. The suggestion is queued for you to review in Personal Hub. Nothing is saved until you approve it.

suggest_note

Saves a conversation summary or important note to your hub. After a substantive conversation, the AI can offer to save key takeaways, decisions, or plans. You review and approve before anything is saved.

All read tools are read-only. Suggest tools queue data for your approval. No tool can modify your vault directly.

Resources

Personal MCP provides your profile summary as an MCP resource. Unlike tools (which the AI calls on demand), resources are loaded automatically when the connection starts. This means your AI already knows your name, location, and interests before you type your first message.

personal-mcp://profile/summary

Your shared profile data, loaded once and cached. Includes a flag indicating whether anything changed since the last read, so the AI can efficiently check for updates.

Prompts

Personal MCP includes suggested interactions that may appear in your AI's interface:

Get to know me

The AI reads your profile and tells you what it knows about you, naturally and conversationally.

Update my profile

Review your shared data with the AI and update anything that is outdated or missing.

Save conversation summary

At the end of a conversation, generate a summary and offer to save it to your hub.

What's new

Check what changed in your hub since the last conversation.

Suggestions

When your AI learns something about you during conversation, it can offer to save it to your hub. For example:

“You mentioned you recently switched to a vegetarian diet. Want me to save that to your Personal Profile?”

If you agree, the AI creates a suggestion. The suggestion is encrypted and queued in your hub. Nothing enters your vault until you review and approve it.

You can:

  • Approve the suggestion (saves to your vault, encrypted)
  • Edit before saving (modify the suggestion, then save)
  • Dismiss (deletes the suggestion, nothing is saved)

Suggestions expire after 30 days if not acted upon.

This creates a feedback loop: the more you use your AI, the richer your profile becomes, and the better every connected AI serves you.

Examples

Example 1

Get to know the user

User prompt:

What do you know about me from Personal Hub?

What happens:

  1. Claude calls get_profile_summary
  2. Receives the user's name, location, languages, shared dimensions, and a summary of available data
  3. Responds with a personalized greeting using the user's actual profile data

Example tool response:

{
  "user": "Marius",
  "location": "Oslo, Norway",
  "languages": ["Norwegian", "English"],
  "shared_dimensions": {
    "basics": { "filled_fields": 4, "total_fields": 7 },
    "interests": { "count": 12 },
    "preferences": { "filled_fields": 2, "total_fields": 4 }
  },
  "data_version": "2026-03-19T14:32:00Z"
}

Example 2

Use interests for recommendations

User prompt:

Based on my interests, what podcasts might I enjoy?

What happens:

  1. Claude calls get_dimension("interests")
  2. Receives the user's full interest list
  3. Generates podcast recommendations tailored to the user's actual interests, not generic suggestions

Example tool response:

["Technology", "Data Privacy", "Music Production",
 "Sailing", "Nordic Mythology", "Philosophy",
 "Entrepreneurship", "AI Ethics", "Cooking",
 "Board Games", "Hiking", "Architecture"]

Example 3

Reference past conversations

User prompt:

What did I discuss with ChatGPT about learning Norwegian?

What happens:

  1. Claude calls get_chat_context("learning Norwegian")
  2. Receives relevant excerpts from the user's uploaded ChatGPT conversation history
  3. Summarizes the past discussion and can build on it

Example tool response:

{
  "query": "learning Norwegian",
  "matches": [
    {
      "source": "chatgpt",
      "content": "user: What are the best apps for learning Norwegian?\nassistant: For Norwegian specifically, I'd recommend...",
      "metadata": {
        "conversationTitle": "Language Learning",
        "date": "2025-08-15"
      }
    }
  ]
}

Example 4

Efficient context updates

User prompt:

I updated my preferences yesterday. What's new?

What happens:

  1. Claude calls get_recent_changes with the timestamp from a previous conversation
  2. Receives only the changed data (e.g., updated preferences)
  3. Responds with awareness of the specific changes without re-reading all data

Example tool response:

{
  "changes_since": "2026-03-18T10:00:00Z",
  "updated_dimensions": [
    {
      "dimension": "preferences",
      "data": { "communicationStyle": "Direct and concise" },
      "updated_at": "2026-03-19T09:15:00Z"
    }
  ],
  "data_version": "2026-03-19T14:32:00Z"
}

Example 5

Search across all shared data

User prompt:

Do you know anything about my dietary preferences?

What happens:

  1. Claude calls search_context("dietary preferences")
  2. Searches across all shared dimensions for relevant matches
  3. Returns any matching data from preferences, health, or other dimensions that mention dietary information

Example tool response:

{
  "query": "dietary preferences",
  "results": [
    {
      "dimension": "preferences",
      "data": {
        "dietaryPreferences": "Pescatarian, avoids dairy"
      }
    }
  ]
}

Example 6

AI learns a preference

User prompt:

I prefer concise explanations with practical examples. I don't like long theoretical introductions.

What happens:

  1. The AI responds to the conversation normally
  2. The AI offers: "Want me to save your communication preferences to your Personal Profile?"
  3. If the user agrees, the AI calls suggest_profile_update
  4. The suggestion appears in Personal Hub for review
  5. The user approves, and the preference is saved to their encrypted vault
  6. Every connected AI service now knows this preference

Example 7

Save a conversation summary

User prompt:

Let's save the key points from our discussion today.

What happens:

  1. The AI calls suggest_note with a title and summary
  2. The note appears in Personal Hub for review
  3. The user can edit the summary before saving
  4. Once approved, the note is encrypted and stored
  5. Future conversations can reference this note via search_context

Privacy

Personal Hub is built on a principle of data sovereignty.

  • All vault data is encrypted client-side before storage
  • Shared data for AI connections is encrypted with a separate key per connection
  • The decryption key is never stored on our servers
  • Users choose exactly which fields to share
  • Users can revoke access and delete all shared data instantly
  • Suggestions from AI services are encrypted and require user approval before entering the vault
  • We do not collect conversation data from AI services
  • We do not use shared data for any purpose other than serving it to the authorized AI service

Full privacy policy: personalhub.io/privacy

Support

For questions about Personal MCP or data sharing: mcp@personalhub.io

For general product support: hello@personalhub.io

Documentation: personalhub.io/docs/mcp

Website: personalhub.io