Skip to main content
Glama
Portfolio MCP Server

Portfolio MCP Server

Portfolio MCP Server

MCP-сервер, который превращает моё портфолио AI-проектов в то, что можно запрашивать, а не просто читать.

Подключите к нему любой MCP-клиент (Claude Desktop, Cursor, собственных агентов) и спросите «Что Аюш создал с помощью LangGraph?» или «Какой у него флагманский проект?» — он ответит на основе живых структурированных данных, а не статичного PDF.

License: MIT Python 3.10+ PyPI MCP CI Code style: ruff PRs Welcome

Кратко

  • 📦 Опубликован, а не просто собран — доступен на PyPI и в официальном реестре MCP; pip install portfolio-mcp-server запустит его в любом MCP-клиенте меньше чем за минуту, без клонирования репозитория.

  • 🔧 5 настоящих инструментов — список, просмотр деталей, поиск по стеку, выбор флагманского проекта и сводка резюме — всё на основе структурированных данных, а не статичной прокрутки README.

  • ✅ CI-тестирование при каждом пуше — линтинг, проверка типов и настоящий smoke-тест через stdio, который вызывает все 5 инструментов и проверяет JSON-схему каждого ответа.


Содержание

Related MCP server: toad-mcp-server

Зачем это существует

Большинство портфолио AI-разработчиков — это список ссылок. Этот проект — работающий MCP-сервер, тот самый протокол, который агентные продукты используют для подключения к инструментам, построенный вокруг моего собственного портфолио. Это одновременно реальная реализация спецификации и ответ на «покажи, что ты действительно работал с MCP», а не просто говорил о нём.

Демо

MCP Inspector — обнаружение инструментов

Живое демо чата

MCP Inspector Demo

MCP Chat Demo

https://github.com/user-attachments/assets/4c1b844a-087f-48a6-b156-bdef27282acc

Настройка → вызовы инструментов → живые ответы, от начала до конца.

Доступные инструменты

Инструмент

Описание

list_projects

Краткая сводка всех 9 проектов

get_project_details(project_name)

Полные детали одного проекта

search_projects_by_stack(technology)

Поиск проектов, использующих указанную технологию

get_flagship_project

Единственный лучший проект, с которого стоит начать

get_resume_summary

Опыт, целевая роль и основной стек

Быстрый старт

Вариант A — установка из PyPI (быстрее всего):

pip install portfolio-mcp-server

Вариант B — клонировать и запустить из исходников (для локальных правок/тестирования):

git clone https://github.com/ayush-s-tomar/portfolio-mcp-server.git
cd portfolio-mcp-server

python -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate

pip install -r requirements.txt

Протестируйте его интерактивно с помощью MCP Inspector, прежде чем подключать к клиенту:

mcp dev server.py

Откроется браузерный интерфейс, где можно вручную вызывать каждый инструмент и просматривать сырые запросы и ответы.

Подключение к Claude Desktop

Откройте файл конфигурации Claude Desktop:

ОС

Путь

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Если в файле уже есть ключ mcpServers с другими серверами, добавьте запись "portfolio" внутрь существующего объекта, а не перезаписывайте файл.

Если вы установили через PyPI (вариант A выше):

{
  "mcpServers": {
    "portfolio": {
      "command": "portfolio-mcp-server"
    }
  }
}

Если вы запускаете из клонированного исходного кода (вариант B выше): используйте абсолютный путь к server.py на вашей машине:

{
  "mcpServers": {
    "portfolio": {
      "command": "python",
      "args": ["/absolute/path/to/portfolio-mcp-server/server.py"]
    }
  }
}

Перезапустите Claude Desktop и спросите его, например:

«Какие проекты Аюш создал с помощью FastAPI?»

Claude вызовет search_projects_by_stack и ответит на основе живых данных.

Стек

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

Каждый пуш и pull request проходят через GitHub Actions:

  • Линтинг — ruff check .

  • Проверка типов — mypy server.py

  • Smoke-тест — запускает сервер и вызывает каждый из 5 инструментов через stdio, чтобы убедиться, что они возвращают корректный JSON, соответствующий схеме

См. .github/workflows/ci.yml. Запустите те же проверки локально перед открытием PR:

pip install -r requirements-dev.txt
ruff check .
mypy server.py
pytest

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

portfolio-mcp-server/ ├── server.py # FastMCP server + tool definitions ├── data/ │ └── projects.json # Project data the tools read from ├── tests/ │ └── test_tools.py # Smoke tests for each tool ├── requirements.txt ├── requirements-dev.txt ├── pyproject.toml # PyPI packaging config ├── server.json # MCP registry manifest └── .github/workflows/ci.yml

План развития

  • Опубликовать на PyPI как устанавливаемый пакет

  • Опубликовать в официальном реестре MCP-серверов

  • search_projects_by_stack — поддержка поиска по нескольким технологиям одновременно

  • Добавить вариант транспорта HTTP/SSE наряду со stdio для удалённых клиентов

  • Кэшировать данные резюме и проектов с помощью лёгкой конечной точки обновления вместо статичного JSON

Лицензия

Выпущено под лицензией MIT.

Автор

Ayush Tomar — GitHub

Если этот проект был полезен как справочник для создания собственного MCP-сервера, будем признательны за ⭐ в репозитории.

mcp-name: io.github.ayush-s-tomar/portfolio-mcp-server

Available Tools

5 tools
get_flagship_projectB

Get Ayush's flagship/best project — the one to look at first for a quick sense of his skill level.

Inputs: no named parameters.

get_project_detailsA

Get full details for a single project by name (case-insensitive, partial match allowed, e.g. 'sales' matches 'SalesAgent').

Returns description, full stack, GitHub repo, live demo link, and writeup link if one exists.

Inputs: project_name (required).

get_resume_summaryA

Get a summary of Ayush's background: education, target role, core tech stack, and career highlights.

Inputs: no named parameters.

list_projectsA

List all projects in Ayush's portfolio with a short summary of each.

Returns a compact list (name, one-line description, stack) — use get_project_details for the full description, GitHub link, and demo URL.

Inputs: no named parameters. Returns: result

search_projects_by_stackA

Find all projects that use a given technology or tool, e.g. 'LangGraph', 'Groq', 'FastAPI', 'React'. Case-insensitive, partial match.

Useful for answering "does Ayush have experience with X?"

Inputs: technology (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: listing projects, getting details, searching by stack, retrieving the flagship project, and summarizing resume background. No two tools appear to overlap in ways that would cause misselection.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using list_, get_, or search_ prefixes. The naming is predictable and makes the toolset easy to navigate.

    Tool Count5/5

    Five tools is well-scoped for a portfolio server. Each tool covers a meaningful query a user or agent would need, without unnecessary redundancy or bloat.

    Completeness5/5

    The toolset covers the full read-only portfolio domain: browsing projects, retrieving full details, filtering by technology, identifying the best project, and accessing background information. There are no obvious dead ends or missing critical operations.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers