Portfolio MCP Server
Portfolio MCP Server
MCP-сервер, который превращает моё портфолио AI-проектов в то, что можно запрашивать, а не просто читать.
Подключите к нему любой MCP-клиент (Claude Desktop, Cursor, собственных агентов) и спросите «Что Аюш создал с помощью LangGraph?» или «Какой у него флагманский проект?» — он ответит на основе живых структурированных данных, а не статичного PDF.
Кратко
📦 Опубликован, а не просто собран — доступен на 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 — обнаружение инструментов | Живое демо чата |
|
|
https://github.com/user-attachments/assets/4c1b844a-087f-48a6-b156-bdef27282acc
Настройка → вызовы инструментов → живые ответы, от начала до конца.
Доступные инструменты
Инструмент | Описание |
| Краткая сводка всех 9 проектов |
| Полные детали одного проекта |
| Поиск проектов, использующих указанную технологию |
| Единственный лучший проект, с которого стоит начать |
| Опыт, целевая роль и основной стек |
Быстрый старт
Вариант 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 |
|
Windows |
|
Если в файле уже есть ключ 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 и ответит на основе живых данных.
Стек
Python 3.10+
MCP Python SDK (
FastMCP)транспорт stdio
Упакован для PyPI и зарегистрирован в официальном реестре MCP-серверов (
io.github.ayush-s-tomar/portfolio-mcp-server)
Тестирование и CI
Каждый пуш и pull request проходят через GitHub Actions:
Линтинг —
ruff check .Проверка типов —
mypy server.pySmoke-тест — запускает сервер и вызывает каждый из 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 toolsget_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
Scored across 5 tools
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.
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.
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.
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
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that lets recruiters and AI assistants explore your profile, skills, and projects through natural language.6MIT
- AlicenseAqualityDmaintenanceMCP server exposing portfolio AI tools including semantic search, evaluation framework, and prompt management, enabling natural language interaction with these services via Claude Desktop.5ISC
- FlicenseNot gradedqualityDmaintenanceAn MCP server for controlling the TimeLiner project management system, enabling AI clients to manage projects, tasks, members, and more via natural language.-
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to interact with OpenProject, listing projects and work packages and managing resources through natural language.-

