DevGlobe

io.github.sajeetharan由 GitHub 帳號 sajeetharan 發布v1.5.1更新於 Nov 3, 2026

The open-source talent graph for humans and AI agents. Find developers.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取知識與記憶

概覽

AI 產生的概覽

以 DevGlobe 開源人才圖譜為基礎的託管 MCP 端點,讓助理搜尋公開開發者檔案並發起需經本人同意的引薦。

可以做什麼
依技能、地點、語言或主題搜尋與查詢公開開發者檔案,資料來自 26,000 多名開發者、依星標、提交、儲存庫影響力與 StackOverflow 聲譽排名的圖譜。取得檔案詳情,例如評分、主要儲存庫與貢獻組成。發起經開發者批准的引薦並查詢其狀態,此功能需要已簽發的代理憑證。
適用情境
適合讓助理尋找具備特定技能或位於特定地點的人類協作者或專家,或發起基於同意的開發者引薦。公開搜尋與檔案查詢可匿名使用;引薦需要憑證。
執行需求
使用 DevGlobe 託管位址的遠端 Streamable HTTP 端點;公開搜尋與檔案查詢無需憑證。引薦請求與狀態查詢需要已簽發的代理憑證。不支援遠端 MCP 的用戶端可使用本機 stdio 連接器。
安裝前請注意
引薦請求會聯繫真實開發者且需本人同意,應僅在意圖明確時送出。此服務持有公開檔案資料,依其文件還為自身網站功能保存私密聯絡方式與編碼統計資料;MCP 端點據稱只揭露公開檔案。請將任何代理憑證視為機密。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 DevGlobe,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.sajeetharan%2Fdevglobe/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "devglobe": {
      "type": "http",
      "url": "https://www.devglobe.dev/mcp"
    }
  }
}

README

🌐 DevGlobe

The open-source talent graph for humans and AI agents.

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

[DevGlobe Demo]

26,000+ developers · ranked by stars, commits, repo reach & StackOverflow reputation · searchable by skill, location & language

DevGlobe is the open-source talent graph for humans and AI agents. It combines a 3D developer map with Azure Cosmos DB vector and hybrid search to surface relevant expertise from real contribution signals rather than popularity alone. The long-term vision is a consent-aware discovery layer where AI agents can find the right human collaborators.

The dynamic application is hosted on Azure Container Apps. Product, API, MCP, Agent Skill, and agent-readiness documentation is published separately on GitHub Pages.

[!IMPORTANT] Connect an AI agent to DevGlobe: MCP-compatible agents can use the hosted endpoint at https://www.devglobe.dev/mcp to search public developer profiles without credentials. Verified agents can also request developer-approved introductions. See the MCP setup guide.

Show up while you code: Install DevGlobe: Live Coding Globe, choose Go Live, and appear on the globe while building private coding stats. The extension never reads source code, file paths, repositories, branches, or keystrokes.

🎬 Watch the DevGlobe Demo


✨ Features

  • Interactive 3D Globe — Explore developers pinned to their real-world locations using Three.js
  • AI-Powered Search — Hybrid + vector search via Azure Cosmos DB (e.g. "AI & deep learning", "full stack JS dev")
  • Composite Scoring — Each developer scored 0–100 across 6 dimensions
  • Leaderboard — Filter by country, language, or sort by score/stars/commits
  • Developer Profiles — Click any pin to see detailed stats, top repos, and contribution breakdown
  • Remote MCP Access — Agents can discover developers and request consent-gated introductions through hosted tools
  • VS Code Extension — Go live on the developer globe, build private coding stats, search developers, and configure MCP from the editor
  • Mobile Responsive — Bottom-sheet filters and full-width search on smaller screens

🚀 Quick Start

Option 1: Zero-config (sample data, no database needed)

bash
git clone https://github.com/sajeetharan/devglobe.gitcd devglobenpm installnpm run dev# Open http://localhost:3000

The app automatically falls back to the bundled sample data (20 developers) when no Cosmos DB credentials are configured. No API keys, no emulator, no setup — just clone and run.

Text search works fully offline. Vector/hybrid search requires Azure OpenAI (see Option 3).


Option 2: Cosmos DB Emulator (full database experience locally)

For contributors working on the API layer or data pipeline:

  1. Install the Cosmos DB Emulator — Download here (Windows, macOS via Docker, or Linux Docker)

  2. Start the emulator and wait for it to be ready at https://localhost:8081

  3. Seed sample data into the emulator:

    bash
    npm run seed-emulator
  4. Create .env.local (the seed script prints this for you):

    env
    COSMOS_ENDPOINT=https://localhost:8081COSMOS_KEY=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
  5. Run the app:

    bash
    npm run dev

The emulator key above is Microsoft's well-known emulator key — it is intentionally public and only works locally.


Option 3: Full Azure backend (vector + hybrid search)

For the complete experience including AI-powered search:

env
# .env.localCOSMOS_ENDPOINT=https://your-account.documents.azure.com:443/COSMOS_KEY=your-cosmos-keyAZURE_OPENAI_ENDPOINT=https://your-openai.openai.azure.com/AZURE_OPENAI_KEY=your-openai-keyEMBEDDING_DEPLOYMENT=text-embedding-3-smallAZURE_OPENAI_CHAT_DEPLOYMENT=gpt-4o-mini

AZURE_OPENAI_CHAT_DEPLOYMENT enables generated fun facts on identity cards. Cards use factual profile copy when the chat deployment is unavailable.

Production serves the Next.js application from Azure Container Apps, high-volume public API reads from Azure Functions, and the developer snapshot from Azure Blob Storage. See docs/azure-backend.md for the resource layout, environment switches, and deployment checks.

bash
npm run dev

🏗️ Tech Stack

LayerTechnology
FrontendReact 19, Three.js (react-globe.gl), Next.js 15
SearchAzure Cosmos DB (vector + hybrid search)
APINext.js API Routes
HostingAzure Container Apps and Azure Functions
Data PipelineNode.js scripts (GitHub GraphQL, StackOverflow API, geocoding)

📊 Scoring Formula (0–100)

DimensionWeightSource
GitHub Stars20%Total stars across repos
GitHub Commits20%Yearly commit activity
Repo Reach15%Forks + watchers
SO Reputation25%StackOverflow reputation
SO Engagement15%Answer acceptance × count
Community5%Followers + badges

All dimensions are log-normalized to prevent outlier domination.

🔧 Building the Full Dataset

Requires API keys — copy .env.example to .env and fill in your tokens.

bash
npm run fetch-github          # Fetch top devs from GitHub GraphQLnpm run fetch-stackoverflow   # Enrich with StackOverflow reputationnpm run geocode               # Convert locations to lat/lngnpm run build-data            # Run full pipelinenpm run upload-cosmos         # Upload to Azure Cosmos DB

Developer credentials

Verified community credentials are stored explicitly on each developer document. Do not infer them from stars, followers, or profile text.

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

Supported IDs: github-star, microsoft-mvp, google-developer-expert, docker-captain, cncf-ambassador, aws-hero, and aws-community-builder. The legacy docker-champion ID remains supported. The upload script preserves this field from source JSON, and the list, detail, and search APIs project it from Cosmos DB.

Populate exact GitHub-login matches from the official GitHub Stars, Google Developer Experts, and CNCF Ambassadors rosters:

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

The command preserves existing tags and is idempotent. Other credentials require an official profile that explicitly identifies the developer's GitHub account; do not populate them by matching display names.

📁 Project Structure

├── 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

🌍 Deploy to Azure Container Apps

Pushes to main build the standalone Next.js image in Azure Container Registry and deploy it to Azure Container Apps through GitHub Actions OIDC. The deployment identity requires Contributor access scoped to the application resource group and these repository variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, and AZURE_SUBSCRIPTION_ID.

Required environment variables:

VariablePurpose
COSMOS_ENDPOINTAzure Cosmos DB endpoint
COSMOS_KEYAzure Cosmos DB key
COSMOS_DATABASEDatabase name
COSMOS_CONTAINERContainer name
COSMOS_ACTIVITY_CONTAINERRolling GitHub activity container (activities)
COSMOS_CONTACTS_CONTAINERPrivate lifecycle-email contact container (developer-contacts)
COSMOS_ENGAGEMENT_CONTAINERPrivacy-filtered engagement events (default: engagement-events)
COSMOS_CONTRIBUTION_STATE_CONTAINERShared GitHub recommendation quota state (default: contribution-opportunity-state)
ENGAGEMENT_HASH_SECRETHMAC secret for session-window deduplication; defaults to SESSION_SECRET
ACTIVITY_INGEST_SECRETBearer secret for the activity collector endpoint
RESEND_API_KEYOptional Resend API key for claim and approval emails
EMAIL_FROMSender on a domain verified by Resend
COSMOS_WATCHLIST_CONTAINEROptional private watchlist container name (default: watchlists)
COSMOS_IMPACT_HISTORY_CONTAINEROptional impact snapshot container name (default: impact-history)
COSMOS_LIVE_PRESENCE_CONTAINEROpt-in live heartbeat container (default: live-presence)
COSMOS_CODING_STATS_CONTAINERPrivate daily coding aggregates (default: coding-stats)
CRON_SECRETBearer token shared by protected cron endpoints and Azure Timer Functions
EMAIL_PREFERENCE_SECRETHMAC secret for weekly-email unsubscribe links; defaults to SESSION_SECRET

Lifecycle emails are transactional and best-effort. Claims use the verified primary email authorized through GitHub OAuth; self-nominations collect an explicitly consented notification address. Addresses are stored only in the private developer-contacts container and are never projected by public APIs or copied into developer documents. Create the container before deployment:

bash
npm run setup-contacts-container

See the lifecycle email PRD.

Claimed-profile visibility insights use allow-listed engagement events with hashed session IDs. Create the TTL-enabled container before deployment with node scripts/setup-engagement-container.js. See the engagement analytics contract for event semantics, privacy thresholds, and deletion behavior.

Claimed developers can also configure personalized open-source contribution recommendations. Candidates come only from public, fresh, unassigned GitHub issues in repositories with contribution guidance. Create the shared quota-state container with node scripts/setup-contribution-state-container.js before deployment. See the contribution opportunities contract.

Verified users can explicitly opt in to a Monday weekly digest from the user menu. The first run records a private comparison baseline without sending email; later messages require rank movement, a fresh contribution opportunity, or a pending introduction request and include an attributed deep link to the relevant action. The Azure Functions app invokes /api/cron/weekly-digest at 13:00 UTC each Monday; only verified contacts with productUpdatesEnabled: true are eligible. Each message uses a per-user, per-week idempotency key and includes one-click unsubscribe headers and a signed unsubscribe link.

Generate a manual-review activation queue and weekly social spotlight from public, unclaimed profiles:

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

The command is read-only against Cosmos DB and never sends messages or retrieves private contact details. Review each draft before contacting a developer through an appropriate public channel.

Live developer activity

The Activity tab is anonymous and shows a rolling 24-hour feed for indexed developers. Create its dedicated Cosmos container before deployment:

bash
npm run setup-activity-container

Deploy functions/activity-ingest as an Azure Timer Function and configure these application settings:

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

The timer invokes the collector every minute, matching GitHub's advertised polling interval. GitHub's public Events API is best-effort and may delay or omit events; the 15-second browser refresh does not guarantee GitHub source delivery within that interval. A valid GITHUB_TOKEN is required for full three-page collection; anonymous fallback inspects one page only. The Cosmos activity container uses a 48-hour TTL while the API exposes only the latest 24 hours.

Live coding presence and private stats

The /space globe receives an opt-in heartbeat from the DevGlobe editor extension every 30 seconds while the developer is active. Heartbeats pause after one minute without editor activity. Presence is live for 90 seconds and remains visible as recently coding for up to 15 minutes. Developers can optionally share a bounded coding status, explicitly name a coding agent and model, join a 25- or 50-minute focus session, and receive rate-limited waves from signed-in users. Focused developers using the same language form temporary globe connections, and stopping presence returns a private companionship recap. Daily coding totals, streaks, achievements, language time, and editor time are derived only from consecutive valid heartbeats and are visible only to the signed-in developer. DevGlobe does not infer agent usage or collect source code, file paths, repositories, branches, prompts, responses, model traffic, or keystrokes for this feature.

Provision both TTL-enabled containers before enabling the feature in production:

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

The editor directory provides tailored installation paths for VS Code, Cursor, Windsurf, VSCodium, Positron, Void, and Antigravity. Release v0.6.0 is available from both the Marketplace and GitHub Releases. The same VSIX supports compatible VS Code forks; Open VSX publication requires the devglobedev namespace and an OVSX_PAT repository secret.

