Portfolio MCP
Portfolio MCP
一个 MCP(Model Context Protocol)服务器,把 Aiman Tariq 的真实简历和作品集内容开放为工具和资源,AI 助手可以直接查询,而不必依赖简历 PDF 进行文本抽取。
把这个服务器加到 Claude Desktop、Claude Code 或 Cursor 里,然后问"does Aiman have RAG experience?" 或 "what did she build at the Audi camp?",助手会调用工具,直接从他自己的数据里得到有理有据的回答,还能引用原文。
为什么做这个项目
MCP 问世还不到一年,到 2026 年对随便翻阅 GitHub 主页的技术人来说,它依然算得上是一种最新、很锋利的工具知识。已经有几个开源的"portfolio as MCP server"项目了(sohumsuthar/portfolio-mcp、Mrinank-Bhowmick/MCV)。本项目同样遵循这套模式,但完全针对 Aiman 自己的数据从零编写,没有复用他们的代码。它快速、轻量,且确实有用:招聘方自己的 AI 助手可以故意直接查询它,而不用相信哪个简历解析器的提取结果。
Related MCP server: mcp-me
它提供什么
六个工具:
get_about()- 个人概要、当前职位、教育背景get_experience(role="")- 工作经历,可按一条角色筛选get_projects(name="")- 项目说明,可按一个项目筛选get_skills(category="")- 技能列表,可按一个类别筛选get_contact()- 邮箱、作品集网址、LinkedIn、GitHub、所在地search_portfolio(query)- 在所有内容里做自由文本搜索,适用于调用方不确定具体应用哪个工具的场景
五个资源,也就是原始 markdown 文件,可通过 URI(portfolio://about、portfolio://experience、portfolio://projects、portfolio://skills、portfolio://contact)访问,适合希望一次性预载整个知识库、而不是逐个调用工具的客户端。
两者是有意被纳入的,而不是只做工具:MCP 在工具(模型执行的操作)和资源(被动、通过 URI 寻址的数据)之间有明确的区别,本项目把两者都做到了,而不像大多数教程只演示其中一种。
设计决策
工具返回过滤后的文本,返回的是结构化的 JSON。 get_experience("PookiDevs") 返回匹配的 markdown 部分(字符串),而不是带命名字段的解析对象。对于这么小的知识库(几个文件、一个人物),让模型读取一段规范的 markdown,与让它解析 JSON 一样有价值,而且往 data/experience.md 添加一个新的工作经历记录,不需要改动 server.py 的任何代码。
搜索基于词重叠,而不使用嵌入向量。 search_portfolio 按章节统计查询词条的出现次数,不使用向量索引。除了 mcp 本身,也没有别的依赖——不需要 ChromaDB,不需要 scikit-learn,也不需要下载模型——所以它安装起来相当轻,和问题规模也匹配(几十个短小节,而不是很大的语料库)。如果你想要姊妹项目里更智能的检索,search_portfolio 完全可以换成对 ask-my-portfolio 的 app/rag.py 的一次调用。
数据文件与 ask-my-portfolio/data/ 保持一致。 两个项目描述的是同一个人,所以这里的 data/about.md、experience.md、projects.md、skills.md 都是 ask-my-portfolio 项目中对应文件的副本(额外多了 contact.md,这是本服务器额外需要的)。改动任一侧时手工保持同步即可;如果你把两个项目并排检出,也可以把 data/ 做符号链接两块之间互通。
测试情况
python test_server.py 使用 create_connected_server_and_client_session 来驱动服务器——通过内存流跑真正的 MCP 协议(list_tools、call_tool、list_resources、read_resource),这和真实客户端行为一致,而不只是直接调用 Python 函数。全部 6 个工具、5 个资源,以及一个无匹配的筛选边界情况都已覆盖;当前这次运行全部 20 项检查全部通过,零配置、零 API 密钥、零网络调用,因为这里的全部内容都是本地 markdown。
项目结构
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运行
要看如何把这个接入 Claude Desktop 或 Claude Code,见 SETUP.md。简要步骤:
pip install -r requirements.txt
python test_server.py # prove it works, no client needed
python server.py # starts the stdio MCP serverThis 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
- AlicenseNot gradedqualityDmaintenanceExposes a personalized AI agent that reads your resume and provides intelligent responses about your professional background through a standardized MCP server interface with RAG capabilities.MIT
- AlicenseNot gradedqualityCmaintenanceTransforms professional data (CV, projects) into MCP tools for LLMs to query, list, match job descriptions, and ask about experience.77MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query the author's career, projects, publications, and technical documents through read-only MCP tools.
- AlicenseNot gradedqualityCmaintenanceEnables retrieval-augmented generation over a local markdown corpus, allowing grounded, cited answers via an MCP tool or CLI.9MIT
Related MCP Connectors
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
MCP-native collaborative markdown editor with real-time AI document editing
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
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/aim-t/portfolio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server