MCP server exposing Ayush Tomar's AI portfolio -- ask what he built or his flagship project.
An MCP server that turns my AI project portfolio into something you can query, not just read.
Point any MCP client (Claude Desktop, Cursor, custom agents) at it and ask "What has Ayush built with LangGraph?" or "What's his flagship project?" β it answers from live structured data, not a static PDF.
TL;DR
pip install portfolio-mcp-server gets it running in any MCP client in under a minute, no repo clone required.
Most AI-developer portfolios are a list of links. This is a working MCP server β the same protocol agentic products use to connect to tools β built around my own portfolio. It's both a real implementation of the spec and an answer to "show me you've actually built with MCP," not just talked about it.
| 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.
| Tool | Description |
|---|---|
list_projects | Short summary of all 9 projects |
get_project_details(project_name) | Full details for one project |
search_projects_by_stack(technology) | Find projects using a given technology |
get_flagship_project | The single best project to look at first |
get_resume_summary | Background, target role, and core stack |
Option A β install from PyPI (fastest):
pip install portfolio-mcp-server
Option B β clone and run from source (for local edits/testing):
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
Test it interactively with the MCP Inspector before wiring it into a client:
mcp dev server.py
This opens a browser UI where you can call each tool manually and inspect raw request/response payloads.
Open your Claude Desktop config file:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
If the file already has an mcpServers key with other servers in it, add
the "portfolio" entry inside the existing object rather than overwriting
the file.
If you installed via PyPI (Option A above):
{
"mcpServers": {
"portfolio": {
"command": "portfolio-mcp-server"
}
}
}
If you're running from a cloned source checkout (Option B above): use the absolute path to server.py on your machine:
{
"mcpServers": {
"portfolio": {
"command": "python",
"args": ["/absolute/path/to/portfolio-mcp-server/server.py"]
}
}
}
Restart Claude Desktop, then ask it something like:
"What projects has Ayush built with FastAPI?"
Claude will call search_projects_by_stack and answer from the live data.
FastMCP)io.github.ayush-s-tomar/portfolio-mcp-server)Every push and pull request runs through GitHub Actions:
ruff check .mypy server.pySee .github/workflows/ci.yml. Run the same
checks locally before opening a 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
search_projects_by_stack β support matching on multiple technologies at onceReleased under the MIT License.
Ayush Tomar β GitHub
If this was useful as a reference for building your own MCP server, a β on the repo is appreciated.
mcp-name: io.github.ayush-s-tomar/portfolio-mcp-server
Source-derived launch command. Check the maintainerβs required arguments and credentials before running:
uvx portfolio-mcp-serverMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-ayush-s-tomar-portfolio-mcp-server": {
"command": "uvx",
"args": [
"portfolio-mcp-server"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the clientβs tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceportfolio-mcp-serverpypiio.github.ayush-s-tomar/portfolio-mcp-server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.