DevAssist MCP Server
🚀 DevAssist MCP Server
Готовый к продакшену Python MCP-сервер для GitHub и спортивного программирования
🌐 Живое облачное развертывание: 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):
🐙
github_assistant: обеспечивает полную интеграцию с GitHub, включая поиск профилей пользователей, метаданные репозиториев, историю коммитов, разбивку по языкам кода, активные pull requests, отслеживание issues, метрики контрибьюторов и примечания к релизам.🏆
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 | Профили, история контестов, отслеживание рейтинга, отправленные решения |
🧠 Анализ слабых тем | Выявление слабых областей в спортивном программировании с помощью ИИ |
💡 Умные рекомендации | Персональные предложения задач на основе пробелов в навыках |
⚡ Асинхронная архитектура | Неблокирующий ввод-вывод с |
🔒 Готовность к продакшену | Логирование, обработка ошибок, типобезопасность, комплексные тесты |
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.jsonLinux:
~/.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⚙️ Локальная конфигурация
Скопируйте шаблон переменных окружения:
cp .env.example .envОтредактируйте
.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
Действие | Описание | Требуется |
| Получить профиль пользователя GitHub | ❌ |
| Список всех публичных репозиториев пользователя | ❌ |
| Получить недавнюю активность пользователя (коммиты, PR, звёзды) | ❌ |
| Получить информацию о репозитории | ✅ |
| Получить последние коммиты | ✅ |
| Получить статистику репозитория | ✅ |
| Детальная разбивка по языкам программирования в процентах | ✅ |
| Основные контрибьюторы кода в репозитории | ✅ |
| Последняя версия релиза и примечания к релизу | ✅ |
| Получить pull requests | ✅ |
| Получить 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
Действие | Описание |
| Получить рейтинг и ранг Codeforces |
| Участие в прошедших контестах |
| Недавние отправленные решения задач |
| Изменения рейтинга со временем |
| Выявление слабых тем в задачах |
| Персональные рекомендации задач |
Пример — анализ слабых тем:
"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:
Тип сервиса: Web Service
Команда сборки:
pip install -r requirements.txtКоманда запуска:
python server.py --sseПеременные окружения:
TRANSPORT:ssePORT:10000(или значение по умолчанию Render)GITHUB_TOKEN:ghp_your_github_token
Живой URL:
https://devassist-mcp-server.onrender.com
🤝 Участие в разработке
Сделайте форк репозитория
Создайте feature-ветку:
git checkout -b feature/amazing-featureЗафиксируйте изменения:
git commit -m 'Add amazing feature'Отправьте изменения в ветку:
git push origin feature/amazing-featureОткройте Pull Request
Качество кода
# Format code
black .
# Lint
ruff check .
# Type check
mypy .Создано с ❤️ с использованием Python, FastMCP и httpx
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to access and analyze GitHub profile data, providing insights on repositories, commit history, coding patterns, and generating portfolio summaries for developers and recruiters.82MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze GitHub repositories, including fetching repository details, searching, and retrieving README content.4542ISC
- FlicenseAqualityDmaintenanceEnables AI agents to query a GitHub user's public profile, repositories, language breakdowns, and README content61
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query GitHub data directly through natural language, including user profiles, repositories, issues, and search.
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Git-backed platform for skills, tools, and context for AI agents
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Aditya1335/DevAssist-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server