Skip to main content
Glama
ayush-s-tomar

Portfolio MCP Server

Portfolio MCP Server

**내 AI 프로젝트 포트폴리오를 그냥 읽기만 하는 것이 아니라 질의할 수 있는 무언가로 바꿔주는 MCP 서버입니다.**

아무 MCP 클라이언트(Claude Desktop, Cursor, 커스텀 에이전트)에 연결하고 "Ayush가 LangGraph로 무엇을 만들었나요?" 또는 *"그의 대표 프로젝트는 무엇인가요?"*라고 물어보세요. 정적 PDF가 아닌 실시간 구조화 데이터로 답합니다.

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

요약

  • 📦 단순히 만든 것이 아니라 배포까지 완료 — PyPI와 공식 MCP 레지스트리에 등록되어 있습니다. pip install portfolio-mcp-server 한 줄이면 저장소를 클론할 필요 없이 1분 안에 어떤 MCP 클라이언트에서든 실행할 수 있습니다.

  • 🔧 실제 동작하는 5가지 도구 — 목록 조회, 상세 조회, 스택 검색, 대표 프로젝트 선정, 이력서 요약까지 모두 정적 README 스크롤 대신 구조화된 데이터를 기반으로 동작합니다.

  • 모든 푸시마다 CI 테스트 — 린트, 타입 체크, 그리고 5개 도구를 모두 호출하여 각 응답의 JSON 스키마를 검증하는 실제 stdio 스모크 테스트가 실행됩니다.


목차

Related MCP server: toad-mcp-server

왜 만들었나

대부분의 AI 개발자 포트폴리오는 링크의 나열에 불과합니다. 이 프로젝트는 에이전트 제품들이 도구에 연결할 때 사용하는 바로 그 프로토콜인 MCP 서버를, 제 포트폴리오를 중심으로 실제로 구현한 것입니다. 스펙의 실제 구현체이자, *"MCP에 대해 이야기만 하는 것이 아니라 실제로 구축해 봤다는 것을 보여줘"*라는 질문에 대한 답이기도 합니다.

데모

MCP Inspector — 도구 탐색

라이브 채팅 데모

MCP Inspector Demo

MCP Chat Demo

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

설정 → 도구 호출 → 실시간 답변까지의 전체 과정.

제공되는 도구

도구

설명

list_projects

9개 프로젝트 전체의 간단한 요약

get_project_details(project_name)

단일 프로젝트의 전체 상세 정보

search_projects_by_stack(technology)

특정 기술을 사용하는 프로젝트 검색

get_flagship_project

가장 먼저 살펴볼 최고의 프로젝트

get_resume_summary

배경, 목표 직무, 핵심 스택

빠른 시작

옵션 A — PyPI에서 설치 (가장 빠름):

pip install portfolio-mcp-server

옵션 B — 소스에서 클론하여 실행 (로컬 수정/테스트용):

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

클라이언트에 연결하기 전에 MCP Inspector로 대화형으로 테스트해 보세요:

mcp dev server.py

이렇게 하면 브라우저 UI가 열리고 각 도구를 수동으로 호출하여 원시 요청/응답 페이로드를 검사할 수 있습니다.

Claude Desktop에 연결

Claude Desktop 설정 파일을 여세요:

운영체제

경로

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

파일에 이미 다른 서버가 포함된 mcpServers 키가 있다면 파일을 덮어쓰지 말고 기존 객체 안에 "portfolio" 항목을 추가하세요.

PyPI로 설치한 경우(위 옵션 A):

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

클론한 소스에서 실행하는 경우(위 옵션 B): 사용자 머신에서 server.py절대 경로를 사용하세요:

{
  "mcpServers": {
    "portfolio": {
      "command": "python",
      "args": ["/absolute/path/to/portfolio-mcp-server/server.py"]
    }
  }
}

Claude Desktop을 재시작한 후 다음과 같이 물어보세요:

"Ayush가 FastAPI로 만든 프로젝트는 무엇인가요?"

Claude가 search_projects_by_stack을 호출하여 실시간 데이터로 답변합니다.

기술 스택

  • Python 3.10+

  • MCP Python SDK (FastMCP)

  • stdio 전송 방식

  • PyPI 패키지로 배포되었으며 공식 MCP 서버 레지스트리에 등록되어 있습니다 (io.github.ayush-s-tomar/portfolio-mcp-server)

테스트 및 CI

모든 푸시와 풀 리퀘스트는 GitHub Actions를 통해 검증됩니다:

  • 린트ruff check .

  • 타입 체크mypy server.py

  • 스모크 테스트 — 서버를 실행하고 stdio를 통해 5개 도구를 각각 호출하여 유효하고 스키마에 맞는 JSON을 반환하는지 확인합니다

.github/workflows/ci.yml을 참고하세요. PR을 열기 전에 로컬에서도 동일한 검사를 실행하세요:

pip install -r requirements-dev.txt
ruff check .
mypy server.py
pytest

프로젝트 구조

portfolio-mcp-server/ ├── server.py # FastMCP 서버 + 도구 정의 ├── data/ │ └── projects.json # 도구가 읽는 프로젝트 데이터 ├── tests/ │ └── test_tools.py # 각 도구에 대한 스모크 테스트 ├── requirements.txt ├── requirements-dev.txt ├── pyproject.toml # PyPI 패키징 설정 ├── server.json # MCP 레지스트리 매니페스트 └── .github/workflows/ci.yml

로드맵

  • 설치 가능한 패키지로 PyPI에 배포

  • 공식 MCP 서버 레지스트리에 등록

  • search_projects_by_stack — 여러 기술을 한 번에 매칭하도록 지원

  • 원격 클라이언트를 위해 stdio와 함께 HTTP/SSE 전송 옵션 추가

  • 정적 JSON 대신 가벼운 새로고침 엔드포인트로 이력서/프로젝트 데이터 캐시

라이선스

MIT 라이선스로 배포됩니다.

작성자

Ayush TomarGitHub

자체 MCP 서버를 구축할 때 참고 자료로 유용했다면, 저장소에 ⭐를 남겨주시면 감사하겠습니다.

mcp-name: io.github.ayush-s-tomar/portfolio-mcp-server

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers