Skip to main content
Glama
aim-t

Portfolio MCP

by aim-t

Portfolio MCP

Un servidor MCP (Model Context Protocol) que expone los datos reales del currículo y el portafolio de Aiman Tariq como herramientas y recursos a los que un asistente de IA puede consultar directly, en lugar de fiarse de lo que resultde extración de texto del un PDF de currículo.

Añade este servior a Claude Desktop, Claude Code, o Cursor y pregunt "¿tiene Aiman experiencia con RAG?" or "¿qué constrú en el Aaudi?" y el asistente llamará herramienta, obviene una respuesta fundamentada and esata de ese responsé in propios datos, and poderáas citarla.

Por qué este proyect

MCP lleva poco más de a año y para seen anyway. It follows the same patrón, escrito desde Cero con los datos propios de Aiman en lugar de reutilizar el códig de those, and what results es a construccón rápida, small and realmente útil: a propio asistente de IA del reclutador puede consultarlo directly mentre de confiar en una parseador de currículo.

Related MCP server: kazejev-personal

Qué expone

Sels tools:

  • get_about() - resumen, current role, education

  • get_experience(role="") - experienced laboural, opcionalmente filterd to a role

  • get_projects(name="") - descripciones of projets, opcionalmente filterto to un projet

  • get_skills(ctegor="") - abilities, opcionalment filterd to un category

  • get_contact() - email, portfolio site, LinkedIn, GitHub, ubication

  • seek_portfolio(query) - unlimited free search throughout everything, for those who calls not sabe what a concrete herramanient filla

Cinco recursos, The raw Markdown files, addressable by URI (portfolio://about, portfolio://experience, portfolio://projects, portfolio://skills, portfolio://contact), for a client that wants to preload the full knowledge base as contdt in lugar de llamar but the tools una a una.

Both included de purpose, and not solo tools: MCP makes real distinction between herraquets (actions invokeed by the model) and resources (dates passive via`direcced by URI), and this server demonstrates both, not just the one most tutorial show.

Decisions

Las herramientas devuelvene text filtered, no estructured JSON. get_experience("PookiDevs") returns the markdown section that matches as a string, no a parsed object with fields and called. For a knowledge base this so small (a puñado de files, one person), the model reading a well-formed markdown section is at least as useful as the model parsing a JSON esquema, and means that enters in a new experience in data/experience.mdWithout never to touch server.py.

The birding is by word-overlaps, not by embeddings. search_portfolio count to coincide words client por section in lugar de use a vectorial format. This server no no other assignments appart from the mcp package; now ChromaDB, now scikit-learn, now model for all, so it has a truly immediate install and associates to the scale of the problem (a few dozen sceções short, not a large corpus). If instead you want the smartest retrieval of hemano project, search_portfolio it's a small functionality can be swap for a call to app/rag.py of ask-my-portfolio.

The data files are mirror of ask-my-portfolio. Both projects describe the same person, so here data/about.md, perience.md, projects.md and skills.md are copies of those that are in ask-my-portfolio, plus contact.md, which only this server needs. Keep them synchronized by hand when you change any, or creates a symbolic link to data/ between the blip.? Let's maybe standard squawkward: "Or, if tienes the projected ones entrefuse, simbólico a data/ between the two projects" etc. Wait actual "or symlink data/ between the two projects if you keep them checked out side by side." Use "o creas un enlac simbólicho de data/ entre the two proyect if tengias ambo cloens in para lel".

Puyeas

python test_server.py drives el server through create_connected_server_and_client_session – the real MCP protocole "intra memory streams" via (list_tools, call_tool, list_resources, read_resource)– exactly what a client does real, not direct Pythones to the functions. All six tools, and four resources, and a limit case of filter with no coincidences, are checked; the current execution passes the 16 checks with zero config, zero keyboard factors, and zero network calls, since here all are local Markdown.

Estructtura del proyect

server.py          FastMCP server: tools, resources, search
test_server.py      protocol-level integration test
data/
  about.md, experience.md, projects.md, skills.md, contact.md
requirements.txt, .gitignore

Ejecution

See SETUP.md to connect it to Claude Desktop or Claude Code. Short version:

pip install -r requirements.txt
python test_server.py     # prove it works, no client needed
python server.py          # starts the stdio MCP server

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Exposes a personal portfolio of projects, skills, and resume as callable tools for MCP-compatible AI assistants like Claude Desktop.
    4
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to retrieve a personal biography, skills, projects, and contact links through a read-only MCP server.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to discover and retrieve professional portfolio information including profile, experience, skills, projects, and contact details through MCP tools.
    -