Skip to main content
Glama

🚀 DevAssist MCP Server

Готовый к продакшену Python MCP-сервер для GitHub и спортивного программирования

Python MCP Render License Docker


🌐 Живое облачное развертывание: DevAssist MCP Server развернут и работает на Render.com!

  • Базовый URL и проверка работоспособности: https://devassist-mcp-server.onrender.com/

  • SSE-эндпоинт: https://devassist-mcp-server.onrender.com/sse

Вы можете подключить свой клиент Claude Desktop, Cursor или VS Code напрямую к размещенному серверу Render, не запуская код локально, либо запустить его локально на своей машине.


📖 Обзор и описание проекта

DevAssist MCP Server — это производственный асинхронный сервер Model Context Protocol (MCP), созданный для подключения ИИ-ассистентов, таких как Claude Desktop, Cursor и VS Code Copilot, к рабочим процессам разработчика в реальном времени, аналитике GitHub-репозиториев и аналитике спортивного программирования.

🎯 Назначение и основные возможности

Современные ИИ-агенты для программирования часто не имеют прямого доступа к внешним платформам разработчика и метрикам спортивного программирования. DevAssist MCP решает эту проблему, предоставляя два специализированных инструмента через стандартные интерфейсы протокола MCP (STDIO и Server-Sent Events / SSE):

  1. 🐙 github_assistant: обеспечивает полную интеграцию с GitHub, включая поиск профилей пользователей, метаданные репозиториев, историю коммитов, разбивку по языкам кода, активные pull requests, отслеживание issues, метрики контрибьюторов и примечания к релизам.

  2. 🏆 cp_assistant: интегрируется с Codeforces для получения рейтингов пользователей на контестах, истории производительности отправленных решений, отслеживания точности по темам, выявления слабых мест в алгоритмах и персональных рекомендаций тренировочных задач на основе уровня рейтинга и слабых тем.

Будь то локальное развертывание или доступ через живой облачный эндпоинт Render.com (https://devassist-mcp-server.onrender.com/sse), DevAssist MCP позволяет LLM динамически анализировать живые данные разработчика.

✨ Ключевые возможности

Возможность

Описание

🌐 Облачное развертывание

Живой хостинг на Render.com с полной поддержкой Server-Sent Events (SSE)

🐙 Интеграция с GitHub

Профили пользователей, информация о репозиториях, коммиты, PR, issues, статистика

🏆 Интеграция с Codeforces

Профили, история контестов, отслеживание рейтинга, отправленные решения

🧠 Анализ слабых тем

Выявление слабых областей в спортивном программировании с помощью ИИ

💡 Умные рекомендации

Персональные предложения задач на основе пробелов в навыках

⚡ Асинхронная архитектура

Неблокирующий ввод-вывод с httpx для максимальной производительности

🔒 Готовность к продакшену

Логирование, обработка ошибок, типобезопасность, комплексные тесты


Related MCP server: GitBridge

🏗️ Архитектура

graph TD
    A["🤖 AI Agent<br/>(Claude / Cursor / VS Code)"] -->|MCP Protocol / SSE| B["🌐 Live Render MCP Server / Local Server"]
    B --> C["🐙 github_assistant"]
    B --> D["🏆 cp_assistant"]
    C --> E["GitHub Service Layer"]
    D --> F["Codeforces Service Layer"]
    E -->|httpx async| G["GitHub REST API v3"]
    F -->|httpx async| H["Codeforces API"]
    
    style A fill:#4A90D9,stroke:#2C5F99,color:#fff
    style B fill:#6C3483,stroke:#4A235A,color:#fff
    style C fill:#27AE60,stroke:#1E8449,color:#fff
    style D fill:#E67E22,stroke:#CA6F1E,color:#fff

🔌 Подключение к Claude Desktop (claude_desktop_config.json)

Чтобы использовать этот MCP-сервер в Claude Desktop, откройте или создайте файл claude_desktop_config.json.

📍 Расположение файлов:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json (например, C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json)

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json


Вариант A: используйте живое развертывание Render (рекомендуется)

Подключитесь напрямую к облачному серверу на Render.com с помощью моста mcp-remote:

{
  "mcpServers": {
    "devassist-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://devassist-mcp-server.onrender.com/sse"
      ]
    }
  }
}

