mcpField
D
DevGlobe

DevGlobe

リモート
github.com/sajeetharanビジネス・マーケティング333 週間前に更新
リポジトリ

DevGlobe について

DevGlobe は人間と AI エージェントの双方に向けたオープンソースの人材グラフです。3D 地球儀上に開発者を表示し、スキル、所在地、言語で検索できます。GitHub と StackOverflow の貢献データに基づいてスコアを算出し、MCP エンドポイントも公開しています。

主な機能

  1. 013D 地球儀上での開発者の所在表示
  2. 02ベクトル検索とハイブリッド検索
  3. 036 つの指標による 0〜100 の総合スコア
  4. 04国や言語で絞り込めるランキング
  5. 05公開プロフィールを検索できるホスト型 MCP エンドポイント
  6. 06プライベートなコーディング統計を扱う VS Code 拡張機能

活用シーン

  1. 01スキルや地域からオープンソース開発者を探す
  2. 02AI エージェントによる公開プロフィールの検索
  3. 03同梱のサンプルデータでローカル環境を試す

MCP 対応

本プロジェクトは /mcp で公開されるリモート MCP エンドポイントを提供し、公開開発者プロフィールの検索に利用できます。認証済みエージェントは、開発者の同意を前提とした紹介をリクエストすることもできます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://www.devglobe.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

8
パラメーター型必須説明
limitintegerいいえ結果の最大数(1~20)
querystringはい自然言語による公開検索の意図(必須)。例:"TypeScript maintainers" または開発者名
languagestringいいえ任意の主要なプログラミング言語。例:"TypeScript"
locationstringいいえ任意の公開所在地テキスト。例:"Germany" や "Colombo"
opportunityTypeenumいいえ任意の本人申告による現在の機会タイプ。対応可能かどうかを推測しないでくださいemployment | contract | open-source | speaking | mentoring
availableForAgentsbooleanいいえユーザーが、検証済みのエージェントリクエストを受け付けるプロフィールを必要としている場合にのみ true に設定してください

詳細

🌐 DevGlobe

人間とAIエージェントのためのオープンソース人材グラフ。

Live Demo Documentation VS Code GitHub Stars GitHub Sponsors License PRs Welcome

DevGlobeのデモ

26,000人以上の開発者 · スター数、コミット数、リポジトリのリーチ、StackOverflowでの評価に基づいてランク付け · スキル、所在地、言語で検索可能

DevGlobeは、人間とAIエージェントのためのオープンソース人材グラフです。3D開発者マップとAzure Cosmos DBのベクトル検索およびハイブリッド検索を組み合わせ、人気だけに頼るのではなく、実際の貢献シグナルから関連性の高い専門知識を見つけ出します。長期的なビジョンは、AIエージェントが適切な人間の協力者を見つけられる、同意を重視したディスカバリー層です。

動的アプリケーションはAzure Container Appsでホストされています。製品、API、MCP、エージェントスキル、およびエージェント対応に関するドキュメントは、別途GitHub Pagesで公開されています。

重要

AIエージェントをDevGlobeに接続する: MCP対応エージェントは、ホストされたエンドポイントhttps://www.devglobe.dev/mcpを使用して、認証情報なしで公開開発者プロフィールを検索できます。認証済みエージェントは、開発者の承認を得た紹介をリクエストすることもできます。MCPセットアップガイドをご覧ください。

コーディング中に表示される: DevGlobe: Live Coding Globeをインストールし、Go Liveを選ぶと、非公開のコーディング統計を作成しながら地球儀に表示されます。この拡張機能がソースコード、ファイルパス、リポジトリ、ブランチ、キーストロークを読み取ることはありません。

🎬 DevGlobeのデモを見る


✨ 機能

  • インタラクティブな3D地球儀 — Three.jsを使用し、実際の所在地にピン留めされた開発者を探索できます
  • AIを活用した検索 — Azure Cosmos DBによるハイブリッド検索とベクトル検索(例:「AIとディープラーニング」、「フルスタックJS開発者」)
  • 複合スコアリング — 各開発者を6つの指標で0~100点で評価します
  • リーダーボード — 国や言語で絞り込んだり、スコア/スター数/コミット数で並べ替えたりできます
  • 開発者プロフィール — ピンをクリックすると、詳細な統計、上位リポジトリ、貢献の内訳を確認できます
  • リモートMCPアクセス — エージェントは、ホストされたツールを通じて開発者を見つけ、同意を得た紹介をリクエストできます
  • VS Code拡張機能 — 開発者地球儀に表示し、非公開のコーディング統計を作成し、開発者を検索して、エディターからMCPを設定できます
  • モバイル対応 — 小さな画面向けのボトムシート式フィルターと全幅検索

