Portfolio MCP Server
Ask an AI client about Ayush's project portfolio through five read-only MCP tools.
List projects: get a compact summary of every portfolio project.
Get project details: look up one project by name using case-insensitive partial matching and see its description, stack, GitHub repo, demo, and writeup links.
Search by stack: find projects using a given technology or tool, one technology per call, with case-insensitive partial matching.
Get flagship project: identify the best project to review first.
Get resume summary: retrieve Ayush's background, target role, core stack, and career highlights.
It runs locally over stdio from bundled static data, so no API keys are required and no live sync is available.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Portfolio MCP Server What projects has Ayush built with FastAPI?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ποΈ Portfolio MCP Server
Ask an AI about my work. It answers from real data, not a PDF.
An MCP server that makes my AI project portfolio queryable. Connect it to Claude, Cursor, or any MCP client and just ask.
Quickstart Β· Tools Β· Demo Β· Connect a client Β· Limitations Β· Roadmap
β‘ Quickstart
The server command (clients launch it for you; run by hand, it just waits silently for a client):
uvx --with "mcp<2" portfolio-mcp-serverAdd it to Claude Code with one line:
claude mcp add --scope user portfolio -- uvx --with "mcp<2" portfolio-mcp-serverThen ask:
"What has Ayush built with LangGraph?"
Prefer pip? pip install portfolio-mcp-server
Related MCP server: toad-mcp-server
π‘ Why this exists
Most AI-developer portfolios are a list of links. This is a working MCP server built around my own portfolio, using the same protocol agentic products use to connect to tools. It is a real implementation of the spec and a direct answer to "show me you've actually built with MCP."
π¦ Published | Live on PyPI and the official MCP registry |
π§ 5 tools | List, detail lookup, stack search, flagship pick, resume summary |
β Tested | Lint, type-check, and a stdio smoke test on every push |
π§° Tools
Tool | What it does | Try asking |
| Summary of every project in the dataset | "List everything Ayush has built." |
| Full details for one project | "Tell me about his RAG chatbot." |
| Projects using a given technology | "Which projects use FastAPI?" |
| The best project to look at first | "What should I look at first?" |
| Background, target role, core stack | "Summarize his background." |
π§ How it works
MCP client (Claude, Cursor, agents) <--stdio--> portfolio-mcp-server (FastMCP) --> bundled project dataThe client launches the server as a local process and talks to it over stdio. The server answers each tool call from its bundled project data. Nothing is hosted, and no API keys are needed.
π¬ Demo
MCP Inspector: tool discovery | Live chat demo |
|
|
https://github.com/user-attachments/assets/4c1b844a-087f-48a6-b156-bdef27282acc
Setup β tool calls β live answers, end to end.
π Connect a client
claude mcp add --scope user portfolio -- uvx --with "mcp<2" portfolio-mcp-serverOpen your config file:
OS | Path |
macOS |
|
Windows |
|
If the file already has an mcpServers key, add "portfolio" inside it instead of overwriting the file.
Installed with pip:
{
"mcpServers": {
"portfolio": {
"command": "portfolio-mcp-server"
}
}
}Running from a cloned checkout (use the absolute path to server.py):
{
"mcpServers": {
"portfolio": {
"command": "python",
"args": ["/absolute/path/to/portfolio-mcp-server/server.py"]
}
}
}Restart Claude Desktop and ask: "What projects has Ayush built with FastAPI?"
Any MCP client that can launch a stdio server works. Use portfolio-mcp-server (after pip install) or the uvx command above as the server command.
π οΈ Development
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.txtTest it interactively with the MCP Inspector:
mcp dev server.pyThis opens a browser UI where you can call each tool and inspect raw request and response payloads.
Every push and pull request runs through GitHub Actions:
Check | Command |
Lint |
|
Type check |
|
Smoke test | Starts the server and calls all 5 tools over stdio, confirming each returns valid, schema-matching JSON |
Run the same checks locally before opening a PR:
pip install -r requirements-dev.txt
ruff check .
mypy server.py
pytestportfolio-mcp-server/
|-- portfolio_mcp_server/
| |-- __init__.py
| `-- server.py # packaged module (what PyPI ships)
|-- server.py # top-level entry point (dev / MCP Inspector / CI)
|-- tests/
| |-- smoke_test.py # stdio smoke test: calls all 5 tools, validates JSON schema
| |-- test_tools.py # per-tool tests
| |-- test_data.py # data integrity checks for the bundled projects
| `-- check_links.py # checks every URL in the data (runs weekly in CI)
|-- assets/ # demo GIF and screenshots
|-- .github/
| |-- workflows/ # ci.yml, links.yml
| |-- ISSUE_TEMPLATE/
| |-- PULL_REQUEST_TEMPLATE.md
| `-- dependabot.yml
|-- pyproject.toml # PyPI packaging config
|-- server.json # MCP registry manifest
|-- requirements.txt
|-- requirements-dev.txt
|-- claude_desktop_config_snippet.json
|-- CHANGELOG.md
|-- CONTRIBUTING.md
|-- SECURITY.md
`-- LICENSEBuilt with: Python 3.10+ Β· MCP Python SDK (FastMCP) Β· stdio transport Β· registered on the MCP registry as io.github.ayush-s-tomar/portfolio-mcp-server
β οΈ Known limitations
Warning: The installed package is a snapshot.
pip installgets the portfolio as it was at that release (v1.0.4, published 2026-10-27, at the time of writing). Projects added and demo links changed since then won't appear until a new version is published, and tool responses can't yet say how current they are.
Static project data. Tools read from bundled data, so updating a project means editing it and republishing. There is no live sync with the GitHub repos or portfolio site yet.
stdio only. It works for local clients that can spawn the process, such as Claude Desktop, but there is no HTTP/SSE option yet for remote clients.
One technology per search.
search_projects_by_stackfilters on a single technology per call, so "LangGraph and FastAPI together" isn't supported yet.
πΊοΈ Roadmap
Done
Publish to PyPI as an installable package
Publish to the official MCP server registry
Refresh the bundled project data (v1.0.2)
Weekly CI link check of every URL in the bundled data
Next
Fetch project data from the portfolio site at startup, with the bundled snapshot as an offline fallback (one source of truth instead of two copies that drift apart)
Return a
last_updateddate from every tool so an answer can say how current it isSupport matching multiple technologies at once in
search_projects_by_stackAdd an HTTP/SSE transport option alongside stdio for remote clients
π Also listed on
π License
Released under the MIT License.
Built by Ayush Singh Tomar
GitHub Β· LinkedIn Β· Portfolio
If this helped you build your own MCP server, a β on the repo is appreciated.
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.-