Или, если ваша версия Claude Desktop поддерживает нативную конфигурацию SSE:

{
  "mcpServers": {
    "devassist-mcp": {
      "url": "https://devassist-mcp-server.onrender.com/sse"
    }
  }
}

Вариант B: используйте локальный запуск

Если вы предпочитаете запускать MCP-сервер локально на своей машине:

{
  "mcpServers": {
    "devassist-mcp": {
      "command": "python",
      "args": ["C:/path/to/devassist-mcp/server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Примечание: Замените C:/path/to/devassist-mcp/server.py на абсолютный путь к server.py на вашей машине.


💻 Конфигурации для других IDE

Cursor

Добавьте в настройки MCP вашего Cursor (.cursor/mcp.json):

Использование облачного эндпоинта Render:

{
  "mcpServers": {
    "devassist-mcp": {
      "url": "https://devassist-mcp-server.onrender.com/sse"
    }
  }
}

Использование локального Python-скрипта:

{
  "mcpServers": {
    "devassist-mcp": {
      "command": "python",
      "args": ["C:/path/to/devassist-mcp/server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

VS Code (с Copilot)

Добавьте в настройки VS Code:

{
  "mcp": {
    "servers": {
      "devassist-mcp": {
        "command": "npx",
        "args": [
          "-y",
          "mcp-remote",
          "https://devassist-mcp-server.onrender.com/sse"
        ]
      }
    }
  }
}

📋 Предварительные требования и локальная настройка

Предварительные требования

  • Python 3.12+

  • GitHub Personal Access Token (Сгенерировать здесь) — для более высоких лимитов запросов

  • pip или uv — менеджер пакетов

Вариант 1: использование uv (рекомендуется)

# Clone the repository
git clone https://github.com/Champion-2006/DevAssist-MCP-Server.git
cd DevAssist-MCP-Server

# Create virtual environment and install dependencies
uv venv
uv pip install -r requirements.txt

Вариант 2: использование pip

# Clone the repository
git clone https://github.com/Champion-2006/DevAssist-MCP-Server.git
cd DevAssist-MCP-Server

# Create virtual environment
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

⚙️ Локальная конфигурация

  1. Скопируйте шаблон переменных окружения:

    cp .env.example .env
  2. Отредактируйте .env, указав свои настройки:

    GITHUB_TOKEN=ghp_your_personal_access_token_here
    LOG_LEVEL=INFO
    TRANSPORT=stdio
    PORT=8000

Примечание: GitHub-токен необязателен, но рекомендуется. Без него количество запросов ограничено 60 вызовами API в час. С токеном лимит увеличивается до 5 000 запросов в час.


🚀 Запуск локальной автономной версии

Режим STDIO (по умолчанию)

python server.py

Режим транспорта SSE

python server.py --sse
# or
TRANSPORT=sse PORT=8000 python server.py

🛠️ Документация по инструментам

Инструмент 1: github_assistant

Действие

Описание

Требуется repository

get_user_profile

Получить профиль пользователя GitHub

❌

get_user_repos

Список всех публичных репозиториев пользователя

❌

get_user_activity

Получить недавнюю активность пользователя (коммиты, PR, звёзды)

❌

get_repo_info

Получить информацию о репозитории

✅

get_latest_commits

Получить последние коммиты

✅

get_repo_stats

Получить статистику репозитория

✅

get_repo_languages

Детальная разбивка по языкам программирования в процентах

✅

get_repo_contributors

Основные контрибьюторы кода в репозитории

✅

get_latest_release

Последняя версия релиза и примечания к релизу

✅

get_pull_requests

Получить pull requests

✅

get_issues

Получить issues репозитория

✅

Пример — получение профиля пользователя:

"Show me the GitHub profile of octocat"
{
  "login": "octocat",
  "name": "The Octocat",
  "public_repos": 42,
  "followers": 20000,
  "location": "San Francisco"
}

Пример — получение статистики репозитория:

"What are the stats for octocat/Hello-World?"
{
  "repository": "octocat/Hello-World",
  "stars": 2500,
  "forks": 450,
  "language": "Python",
  "open_issues": 12
}

Инструмент 2: cp_assistant

Действие

Описание

get_user_profile

Получить рейтинг и ранг Codeforces

get_contest_history

Участие в прошедших контестах

get_recent_submissions

Недавние отправленные решения задач

get_rating_history

Изменения рейтинга со временем

analyze_weak_topics

Выявление слабых тем в задачах

recommend_problems

Персональные рекомендации задач

Пример — анализ слабых тем:

"Analyze the weak topics for Codeforces user tourist"
[
  {
    "tag": "geometry",
    "total_attempts": 15,
    "successful": 5,
    "failed": 10,
    "success_rate": 33.3
  }
]

Пример — получение рекомендаций:

"Recommend practice problems for my Codeforces handle"
[
  {
    "name": "Theatre Square",
    "rating": 1000,
    "tags": ["math"],
    "url": "https://codeforces.com/problemset/problem/1/A"
  }
]

🧪 Тестирование

# Run all tests
pytest tests/ -v

# Run with coverage
pytest tests/ -v --cov=. --cov-report=term-missing

# Run specific test file
pytest tests/test_github_service.py -v

# Run specific test
pytest tests/test_codeforces_service.py::test_analyze_weak_topics -v

📁 Структура проекта

devassist-mcp/
├── server.py                          # MCP server entry point (STDIO & SSE)
├── config.py                          # Pydantic settings
├── .env.example                       # Environment template
├── requirements.txt                   # Dependencies
├── pyproject.toml                     # Project metadata & tool configs
├── Dockerfile                         # Multi-stage Docker build
├── .dockerignore                      # Docker build exclusions
├── .gitignore                         # Git exclusions
├── README.md                          # Comprehensive documentation
├── tools/
│   ├── github.py                      # GitHub MCP tool
│   └── cp.py                          # Codeforces MCP tool
├── services/
│   ├── github_service.py              # GitHub API client
│   └── codeforces_service.py          # Codeforces API client
├── models/
│   ├── github_models.py               # GitHub Pydantic models
│   └── cp_models.py                   # Codeforces Pydantic models
├── utils/
│   ├── logger.py                      # Structured logging
│   └── exceptions.py                  # Custom exception hierarchy
├── tests/
│   ├── conftest.py                    # Shared test fixtures
│   ├── test_github_service.py         # GitHub service tests
│   ├── test_codeforces_service.py     # Codeforces service tests
│   ├── test_github_tool.py            # GitHub tool tests
│   └── test_cp_tool.py               # Codeforces tool tests
└── logs/                              # Log files (auto-created)

🐳 Руководство по развертыванию

Развертывание на Render (живой продакшен)

Этот проект развернут вживую на Render.com как веб-сервис, работающий в режиме транспорта SSE:

  1. Тип сервиса: Web Service

  2. Команда сборки: pip install -r requirements.txt

  3. Команда запуска: python server.py --sse

  4. Переменные окружения:

    • TRANSPORT: sse

    • PORT: 10000 (или значение по умолчанию Render)

    • GITHUB_TOKEN: ghp_your_github_token

  5. Живой URL: https://devassist-mcp-server.onrender.com


🤝 Участие в разработке

  1. Сделайте форк репозитория

  2. Создайте feature-ветку: git checkout -b feature/amazing-feature

  3. Зафиксируйте изменения: git commit -m 'Add amazing feature'

  4. Отправьте изменения в ветку: git push origin feature/amazing-feature

  5. Откройте Pull Request

Качество кода

# Format code
black .

# Lint
ruff check .

# Type check
mypy .

Создано с ❤️ с использованием Python, FastMCP и httpx

Related MCP Connectors

Related MCP Servers