🚀 クイックスタート

オプション 1:設定不要(サンプルデータを使用。データベースは不要)
git clone https://github.com/sajeetharan/devglobe.git
cd devglobe
npm install
npm run dev
# Open http://localhost:3000

Cosmos DB の認証情報が設定されていない場合、アプリはバンドルされているサンプルデータ(開発者 20 人)に自動的にフォールバックします。API キーもエミュレーターもセットアップも不要です。クローンして実行するだけです。

テキスト検索は完全にオフラインで動作します。ベクトル検索/ハイブリッド検索には Azure OpenAI が必要です(オプション 3 を参照)。


オプション 2:Cosmos DB Emulator(ローカルでデータベースの全機能を利用)

API レイヤーまたはデータパイプラインに取り組むコントリビューター向けです。

  1. Cosmos DB Emulator をインストールします — こちらからダウンロード(Windows、Docker 経由の macOS、または Linux Docker)

  2. エミュレーターを起動し、https://localhost:8081 で準備が完了するまで待ちます

  3. サンプルデータをエミュレーターにシードします:

    npm run seed-emulator
    
  4. .env.local を作成します(シードスクリプトが表示します):

    COSMOS_ENDPOINT=https://localhost:8081
    COSMOS_KEY=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
    
  5. アプリを実行します:

    npm run dev
    

上記のエミュレーターキーは、Microsoft の既知のエミュレーターキーです。意図的に公開されており、ローカルでのみ動作します。


オプション 3:Azure バックエンドの全機能(ベクトル検索+ハイブリッド検索)

AI を活用した検索を含む、すべての機能を利用する場合:

# .env.local
COSMOS_ENDPOINT=https://your-account.documents.azure.com:443/
COSMOS_KEY=your-cosmos-key
AZURE_OPENAI_ENDPOINT=https://your-openai.openai.azure.com/
AZURE_OPENAI_KEY=your-openai-key
EMBEDDING_DEPLOYMENT=text-embedding-3-small
AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-4o-mini

AZURE_OPENAI_CHAT_DEPLOYMENT を設定すると、ID カードに自動生成された豆知識が表示されます。チャットデプロイが利用できない場合、カードには事実に基づくプロフィール文が表示されます。

本番環境では、Next.js アプリケーションを Azure Container Apps から、高トラフィックの公開 API の読み取りを Azure Functions から、開発者スナップショットを Azure Blob Storage から配信します。リソースの構成、環境の切り替え、デプロイの確認については、docs/azure-backend.md を参照してください。

npm run dev

🏗️ 技術スタック

レイヤーテクノロジー
フロントエンドReact 19、Three.js (react-globe.gl)、Next.js 15
検索Azure Cosmos DB(ベクトル検索+ハイブリッド検索)
APINext.js API Routes
ホスティングAzure Container Apps と Azure Functions
データパイプラインNode.js スクリプト(GitHub GraphQL、StackOverflow API、ジオコーディング)

📊 スコアリング計算式(0~100)

指標重みソース
GitHub スター20%リポジトリ全体のスター数
GitHub コミット20%年間のコミットアクティビティ
リポジトリのリーチ15%フォーク数+ウォッチャー数
SO 評判25%StackOverflow の評判
SO エンゲージメント15%回答の承認数 × 件数
コミュニティ5%フォロワー数+バッジ数

外れ値がスコアを支配しないよう、すべての指標を対数正規化します。

🔧 完全なデータセットの構築

API キーが必要です。.env.example を .env にコピーし、トークンを入力してください。

npm run fetch-github          # Fetch top devs from GitHub GraphQL
npm run fetch-stackoverflow   # Enrich with StackOverflow reputation
npm run geocode               # Convert locations to lat/lng
npm run build-data            # Run full pipeline
npm run upload-cosmos         # Upload to Azure Cosmos DB
開発者の認定資格

確認済みのコミュニティ認定資格は、各開発者ドキュメントに明示的に保存されています。スター数、フォロワー数、プロフィールの文章から推測しないでください。

{
   "login": "example",
   "specialTags": ["github-star", "microsoft-mvp", "aws-community-builder"]
}

