loading…
Search for a command to run...
loading…
Digital identity layer for AI — your bio, career, skills, interests, and projects always available to every AI tool. Auto-generates profile from 342+ public API
Digital identity layer for AI — your bio, career, skills, interests, and projects always available to every AI tool. Auto-generates profile from 342+ public APIs (GitHub, Medium, Strava, Goodreads, etc.), 13 real-time plugins (Spotify, Last.fm, Steam), YAML-based profiles with privacy-first local storage. Works with Claude Desktop, Cursor, Windsurf, and any MCP client.
Your AI assistants don't know who you are. Every time you start a conversation with Claude, Copilot, Cursor, or Windsurf, it's a blank slate — no context about your skills, your projects, your career, or what you care about.
mcp-me fixes that. It creates a structured personal profile that any AI assistant can read via the Model Context Protocol (MCP). Think of it as a digital identity layer for AI — your bio, career, skills, interests, projects, and more, always available to every AI tool you use.
You: "Write me a cover letter for this job"
AI: (reads your me://career, me://skills, me://projects)
"Based on your 5 years at Acme Corp, your TypeScript expertise,
and your open-source work on mcp-me..."
Prerequisite: Node.js 20 or later. Verify with
node -v.
Recommended — install globally:
npm install -g mcp-me
This makes the mcp-me command available everywhere on your system. No need to clone any repository — npm downloads the package for you.
mcp-me --help
mcp-me init ~/my-profile
mcp-me generate ~/my-profile
mcp-me serve ~/my-profile
Alternative — run without installing (via npx):
npx mcp-me --help
npx downloads the package temporarily and runs it. Useful for trying mcp-me once, but slower on repeated use since it re-downloads each time.
# 1. Initialize your profile (creates YAML templates + .mcp-me.yaml config)
mcp-me init ~/my-profile
# 2. Edit the config file — uncomment your sources
code ~/my-profile/.mcp-me.yaml
Your .mcp-me.yaml config file:
generators:
github: your-username
devto: your-username
bluesky: handle.bsky.social
zodiac: aquarius
plugins:
github:
enabled: true
username: your-username
# 3. Generate! Reads sources from .mcp-me.yaml automatically
mcp-me generate ~/my-profile
# 4. Start the MCP server
mcp-me serve ~/my-profile
CLI flags also work:
mcp-me generate ~/my-profile --github octocat --devto myuser
All commands work with npx (zero install) or with mcp-me directly if installed globally. The generate command pulls your data from public APIs and auto-populates profile YAML files — no API keys needed for most sources.
my-profile/
.mcp-me.yaml ← Configuration (generators + plugins)
identity.yaml ← Your data (name, bio, contact)
skills.yaml ← Your data (languages, tools)
projects.yaml ← Your data (portfolio)
career.yaml ← Your data (experience)
interests.yaml ← Your data (hobbies, topics)
personality.yaml ← Your data (traits, values)
goals.yaml ← Your data (short/long-term)
faq.yaml ← Your data (Q&A pairs)
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"me": {
"command": "npx",
"args": ["mcp-me", "serve", "/absolute/path/to/my-profile"]
}
}
}
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"me": {
"command": "npx",
"args": ["mcp-me", "serve", "/absolute/path/to/my-profile"]
}
}
}
Add to .vscode/mcp.json in your project root (or in your User Settings for global access):
{
"servers": {
"me": {
"command": "npx",
"args": ["mcp-me", "serve", "/absolute/path/to/my-profile"]
}
}
}
Tip: To enable it globally (all workspaces), open VS Code Settings (
Ctrl+Shift+P→ "Preferences: Open User Settings (JSON)") and add themcpkey there instead.
Add to your Claude Desktop config:
{
"mcpServers": {
"me": {
"command": "npx",
"args": ["mcp-me", "serve", "/absolute/path/to/my-profile"]
}
}
}
AI agents read special Markdown files in your project to understand how they should behave. Pair them with mcp-me so that every AI session automatically consults your profile — no more repeating your stack, career, or preferences in every conversation.
| File | Works with |
|---|---|
AGENTS.md (project root) |
Windsurf (Cascade), OpenAI Codex, Cline, and others |
.github/copilot-instructions.md |
GitHub Copilot (VS Code + GitHub.com) |
Quick setup:
# AGENTS.md — for Windsurf, Cline, Codex, etc.
cp "$(npm root -g)/mcp-me/templates/AGENTS.md" ./AGENTS.md
# GitHub Copilot
mkdir -p .github
cp "$(npm root -g)/mcp-me/templates/.github/copilot-instructions.md" .github/copilot-instructions.md
Both templates are included with mcp-me and tell the AI to call ask_about_me whenever context about you would improve the response.
See the Agent Instructions Guide for examples, global setup, and tips on combining with project-specific rules.
Your profile is a collection of YAML files:
| File | Description |
|---|---|
identity.yaml |
Name, bio, location, languages, contact info |
career.yaml |
Work experience, education, certifications |
skills.yaml |
Technical and soft skills with proficiency levels |
interests.yaml |
Hobbies, music, books, movies, food preferences |
personality.yaml |
Values, traits, MBTI, strengths |
goals.yaml |
Short, medium, and long-term goals |
projects.yaml |
Personal and open-source projects |
faq.yaml |
Custom Q&A pairs about yourself |
See Schema Reference for full documentation.
Static profile data exposed as MCP resources:
me://identity — Personal identity and contactme://career — Professional historyme://skills — Skills and proficienciesme://interests — Hobbies and preferencesme://personality — Personality traits and valuesme://goals — Personal and professional goalsme://projects — Portfolio and projectsme://faq — Frequently asked questionsask_about_me — Free-form question about the usersearch_profile — Keyword search across all profile dataintroduce_me — Generate a 2-paragraph introductionsummarize_career — Summarize career trajectorytechnical_profile — Describe technical skills and stackcollaboration_fit — Evaluate fit for a projectGenerators run during mcp-me generate to auto-populate your profile from public APIs or user-provided exports. No API keys needed for most sources.
Current counts:
src/generators/)The table below is a curated list of commonly used generators. The complete source of truth is
src/generators/index.ts.
| Category | Flag | Source | Data |
|---|---|---|---|
| Code | --github <user> |
GitHub API | Repos, languages, stars, profile |
| Code | --gitlab <user> |
GitLab API | Projects, topics, profile |
| Code | --bitbucket <user> |
Bitbucket API | Repos, languages |
| Code | --huggingface <user> |
Hugging Face API | Models, datasets, spaces |
| Code | --kaggle <user> |
Kaggle API | Competitions, datasets, medals |
| Code | --codeberg <user> |
Gitea API | Repos, languages |
| Writing | --devto <user> |
DEV.to API | Articles, tags, reactions |
| Writing | --medium <user> |
Medium RSS | Articles, categories, article text |
| Writing | --blogger-backup <xml> |
Blogger XML export | Imported posts from a local backup, filtered by author if needed |
| Writing | --hashnode <user> |
Hashnode GraphQL | Blog posts, tags |
| Writing | --substack <user> |
Substack RSS | Newsletter posts, article text |
| Writing | --wordpress <site> |
WordPress API | Blog posts, categories, tags |
| Writing | --openlibrary <user> |
Open Library API | Books authored |
| Writing | --orcid <id> |
ORCID API | Academic publications |
| Writing | --semanticscholar <id> |
S2 API | Research papers, citations |
| Writing | --youtube <channel> |
YouTube RSS | Videos, channel info |
| Community | --stackoverflow <id> |
Stack Exchange API | Top tags, reputation, badges |
| Community | --hackernews <user> |
HN Firebase API | Karma, submissions |
| Community | --mastodon <user@host> |
Mastodon API | Posts, hashtags, bio |
| Community | --bluesky <handle> |
AT Protocol API | Posts, followers |
| Community | --reddit <user> |
Reddit JSON API | Karma, bio |
| Community | --producthunt <user> |
ProductHunt GraphQL | Launched products, upvotes |
| Community | --threads <user> |
Threads API | Bio, follower stats |
| Packages | --npm <user> |
npm Registry | Published packages |
| Packages | --pypi <pkgs> |
PyPI JSON API | Package metadata |
| Packages | --crates <user> |
Crates.io API | Rust crates |
| Packages | --dockerhub <user> |
Docker Hub API | Container images |
| Activity | --wakatime <user> |
WakaTime API | Coding time, languages, editors |
--blogger-backup imports written content from a Blogger XML export file on disk. It is designed for archived or multi-author blogs where you want to recover your posts even if the site is old, partially offline, or not easily queryable through a public API.
By default it imports all post entries from the file. If the backup contains multiple authors, append ::author1,author2,... after the file path to keep only posts whose author name or email matches one of those values.
Examples:
# Import all posts from a Blogger export
mcp-me generate ~/my-profile --blogger-backup ~/Downloads/blog-2026-03-24.xml
# Import only posts written by specific authors/emails
mcp-me generate ~/my-profile --blogger-backup "~/Downloads/blog.xml::[email protected],[email protected],Fernando Paladini"
How to get the export file:
Settings.Manage blog, click Back up content.--blogger-backup.The generator imports matching posts into projects.yaml with category: article, preserves post labels as tags, and adds summary FAQ entries about the archive.
| Activity | --letterboxd <user> | Letterboxd RSS | Films watched, ratings |
| Activity | --goodreads <user> | Goodreads RSS + author page | Read books, shelves, reviews, published books |
| Activity | --chess <user> | Chess.com API | Rating, stats |
| Activity | --lichess <user> | Lichess API | Rating, games |
| Activity | --codewars <user> | Codewars API | Rank, honor, languages |
| Activity | --leetcode <user> | LeetCode GraphQL | Problems solved, contests |
| Activity | --lastfm <user> | Last.fm API | Listening history, top artists |
| Activity | --steam <id> | Steam API | Games, playtime |
| Activity | --twitch <user> | Twitch API | Stream info |
| Activity | --dribbble <user> | Dribbble | Design shots, portfolio |
| Activity | --unsplash <user> | Unsplash API | Photos, downloads, collections |
| Activity | --exercism <user> | Exercism API | Language tracks, exercises |
| Activity | --hackerrank <user> | HackerRank API | Badges, challenges solved |
| Activity | --anilist <user> | AniList GraphQL | Anime/manga stats, genres |
| Identity | --gravatar <email> | Gravatar API | Bio, linked accounts, photo |
| Identity | --keybase <user> | Keybase API | Verified identity proofs |
Want to add a new data source? See the Generator Creation Guide.
Plugins run during mcp-me serve and provide real-time data to AI assistants on every query.
| Plugin | Description | Auth |
|---|---|---|
| GitHub | Live repos, activity, languages | Optional token |
| Spotify | Now playing, top artists, playlists | OAuth required |
| Professional history from export | Local JSON file | |
| WakaTime | Live coding stats, languages | Optional API key |
| DEV.to | Live articles, reactions | Optional API key |
| Bluesky | Live posts, profile, followers | None |
| Hacker News | Live stories, karma | None |
| Live karma, posts | None | |
| GitLab | Live projects, activity, MRs | Optional token |
| Mastodon | Live toots, profile, engagement | None |
| YouTube | Live videos, channel stats | Optional API key |
| Last.fm | Now playing, top artists, scrobbles | Optional API key |
| Steam | Currently playing, game library | Optional API key |
Enable plugins in .mcp-me.yaml:
plugins:
github:
enabled: true
username: "your-username"
spotify:
enabled: true
client_id_env: "SPOTIFY_CLIENT_ID"
client_secret_env: "SPOTIFY_CLIENT_SECRET"
refresh_token_env: "SPOTIFY_REFRESH_TOKEN"
Community plugins are installed from npm (mcp-me-plugin-*) and auto-discovered. See the Plugin Creation Guide.
| Generators | Plugins | |
|---|---|---|
| Run when | mcp-me generate (once) |
mcp-me serve (continuously) |
| Output | Static YAML files | Live MCP resources/tools |
| Auth | Almost never needed | Sometimes (OAuth) |
| Example | "Repos I had in March" | "Repos I have right now" |
| Extend | Add src/generators/*.ts |
Add src/plugins/*/ |
# Auto-generate profile from multiple data sources
mcp-me generate <dir> --github <user> [--devto <user>] [--stackoverflow <id>] ...
# Initialize with blank YAML templates
mcp-me init <directory>
# Validate profile YAML files
mcp-me validate <directory>
# Start the MCP server
mcp-me serve <directory>
# Scaffold a new generator or plugin (for contributors)
mcp-me create generator <name> [--category <category>]
mcp-me create plugin <name>
# Clone the repo
git clone https://github.com/paladini/mcp-me.git
cd mcp-me
# Install dependencies
npm install
# Run tests
npm test
# Build
npm run build
# Run in dev mode
npm run dev
What is MCP (Model Context Protocol)? MCP is an open standard by Anthropic that connects AI assistants to external data sources. mcp-me uses MCP to let AI assistants read your personal profile data.
Do I need API keys?
Most generators use public APIs with no auth needed. Some (Strava, Spotify) require tokens — see the .mcp-me.yaml comments for details.
Can I use this with Claude Desktop / VS Code / Cursor / Windsurf? Yes! Any MCP-compatible AI assistant works. See the Configure Your AI Assistant section.
How do I make AI agents use my profile automatically?
Drop an AGENTS.md (for Windsurf, Cline, Codex) or .github/copilot-instructions.md (for GitHub Copilot) into your project. Templates are included — see the Agent Instructions Guide.
How do I add a new data source?
Run mcp-me create generator myservice to scaffold a new generator, or see the Generator Creation Guide.
Is my data stored anywhere? No. All data stays local in your YAML files. The MCP server reads from disk — nothing is sent to any cloud.
How many generators are there? Currently 329 registered generators, implemented across 44 generator source files plus 15 batch files.
We welcome contributions! Whether it's a new plugin, a bug fix, or documentation improvements — see CONTRIBUTING.md for guidelines.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"paladini-mcp-me": {
"command": "npx",
"args": []
}
}
}