Run the Publish editor extension workflow manually to validate and package one artifact, then select GitHub Release, Visual Studio Marketplace, or Open VSX destinations. Store publisher credentials only in the VSCE_PAT and OVSX_PAT GitHub Actions secrets.

Impact history capture

Deploy the functions directory to an Azure Function App and configure these application settings for the 15-minute impact-history timer:

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

The timer resumes the current UTC day's capture in RU-bounded batches. Keep IMPACT_HISTORY_CONCURRENCY and IMPACT_HISTORY_BATCH_SIZE on the Container App because the Next.js endpoint performs the Cosmos work.

Email verification reminders

The Azure Functions app invokes the protected reminder endpoint daily at 14:00 UTC. The application sends reminders only to unverified contacts who consented to transactional email and have not received a reminder in the previous 72 hours; verified contacts stop receiving reminders immediately.

Configure these application settings on the Azure Function App:

env
EMAIL_VERIFICATION_REMINDERS_URL=https://www.devglobe.dev/api/cron/email-verification-remindersWEEKLY_DIGEST_URL=https://www.devglobe.dev/api/cron/weekly-digestCRON_SECRET=the-same-secret-configured-on-the-container-app

Deploy the complete functions directory so each timer and its function.json are included.

Support DevGlobe

DevGlobe is independently maintained and free to use. GitHub sponsorship helps fund Azure hosting and observability, public-data refreshes, GitHub API-backed processing, security updates, testing, and open-source maintenance.

Sponsorship never influences developer rankings, search placement, moderation, or access to private developer information. See the funding and transparency policy for tiers, benefits, costs, and current milestones.

🤝 Contributing

Contributions are welcome! See CONTRIBUTING.md for setup instructions and areas where help is needed.

🤖 MCP Server

DevGlobe exposes a hosted Streamable HTTP MCP endpoint for public developer discovery and consent-gated agent introductions:

text
https://www.devglobe.dev/mcp

Public search and profile lookup work anonymously. Introduction requests and status polling require an issued agent credential. A local stdio connector remains available for clients that do not support remote MCP:

bash
npm run mcp

See docs/mcp-server.md for credential provisioning, Cosmos DB setup, client configuration, and the consent lifecycle. docs/agent-readiness.md documents machine-readable discovery, WebMCP, and the external DNS-AID deployment steps.

📄 License

MIT — see LICENSE for details.


⭐ Star this repo if you find it useful!

Built with ❤️ by @sajeetharan

來源:README.md,提交 b1e58d3

工具

8

search_developers

Use when the user wants to find public developers by skill, name, language, location, agent availability, or active opportunity intent. Start discovery here; no authentication is required. Example: {"query":"TypeScript maintainers","location":"Germany","availableForAgents":true,"limit":5}.

輸入參數limitquery必填languagelocationopportunityTypeavailableForAgents

get_developer_profile

Use when the user names a GitHub login or selects one DevGlobe search result and needs its public profile and contribution evidence. No authentication is required. Example: {"login":"sajeetharan"}.

輸入參數login必填

find_similar_developers

Use when the user wants alternatives similar to a known GitHub login. Similarity uses public repository, language, location, and profile signals and is not a suitability judgment. Example: {"login":"sajeetharan","limit":5}.

輸入參數limitlogin必填

match_developers_to_repository

Use when the user starts with a public GitHub repository and wants relevant indexed developers. Matches public owner, contribution, language, topic, repository, and self-declared opportunity signals; this is not a suitability judgment. Example: {"repository":"owner/repo","limit":10}.

輸入參數limitrepository必填

preview_contribution_mission

Use when the user wants one concrete open-source contribution opportunity for an indexed GitHub login. Read-only, rate limited, and does not reserve the issue. Example: {"login":"sajeetharan"}.

輸入參數login必填

request_introduction

Use only after the user explicitly asks to contact an opted-in developer. Requires a bearer token, creates a consent-gated pending request, and never returns private contact details. Example: {"developerLogin":"octocat","reason":"We would like help maintaining our open-source React library.","project":"Example UI"}.

輸入參數reason必填project必填developerLogin必填

get_introduction_status

Use after request_introduction to check a request created by the same authenticated agent. An accepted request returns only the public GitHub contact route.

輸入參數id必填developerLogin必填

版本歷史

1
  1. v1.5.1最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分