対応 ID:github-star、microsoft-mvp、google-developer-expert、docker-captain、cncf-ambassador、aws-hero、aws-community-builder。従来の docker-champion ID も引き続きサポートされます。アップロードスクリプトはこのフィールドをソース JSON から保持し、一覧、詳細、検索の各 API は Cosmos DB からこのフィールドを取得します。

公式の GitHub Stars、Google Developer Experts、CNCF Ambassadors の名簿から、GitHub ログイン名が正確に一致するものを登録します:

npm run populate-special-tags             # Dry run
npm run populate-special-tags -- --apply  # Patch verified matches in Cosmos DB

このコマンドは既存のタグを保持し、何度実行しても結果は変わりません。その他の認定資格については、開発者の GitHub アカウントを明示的に特定している公式プロフィールが必要です。表示名との照合で登録しないでください。

📁 プロジェクト構成

├── index.html                  # Entry HTML
├── src/
│   ├── main.jsx                # Application bootstrap
│   ├── App.jsx                 # Root component, data loading
│   ├── components/
│   │   ├── Globe.jsx           # 3D globe (react-globe.gl)
│   │   ├── Leaderboard.jsx     # Ranked sidebar with filters
│   │   ├── SearchBar.jsx       # Hybrid/vector search input
│   │   ├── DetailPanel.jsx     # Developer detail card
│   │   ├── Header.jsx          # Top bar with branding
│   │   └── LoadingOverlay.jsx  # Loading state
│   └── utils/
│       ├── scoring.js          # Composite scoring algorithm
│       └── format.js           # Number formatting helpers
├── api/
│   ├── developers.js           # List all developers
│   ├── developer.js            # Single developer lookup
│   └── search.js               # Cosmos DB vector/hybrid search
├── scripts/                    # Data pipeline scripts
├── styles/main.css             # Dark theme styles
└── data/
    └── developers-sample.json  # Sample data for local dev

🌍 Azure Container Apps へのデプロイ

main へのプッシュをトリガーに、Azure Container Registry でスタンドアロンの Next.js イメージをビルドし、GitHub Actions OIDC を通じて Azure Container Apps にデプロイします。デプロイ用の ID には、アプリケーションのリソースグループにスコープを限定した Contributor アクセスと、次のリポジトリ変数が必要です:AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_SUBSCRIPTION_ID。

必須の環境変数:

変数用途
COSMOS_ENDPOINTAzure Cosmos DB エンドポイント
COSMOS_KEYAzure Cosmos DB キー
COSMOS_DATABASEデータベース名
COSMOS_CONTAINERコンテナー名
COSMOS_ACTIVITY_CONTAINERGitHub アクティビティのローリングコンテナー(activities)
COSMOS_CONTACTS_CONTAINER非公開のライフサイクルメール連絡先コンテナー(developer-contacts)
COSMOS_ENGAGEMENT_CONTAINERプライバシーフィルター適用済みのエンゲージメントイベント(デフォルト:engagement-events)
COSMOS_CONTRIBUTION_STATE_CONTAINERGitHub 推奨の共有クォータ状態(デフォルト:contribution-opportunity-state)
ENGAGEMENT_HASH_SECRETセッションウィンドウの重複排除用 HMAC シークレット。デフォルトは SESSION_SECRET です
ACTIVITY_INGEST_SECRETアクティビティ収集エンドポイント用ベアラーシークレット
RESEND_API_KEYclaim メールと承認メール用のオプションの Resend API キー
EMAIL_FROMResend で検証済みのドメイン上の送信者
COSMOS_WATCHLIST_CONTAINERオプションの非公開ウォッチリストコンテナー名(デフォルト:watchlists)
COSMOS_IMPACT_HISTORY_CONTAINERオプションのインパクトスナップショットコンテナー名(デフォルト:impact-history)
COSMOS_LIVE_PRESENCE_CONTAINERオプトイン式のライブハートビートコンテナー(デフォルト:live-presence)
COSMOS_CODING_STATS_CONTAINER非公開の日次コーディング集計(デフォルト:coding-stats)
CRON_SECRET保護された cron エンドポイントと Azure Timer Functions で共有するベアラートークン
EMAIL_PREFERENCE_SECRET週次メールの配信停止リンク用 HMAC シークレット。デフォルトは SESSION_SECRET です

ライフサイクルメールはトランザクションメールであり、可能な範囲で送信されます。claim には、GitHub OAuth を通じて認証された検証済みのプライマリメールアドレスを使用します。自薦の場合は、通知先として明示的に同意を得たメールアドレスを収集します。メールアドレスは非公開の developer-contacts コンテナーにのみ保存され、公開 API から公開されたり、開発者ドキュメントにコピーされたりすることはありません。デプロイ前にコンテナーを作成してください:

npm run setup-contacts-container

ライフサイクルメールの PRDを参照してください。

claim 済みプロフィールの表示インサイトでは、ハッシュ化されたセッション ID を含む許可リスト登録済みのエンゲージメントイベントを使用します。デプロイ前に node scripts/setup-engagement-container.js を実行して、TTL が有効なコンテナーを作成してください。イベントの意味、プライバシーのしきい値、削除動作については、エンゲージメント分析の仕様を参照してください。

claim 済みの開発者は、パーソナライズされたオープンソース貢献の推奨を設定することもできます。候補は、貢献ガイドラインのあるリポジトリ内の、公開されていて新しく、未割り当ての GitHub イシューのみです。デプロイ前に node scripts/setup-contribution-state-container.js を実行して、共有クォータ状態コンテナーを作成してください。貢献機会の仕様を参照してください。

検証済みユーザーは、ユーザーメニューから月曜日の週次ダイジェストを明示的にオプトインできます。初回の実行では、メールを送信せずに非公開の比較基準を記録します。それ以降のメッセージは、順位の変動、新しい貢献機会、または保留中の紹介リクエストがある場合に送信され、該当するアクションへの、送信元を示すディープリンクが含まれます。Azure Functions アプリは、毎週月曜日の 13:00 UTC に /api/cron/weekly-digest を呼び出します。対象となるのは、productUpdatesEnabled: true の検証済み連絡先のみです。各メッセージにはユーザーごと、週ごとの冪等性キーが使用され、ワンクリック配信停止ヘッダーと署名付き配信停止リンクが含まれます。

公開されている未 claim のプロフィールをもとに、手動確認用のアクティベーションキューと週次ソーシャルスポットライトを生成します:

npm run activation-campaign -- --limit=100 --output=data/activation-campaign.json

このコマンドは Cosmos DB に対して読み取り専用で動作し、メッセージの送信や非公開の連絡先情報の取得は行いません。開発者に連絡する前に、各下書きを確認し、適切な公開チャネルを通じて連絡してください。

開発者のリアルタイムアクティビティ

アクティビティタブは匿名で、インデックス登録された開発者の過去24時間のローリングフィードを表示します。デプロイ前に専用の Cosmos コンテナーを作成してください。

npm run setup-activity-container

functions/activity-ingest を Azure Timer Function としてデプロイし、以下のアプリケーション設定を構成してください。

ACTIVITY_INGEST_URL=https://your-site.example/api/activities/ingest
ACTIVITY_INGEST_SECRET=the-same-secret-configured-on-the-site

タイマーは毎分コレクターを実行します。これは GitHub が公表しているポーリング間隔に一致します。GitHub の公開 Events API はベストエフォートであり、イベントの遅延や欠落が発生する場合があります。ブラウザーが15秒ごとに更新されても、その間隔内に GitHub からデータが届くことは保証されません。3ページすべてを収集するには、有効な GITHUB_TOKEN が必要です。匿名の場合は1ページのみを確認します。Cosmos アクティビティコンテナーの TTL は48時間ですが、API が公開するのは直近24時間分のみです。

リアルタイムのコーディング状況と非公開の統計

/space の地球儀には、開発者がアクティブな間、DevGlobe エディター拡張機能から30秒ごとにオプトインのハートビートが送信されます。エディターのアクティビティが1分間ないと、ハートビートは一時停止します。プレゼンスは90秒間リアルタイムで表示され、その後も最大15分間、最近コーディングしていた状態として表示されます。開発者は、範囲が制限されたコーディング状況を共有したり、使用中のコーディングエージェントとモデルを明示したり、25分または50分の集中セッションに参加したり、サインインユーザーからレート制限付きのウェーブを受け取ったりできます。同じ言語を使用する集中状態の開発者同士は、一時的に地球儀上でつながります。プレゼンスを停止すると、非公開の交流レポートが表示されます。1日のコーディング時間、連続記録、実績、言語別の時間、エディター使用時間は、有効なハートビートが連続した場合のみ算出され、サインイン中の開発者本人だけが確認できます。この機能では、DevGlobe がエージェントの使用状況を推測したり、ソースコード、ファイルパス、リポジトリ、ブランチ、プロンプト、応答、モデルの通信、キーストロークを収集したりすることはありません。

