Skip to main content

MCP server exposing Ayush Tomar's AI project portfolio as queryable tools for Claude Desktop and other MCP clients

Project description

Portfolio MCP Server

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.

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

Portfolio MCP Server demo

Watch the full walkthrough ▶


Table of contents

Why this exists

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.

Demo

MCP Inspector — tool discovery Live chat demo
MCP Inspector Demo MCP Chat Demo

Full video walkthrough (setup → tool calls → live answers): watch here ▶

Tools exposed

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

Quickstart

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.

Connect to Claude Desktop

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. 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.

Stack

Testing & CI

Every push and pull request runs through GitHub Actions:

  • Lintruff check .
  • Type checkmypy server.py
  • Smoke test — spins up the server and calls each of the 5 tools over stdio to confirm they return valid, schema-matching JSON

See .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

Project structure

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 └── .github/workflows/ci.yml

Roadmap

  • search_projects_by_stack — support matching on multiple technologies at once
  • Add an HTTP/SSE transport option alongside stdio for remote clients
  • Publish to the MCP server registry
  • Cache resume/project data with a lightweight refresh endpoint instead of static JSON

License

Released under the MIT License.

Author

Ayush TomarGitHub

If this was useful as a reference for building your own MCP server, a ⭐ on the repo is appreciated.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

portfolio_mcp_server-1.0.0.tar.gz (660.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

portfolio_mcp_server-1.0.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file portfolio_mcp_server-1.0.0.tar.gz.

File metadata

  • Download URL: portfolio_mcp_server-1.0.0.tar.gz
  • Upload date:
  • Size: 660.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for portfolio_mcp_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5349eff91a79b9f023e79194da17e0bb04e3cba2b268a058e90a49415a4dfb30
MD5 06aac4d0c06cf5e0a8f73a7e7be65143
BLAKE2b-256 66e938dceca80b7e3a9373e10ca3d437ca70dd6fca7425547fc7b35d74a30ffe

See more details on using hashes here.

File details

Details for the file portfolio_mcp_server-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for portfolio_mcp_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c536f8e4db39197c62abceceb5ab3457ad579f27141115e6b6e1b5ed263401e5
MD5 8c245a7fbe3e2acd8f903193201a6cfb
BLAKE2b-256 6b84890e5de22d61a7f54e924d7080205b16d8e93c74f9d0be5b73389338ba6a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page