Skip to main content
Glama
LinkaG

Personal Assistant MCP Server

by LinkaG
README.md
# Personal Assistant MCP Server 🤖

Демонстрационный MCP (Model Context Protocol) сервер, который показывает все возможности протокола через практические инструменты персонального помощника.

## 🚀 Возможности

### 📋 Tools (Инструменты)
- **add_task** - Добавление новых задач с приоритетами
- **get_tasks** - Просмотр списка задач с фильтрацией
- **complete_task** - Отметка задач как выполненных
- **calculate** - Калькулятор с сохранением истории
- **generate_password** - Генератор безопасных паролей
- **text_stats** - Анализ текста (статистика слов, символов и т.д.)

### 📦 Resources (Ресурсы)
- **tasks://list** - JSON список всех задач
- **calculator://history** - История всех вычислений

### 💡 Prompts (Промпты)
- **task_summary** - Умная сводка по задачам для ИИ
- **productivity_tips** - Советы по продуктивности с разными фокусами

## 🛠️ Установка и запуск

### 1. Установка зависимостей
```bash
pip install -r requirements.txt
```

### 2. Варианты запуска

#### FastMCP сервер (рекомендуется)
```bash
python personal_assistant.py
```

#### Стандартный MCP сервер
```bash
python standard_mcp_server.py
```

#### Демонстрационные тесты
```bash
python demo_test.py
```

#### Тестирование MCP протокола
```bash
python test_mcp_direct.py
```

#### Интеграция с OpenRouter
```bash
# Создайте файл .env на основе env_example.txt
python openrouter_client.py
```

## 📋 Примеры использования

### Управление задачами
```python
# Добавить задачу
add_task("Написать отчет", "Подготовить квартальный отчет", "high")

# Посмотреть задачи
get_tasks("pending")  # только невыполненные
get_tasks("all")      # все задачи

# Завершить задачу
complete_task(1)
```

### Калькулятор
```python
calculate("2 + 2 * 3")
calculate("(10 + 5) / 3")
```

### Генератор паролей
```python
generate_password(16, True)   # длинный пароль с символами
generate_password(8, False)   # короткий без символов
```

### Анализ текста
```python
text_stats("Это пример текста для анализа. Текст содержит разные слова.")
```

## 🔧 Архитектура

### Варианты серверов
- **personal_assistant.py** - FastMCP сервер (упрощенная реализация)
- **standard_mcp_server.py** - Полноценный MCP сервер по стандарту
- **openrouter_client.py** - Клиент для интеграции с OpenRouter API

### Тестирование
- **demo_test.py** - Демонстрация всех функций с примерами
- **test_mcp_direct.py** - Прямое тестирование MCP протокола

### Хранение данных
- Использует хранение в памяти (для демонстрации)
- В реальном проекте можно заменить на базу данных

### Безопасность
- Калькулятор использует безопасное вычисление выражений
- Валидация входных данных для всех инструментов

### Типизация
- Полная типизация с использованием typing
- Документированные функции с описанием параметров

## 🌟 Особенности реализации

1. **Красивый вывод** - использование эмодзи и форматирование
2. **Обработка ошибок** - валидация входных данных
3. **История операций** - сохранение результатов вычислений
4. **Фильтрация данных** - различные способы просмотра задач
5. **Умные промпты** - контекстные подсказки для ИИ

## 🔄 Интеграция с ИИ

Этот MCP сервер может интегрироваться с любыми ИИ помощниками, поддерживающими MCP протокол:

- Claude Desktop
- ChatGPT с MCP плагинами
- Другие MCP-совместимые приложения

## 📝 Структура проекта

```
example/
├── personal_assistant.py     # Основной MCP сервер (FastMCP)
├── standard_mcp_server.py    # Стандартный MCP сервер
├── openrouter_client.py      # Клиент для OpenRouter API
├── demo_test.py             # Демонстрационные тесты функций
├── test_mcp_direct.py       # Прямые тесты MCP протокола
├── requirements.txt         # Зависимости Python
├── README.md               # Документация
├── env_example.txt         # Пример переменных окружения
└── .gitignore              # Git ignore файл
```

## 🎯 Цель проекта

Демонстрация всех возможностей MCP протокола:
- ✅ Tools - выполнение действий
- ✅ Resources - доступ к данным  
- ✅ Prompts - контекстные подсказки

## 🤝 Развитие проекта

Этот проект можно расширить:
- Добавить персистентное хранение (SQLite, PostgreSQL)
- Интегрировать внешние API (погода, новости)
- Добавить веб-интерфейс
- Реализовать систему пользователей
- Добавить больше инструментов анализа