portfolio-mcp-server について
portfolio-mcp-serverは、Ayush Singh Tomarのプロジェクト、技術スタック、経歴概要をMCPクライアントから照会できるサーバーです。ローカルのstdio接続で、同梱データを検索する5種類のツールを提供します。
主な機能
- 01全プロジェクトの一覧
- 02プロジェクト詳細の取得
- 03技術別のプロジェクト検索
- 04代表プロジェクトの選定
- 05経歴の要約
活用シーン
- 01特定の技術を使うプロジェクトの検索
- 02個別プロジェクトの詳細確認
- 03ポートフォリオの概要把握
MCP 対応
MCPクライアントにポートフォリオ照会用の5つのツールを公開するMCPサーバーです。stdioで通信し、同梱されたプロジェクトデータを参照します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🗂️ Portfolio MCP サーバー
私の仕事について AI に質問できます。PDF ではなく、実際のデータをもとに回答します。
私の AI プロジェクトのポートフォリオを検索可能にする MCP サーバーです。
Claude、Cursor、その他の MCP クライアントに接続して、質問するだけです。
クイックスタート · ツール · デモ · クライアントの接続 · 制限事項 · ロードマップ
⚡ クイックスタート
サーバーコマンド(クライアントが起動します。手動で実行した場合は、クライアントの接続を待つだけです):
uvx --with "mcp<2" portfolio-mcp-server
次の1行で Claude Code に追加できます:
claude mcp add --scope user portfolio -- uvx --with "mcp<2" portfolio-mcp-server
続いて、次のように質問します:
「Ayush は LangGraph を使って何を作りましたか?」
pip を使いたい場合:pip install portfolio-mcp-server
💡 このプロジェクトを作った理由
多くの AI 開発者のポートフォリオは、リンクを並べただけです。これは、私自身のポートフォリオをもとに作った実用的な MCP サーバーです。エージェント型製品がツールに接続するときに使うのと同じプロトコルを採用しています。仕様を実際に実装したものであり、「MCP を使って実際に開発したことを見せてほしい」という問いへの直接的な回答です。
| 📦 公開済み | PyPI と公式 MCP レジストリで公開中 |
| 🔧 5 つのツール | プロジェクト一覧、詳細検索、技術スタック検索、代表作の紹介、履歴書の要約 |
| ✅ テスト済み | プッシュのたびに、リンティング、型チェック、stdio のスモークテストを実施 |
🧰 ツール
| ツール | 機能 | 質問例 |
|---|---|---|
list_projects | データセット内の全プロジェクトの概要 | 「Ayush が作ったものをすべて一覧表示して。」 |
get_project_details(project_name) | 1 つのプロジェクトの詳細 | 「彼の RAG チャットボットについて教えて。」 |
search_projects_by_stack(technology) | 指定した技術を使うプロジェクト | 「FastAPI を使っているプロジェクトはどれ?」 |
get_flagship_project | 最初に見るのに最適なプロジェクト | 「最初に見るべきものは何?」 |
get_resume_summary | 経歴、希望する職種、主要な技術スタック | 「彼の経歴を要約して。」 |
🧠 仕組み
MCP client (Claude, Cursor, agents) <--stdio--> portfolio-mcp-server (FastMCP) --> bundled project data
クライアントはサーバーをローカルプロセスとして起動し、stdio 経由で通信します。サーバーは、同梱されたプロジェクトデータをもとに各ツール呼び出しに回答します。ホスト環境は不要で、API キーも必要ありません。
🎬 デモ
| MCP Inspector:ツールの検出 | ライブチャットのデモ |
|---|---|
![]() | ![]() |
🎥 全編の動画解説
https://github.com/user-attachments/assets/4c1b844a-087f-48a6-b156-bdef27282acc
セットアップからツール呼び出し、リアルタイムの回答までを一通り紹介します。
Claude Code
claude mcp add --scope user portfolio -- uvx --with "mcp<2" portfolio-mcp-server
Claude Desktop
設定ファイルを開きます。
| OS | パス |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
ファイルにすでにmcpServersキーがある場合は、ファイル全体を上書きせず、その中に"portfolio"を追加してください。
pipでインストールした場合:
{
"mcpServers": {
"portfolio": {
"command": "portfolio-mcp-server"
}
}
}
クローンしたチェックアウトから実行する場合(server.pyの絶対パスを使用してください):
{
"mcpServers": {
"portfolio": {
"command": "python",
"args": ["/absolute/path/to/portfolio-mcp-server/server.py"]
}
}
}
Claude Desktopを再起動し、「AyushはFastAPIを使ってどのようなプロジェクトを作りましたか?」と尋ねてください。
Cursorおよびその他のクライアント
stdioサーバーを起動できるMCPクライアントであれば使用できます。サーバーコマンドには、portfolio-mcp-server(pip installの実行後)または上記のuvxコマンドを指定してください。
🛠️ 開発
ソースから実行する
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が開き、各ツールを呼び出して、リクエストとレスポンスの生のペイロードを確認できます。
テストとCI
すべてのプッシュとプルリクエストで、GitHub Actionsが次のチェックを実行します。
| チェック | コマンド |
|---|---|
| Lint | ruff check . |
| 型チェック | mypy server.py |
| スモークテスト | サーバーを起動し、stdio経由ですべての5つのツールを呼び出して、それぞれが有効でスキーマに一致するJSONを返すことを確認します |
PRを作成する前に、同じチェックをローカルで実行してください。
pip install -r requirements-dev.txt
ruff check .
mypy server.py
pytest
.github/workflows/ci.ymlを参照してください。
プロジェクト構成
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
使用技術: Python 3.10+ · MCP Python SDK(FastMCP) · stdioトランスポート · MCP registryにio.github.ayush-s-tomar/portfolio-mcp-serverとして登録
⚠️ 既知の制限事項
警告: インストールされるパッケージはスナップショットです。
pip installでは、そのリリース時点のポートフォリオがインストールされます(執筆時点ではv1.0.4、公開日:2026-10-27)。それ以降に追加されたプロジェクトや変更されたデモリンクは、新しいバージョンが公開されるまで反映されません。また、ツールのレスポンスでは、データがどれほど最新かをまだ示せません。
- 静的なプロジェクトデータ。 ツールは同梱データを読み込むため、プロジェクトを更新するには編集して再公開する必要があります。GitHubリポジトリやポートフォリオサイトとのライブ同期にはまだ対応していません。
- stdioのみ。 Claude Desktopなど、プロセスを起動できるローカルクライアントでは動作しますが、リモートクライアント向けのHTTP/SSEオプションはまだありません。
- 検索ごとに1つの技術。
search_projects_by_stackは1回の呼び出しで単一の技術を条件に絞り込むため、「LangGraphとFastAPIの両方」はまだサポートされていません。
🗺️ ロードマップ
完了
- インストール可能なパッケージとしてPyPIに公開
- 公式MCPサーバーレジストリに公開
- 同梱プロジェクトデータを更新(v1.0.2)
- 同梱データ内のすべてのURLを毎週CIでチェック
次の予定
- 起動時にポートフォリオサイトからプロジェクトデータを取得し、オフライン時には同梱スナップショットをフォールバックとして使用する(乖離する2つのコピーではなく、単一の信頼できる情報源にする)
- すべてのツールから
last_updatedの日付を返し、回答でデータの最新度を示せるようにする -
search_projects_by_stackで複数の技術を同時に照合できるようにする - リモートクライアント向けに、stdioに加えてHTTP/SSEトランスポートオプションを追加する
🌐 掲載先
MIT License のもとで公開されています。
Ayush Singh Tomar によって制作
ご自身の MCP サーバーの構築に役立った場合は、リポジトリに ⭐ を付けていただけると幸いです。
mcp-name: io.github.ayush-s-tomar/portfolio-mcp-server
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

