DevGlobe

io.github.sajeetharanPublished by GitHub account sajeetharanv1.5.1Updated Nov 3, 2026

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

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingKnowledge & Memory

Overview

AI-generated overview

A hosted MCP endpoint over DevGlobe's open-source talent graph, letting an assistant search public developer profiles and request consent-gated introductions.

What you can do
Search and look up public developer profiles by skill, location, language or topic, drawing on a graph of 26,000+ developers ranked by stars, commits, repo reach and StackOverflow reputation. Retrieve profile details such as scores, top repositories and contribution breakdowns. Request developer-approved introductions and poll their status, which requires an issued agent credential.
When to use it
Useful when you want an assistant to find human collaborators or experts with specific skills or in a given location, or to start a consent-based introduction to a developer. Public search and profile lookup work anonymously; introductions need a credential.
Requirements
Remote Streamable HTTP endpoint at the hosted DevGlobe address; no credentials needed for public search and profile lookup. Introduction requests and status polling require an issued agent credential. A local stdio connector is available for clients without remote MCP support.
Before you install
Introduction requests contact real developers and are consent-gated, so only send them with clear intent. The service holds public profile data and, per its documentation, private contact and coding-stat data for its own site features; the MCP endpoint is described as exposing public profiles only. Treat any agent credential as a secret.

Installation

In SourceWeft

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

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.sajeetharan%2Fdevglobe/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

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

Source: README.md at commit b1e58d3

Tools

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}.

ParameterslimitqueryrequiredlanguagelocationopportunityTypeavailableForAgents

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"}.

Parametersloginrequired

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}.

Parameterslimitloginrequired

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}.

Parameterslimitrepositoryrequired

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"}.

Parametersloginrequired

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"}.

ParametersreasonrequiredprojectrequireddeveloperLoginrequired

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.

ParametersidrequireddeveloperLoginrequired

Version history

1
  1. v1.5.1LatestSep 16, 2026

Score

100% 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 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts