Skip to main content
Glama
README.md
# Personal MCP

This project is a small local MCP server for learning how MCP tools, resources, and prompts work with personal data.

## What this is

A beginner-friendly example of an MCP that exposes personal information from JSON files. It is intentionally simple and does not include authentication, databases, cloud deployment, or sync systems.

## Features

- MCP tools for reading profile, projects, education, experience, and skills
- Simple search across personal data
- Context retrieval by topic
- MCP resources for direct access to JSON files
- One reusable prompt for generating a professional bio
- Local execution only

## Project structure

```text
personal-mcp/
├── server.py
├── data/
│   ├── profile.json
│   ├── projects.json
│   ├── education.json
│   ├── experience.json
│   └── skills.json
├── pyproject.toml
├── .gitignore
├── .env.example
└── README.md
```

## Installation

```bash
uv sync
```

## Running

```bash
uv run mcp dev server.py
```

You can then use MCP Inspector or an MCP client to test the server.

## Customizing

Replace the JSON placeholder data in the `data/` directory with your own information.

## MCP concepts shown here

### Tools
These are actions such as:
- `get_profile()`
- `get_projects()`
- `search_personal_data()`
- `get_context()`

### Resources
These are addressable data endpoints such as:
- `personal://profile`
- `personal://projects`

### Prompts
This project includes:
- `personal_bio`

The goal is to keep the project understandable enough for a beginner learning MCP.

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation3/5

Each getter targets a distinct data category, but get_context overlaps with all of them by accepting the same topics, and search_personal_data can also duplicate broad retrieval. Descriptions help, but an agent may hesitate between the generic and specific tools.

Naming Consistency4/5

The vast majority follow a clear get_<resource> pattern (get_profile, get_education, get_projects). search_personal_data is a minor deviation, but it still uses a predictable verb_noun structure, so the set remains consistent.

Tool Count5/5

Eight tools is well-scoped for a personal-data retrieval server. Each resource area is represented without excessive fragmentation or unnecessary bulk.

Completeness5/5

The surface covers all advertised personal data categories (profile, education, experience, skills, projects), plus a search tool and a generic context tool that can return everything. For a read-only personal information server, there are no obvious dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues