Skip to main content
Glama
Portfolio MCP Server

Portfolio MCP Server

Portfolio MCP Server

Un servidor MCP que convierte mi portafolio de proyectos de IA en algo que puedes consultar, no solo leer.

Apunta cualquier cliente MCP (Claude Desktop, Cursor, agentes personalizados) hacia él y pregunta "¿Qué ha construido Ayush con LangGraph?" o "¿Cuál es su proyecto insignia?" — responde con datos estructurados en vivo, no con un PDF estático.

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

TL;DR

  • 📦 Publicado, no solo construido — disponible en PyPI y en el registro oficial de MCP; pip install portfolio-mcp-server lo pone en marcha en cualquier cliente MCP en menos de un minuto, sin necesidad de clonar el repositorio.

  • 🔧 5 herramientas reales — listado, consulta de detalles, búsqueda por stack, selección del proyecto insignia y resumen del currículum, todo respaldado por datos estructurados en lugar de un README estático.

  • ✅ Probado con CI en cada push — lint, type-check y una prueba de humo real sobre stdio que llama a las 5 herramientas y valida el esquema JSON de cada respuesta.


Tabla de contenidos

Related MCP server: toad-mcp-server

Por qué existe

La mayoría de los portafolios de desarrolladores de IA son una lista de enlaces. Este es un servidor MCP funcional — el mismo protocolo que usan los productos agénticos para conectarse a herramientas — construido en torno a mi propio portafolio. Es a la vez una implementación real de la especificación y una respuesta a "demuestra que realmente has construido con MCP", no solo que has hablado de ello.

Demo

MCP Inspector — descubrimiento de herramientas

Demo de chat en vivo

MCP Inspector Demo

MCP Chat Demo

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

Configuración → llamadas a herramientas → respuestas en vivo, de principio a fin.

Herramientas expuestas

Herramienta

Descripción

list_projects

Resumen breve de los 9 proyectos

get_project_details(project_name)

Detalles completos de un proyecto

search_projects_by_stack(technology)

Encuentra proyectos que usan una tecnología determinada

get_flagship_project

El mejor proyecto para ver primero

get_resume_summary

Trayectoria, rol objetivo y stack principal

Inicio rápido

Opción A — instalar desde PyPI (la más rápida):

pip install portfolio-mcp-server

Opción B — clonar y ejecutar desde el código fuente (para ediciones/pruebas locales):

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

Pruébalo de forma interactiva con MCP Inspector antes de conectarlo a un cliente:

mcp dev server.py

Esto abre una interfaz de navegador donde puedes llamar a cada herramienta manualmente e inspeccionar los payloads de solicitud/respuesta en bruto.

Conectar con Claude Desktop

Abre el archivo de configuración de Claude Desktop:

Sistema operativo

Ruta

macOS

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

Windows

%APPDATA%\Claude\claude_desktop_config.json

Si el archivo ya tiene una clave mcpServers con otros servidores, añade la entrada "portfolio" dentro del objeto existente en lugar de sobrescribir el archivo.

Si lo instalaste vía PyPI (opción A anterior):

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

Si lo estás ejecutando desde un clon del código fuente (opción B anterior): usa la ruta absoluta a server.py en tu máquina:

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

Reinicia Claude Desktop y luego pregúntale algo como:

"¿Qué proyectos ha construido Ayush con FastAPI?"

Claude llamará a search_projects_by_stack y responderá con los datos en vivo.

Stack

Pruebas y CI

Cada push y pull request pasa por GitHub Actions:

  • Lint — ruff check .

  • Type check — mypy server.py

  • Prueba de humo — levanta el servidor y llama a cada una de las 5 herramientas a través de stdio para confirmar que devuelven JSON válido y acorde al esquema

Consulta .github/workflows/ci.yml. Ejecuta las mismas comprobaciones localmente antes de abrir un PR:

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

Estructura del proyecto

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

Hoja de ruta

  • Publicar en PyPI como paquete instalable

  • Publicar en el registro oficial de servidores MCP

  • search_projects_by_stack — admitir coincidencias con varias tecnologías a la vez

  • Añadir una opción de transporte HTTP/SSE además de stdio para clientes remotos

  • Almacenar en caché los datos del currículum y los proyectos con un endpoint de actualización ligero en lugar de JSON estático

Licencia

Publicado bajo la Licencia MIT.

Autor

Ayush Tomar — GitHub

Si te ha sido útil como referencia para construir tu propio servidor MCP, se agradece una ⭐ en el repositorio.

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
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers