Portfolio Mcp Server

io.github.ayush-s-tomarPublished by GitHub account ayush-s-tomarv1.0.4Updated Oct 29, 2026

Ask any MCP client what Ayush Singh Tomar has built: projects, stacks, and a resume summary.

The publisher's own server: PortfolioFit

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

A local stdio MCP server that lets an assistant answer questions about Ayush Singh Tomar's project portfolio, tech stacks and resume summary from bundled data.

What you can do
  • List every project in the bundled portfolio with a short summary
  • Fetch full details for a single project by name
  • Find projects that use a given technology
  • Pick out the flagship project to look at first
  • Return a resume-style summary of background, target role and core stack
When to use it
Useful when you want an assistant to answer questions about this specific developer's work — what was built, with which stacks, and what the resume summary says — instead of reading a PDF or link list. It is a small, self-contained demo of an MCP server rather than a general-purpose tool.
Requirements
Runs locally over stdio; the client launches it. Needs Python 3.10+ and either uv/uvx or pip to install the portfolio-mcp-server package. No API keys, accounts or network access are required for tool calls.
Before you install
Answers come from a static snapshot bundled at release time, so newer projects or changed links will not appear and responses cannot report how current they are; there is no live sync with GitHub or the portfolio site. Search filters on one technology per call. It only supports local stdio clients, not remote HTTP/SSE connections.

Installation

In SourceWeft

  1. Open Portfolio Mcp Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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


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

Quickstart · Tools · Demo · Connect a client · Limitations · Roadmap


[Portfolio MCP Server demo]

⚡ Quickstart

The server command (clients launch it for you; run by hand, it just waits silently for a client):

bash
uvx --with "mcp<2" portfolio-mcp-server

Add it to Claude Code with one line:

bash
claude mcp add --scope user portfolio -- uvx --with "mcp<2" portfolio-mcp-server

Then ask:

"What has Ayush built with LangGraph?"

Prefer pip? pip install portfolio-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."

📦 PublishedLive on PyPI and the official MCP registry
🔧 5 toolsList, detail lookup, stack search, flagship pick, resume summary
✅ TestedLint, type-check, and a stdio smoke test on every push

🧰 Tools

ToolWhat it doesTry asking
list_projectsSummary of every project in the dataset"List everything Ayush has built."
get_project_details(project_name)Full details for one project"Tell me about his RAG chatbot."
search_projects_by_stack(technology)Projects using a given technology"Which projects use FastAPI?"
get_flagship_projectThe best project to look at first"What should I look at first?"
get_resume_summaryBackground, target role, core stack"Summarize his background."

🧠 How it works

text
MCP client (Claude, Cursor, agents)  <--stdio-->  portfolio-mcp-server (FastMCP)  -->  bundled project data

The 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 discoveryLive chat demo
[MCP Inspector Demo][MCP Chat Demo]
🎥 Full video walkthrough

https://github.com/user-attachments/assets/4c1b844a-087f-48a6-b156-bdef27282acc

Setup → tool calls → live answers, end to end.

🔌 Connect a client

Claude Code
bash
claude mcp add --scope user portfolio -- uvx --with "mcp<2" portfolio-mcp-server
Claude Desktop

Open your config file:

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json

If the file already has an mcpServers key, add "portfolio" inside it instead of overwriting the file.

Installed with pip:

json
{  "mcpServers": {    "portfolio": {      "command": "portfolio-mcp-server"    }  }}

Running from a cloned checkout (use the absolute path to server.py):

json
{  "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?"

Cursor and other clients

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

Run from source
bash
git clone https://github.com/ayush-s-tomar/portfolio-mcp-server.gitcd portfolio-mcp-server
python -m venv venvsource venv/bin/activate        # Windows: venv\Scripts\activate
pip install -r requirements.txt

Test it interactively with the MCP Inspector:

bash
mcp dev server.py

This opens a browser UI where you can call each tool and inspect raw request and response payloads.

Testing & CI

Every push and pull request runs through GitHub Actions:

CheckCommand
Lintruff check .
Type checkmypy server.py
Smoke testStarts 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:

bash
pip install -r requirements-dev.txtruff check .mypy server.pypytest

See .github/workflows/ci.yml.

Project structure
text
portfolio-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`-- LICENSE

Built 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 install gets 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_stack filters 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_updated date from every tool so an answer can say how current it is
  • Support matching multiple technologies at once in search_projects_by_stack
  • Add an HTTP/SSE transport option alongside stdio for remote clients

🌐 Also listed on

[Portfolio MCP server on mcprush]

📄 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

Source: README.md at commit 08556a7

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

4
  1. v1.0.4LatestOct 29, 2026
  2. v1.0.3Oct 25, 2026
  3. v1.0.2Oct 24, 2026
  4. v1.0.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Portfolio integrations