本番環境でこの機能を有効にする前に、TTL を有効にした両方のコンテナーをプロビジョニングしてください。

npm run setup-live-presence-container
npm run setup-coding-stats-container

エディターディレクトリでは、VS Code、Cursor、Windsurf、VSCodium、Positron、Void、Antigravity 向けに、それぞれに合わせたインストール方法を案内しています。リリース v0.6.0 は Marketplace と GitHub Releases の両方から入手できます。同じ VSIX は互換性のある VS Code フォークでも使用できます。Open VSX への公開には、devglobedev 名前空間と OVSX_PAT リポジトリシークレットが必要です。

Publish editor extension ワークフローを手動で実行して、1つの成果物の検証とパッケージ化を行い、その後、GitHub Release、Visual Studio Marketplace、Open VSX のいずれかを公開先として選択してください。公開者の認証情報は、VSCE_PAT と OVSX_PAT の GitHub Actions シークレットにのみ保存してください。

インパクト履歴の取得

functions ディレクトリを Azure Function App にデプロイし、15分間隔のインパクト履歴タイマー用に以下のアプリケーション設定を構成してください。

IMPACT_HISTORY_URL=https://www.devglobe.dev/api/cron/impact-history
CRON_SECRET=the-same-secret-configured-on-the-container-app

タイマーは、RU の上限を考慮したバッチ処理で、現在の UTC 日の取得を再開します。Cosmos の処理は Next.js エンドポイントが実行するため、IMPACT_HISTORY_CONCURRENCY と IMPACT_HISTORY_BATCH_SIZE は Container App に設定してください。

メール確認リマインダー

Azure Functions アプリは、保護されたリマインダーエンドポイントを毎日14:00 UTCに呼び出します。アプリケーションは、トランザクションメールへの同意があり、過去72時間以内にリマインダーを受け取っていない未確認の連絡先にのみリマインダーを送信します。確認済みの連絡先には、直ちにリマインダーが送信されなくなります。

Azure Function App に以下のアプリケーション設定を構成してください。

EMAIL_VERIFICATION_REMINDERS_URL=https://www.devglobe.dev/api/cron/email-verification-reminders
WEEKLY_DIGEST_URL=https://www.devglobe.dev/api/cron/weekly-digest
CRON_SECRET=the-same-secret-configured-on-the-container-app

各タイマーとその function.json が含まれるよう、functions ディレクトリ全体をデプロイしてください。

DevGlobe を支援する

DevGlobe は独立して保守されており、無料で利用できます。GitHub スポンサーシップは、Azure のホスティングとオブザーバビリティ、公開データの更新、GitHub API を利用した処理、セキュリティ更新、テスト、オープンソースの保守に役立てられます。

スポンサーシップが開発者のランキング、検索結果での表示順、モデレーション、非公開の開発者情報へのアクセスに影響することはありません。ティア、特典、費用、現在のマイルストーンについては、資金調達と透明性に関するポリシーをご覧ください。

🤝 貢献

コントリビューションを歓迎します!セットアップ手順と、支援が必要な分野についてはCONTRIBUTING.mdをご覧ください。

🤖 MCP サーバー

DevGlobe は、公開されている開発者の検索と、同意を得たエージェントの紹介に対応する、ホスト型の Streamable HTTP MCP エンドポイントを提供します。

https://www.devglobe.dev/mcp

公開検索とプロフィールの参照は匿名で利用できます。紹介リクエストの送信とステータスの確認には、発行済みのエージェント認証情報が必要です。リモート MCP に対応していないクライアント向けに、ローカルの stdio コネクターも引き続き利用できます。

npm run mcp

認証情報のプロビジョニング、Cosmos DB のセットアップ、クライアントの設定、同意のライフサイクルについては、docs/mcp-server.mdをご覧ください。機械可読なディスカバリー、WebMCP、外部 DNS-AID のデプロイ手順については、docs/agent-readiness.mdに記載されています。

📄 ライセンス

MIT — 詳細についてはLICENSEをご覧ください。


**⭐ このリポジトリにスターを付ける**と、役に立ったことを伝えられます!

@sajeetharan が ❤️ を込めて開発しました

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。