Purpose
mcp-github-organization-signal-scanner is an MCP server used to resolve a company's GitHub organization from its company domain and return repositories, programming languages, and activity signals. It wraps Mamba Labs' GitHub Organization Signal Scanner actor on Apify, outputting one line of Clay-ready flat JSON to any MCP client.
Main capabilities
- Resolve a GitHub organization from a company domain.
- Return repository count, star count, follower count, and primary languages.
- Return recent push activity and repositories active within a specified time window.
- Detect public SDKs as a direct signal of developer toolchain.
- Supports keyless operation, and you can also use your own GitHub token for scaling.
- Candidates rejected by the identity gate are recorded in the github_rejected_candidate field.
- One row per company, 32 flat snake_case fields.
Specifically, after entering a company domain, the tool finds the company's GitHub organization and returns repository count, followers, creation date, primary languages, total stars, most recent push, how many repositories are actively maintained, and whether the company ships a public SDK. One row of flat data per company, read through GitHub's own documented REST API.
Language and star derivations exclude forks and archived repositories, and the exclusion counts are recorded on the row. Rate-limited requests are reported as not_extractable rather than 0, because 0 is a number buyers would use to filter. If the login resolves to a personal user account rather than an organization, it is reported as identity_mismatch. The tool only reads organization and repository metadata: it does not clone repositories, read source code, scan for secrets, or assess code quality. All scans run on Apify; this package is a thin client that calls the actor and returns results as-is.
Usage
Requires Node.js 18 or higher, and an Apify account with an API token. You can add the following configuration to the Claude Desktop config, and at https://console.apify.com/account/integrations get a token, then paste it and restart Claude Desktop to use the scan_github_organization_signals tool.
Optional: your own GitHub personal access token, which can be created for free at github.com/settings/tokens; no scope is required to access public data, and it is used when scanning more than a small number of companies.
Example prompts:
- "Find the GitHub organization for stripe.com and summarize its activity."
- "Scan the GitHub org vercel and tell me its top languages and total stars."
- "Does figma.com ship a public SDK? Check its GitHub organization."
- "Scan notion.so's GitHub org, counting a repo as active if it was pushed in the last 30 days."
Input parameters:
- company_domain (optional): the bare company domain, for example stripe.com. This is the lookup key and the join key for other actors in the same suite.
- company_name (optional but strongly recommended): the identity gate uses it to check the discovered record, and it is the most economical way to reduce false matches.
- github_org (optional): if the organization login is already known, for example stripe, entering it makes the tool skip the discovery stage and call the API directly, which is faster and consumes fewer rate-limited requests.
- includeRepoDetail (optional): when true (default), reads the organization's repositories and derives language, star, activity, and SDK signals from them. Setting it to false returns only the organization record, requiring one request instead of many, which is friendlier to unauthenticated rate limits.
- includeContributorEstimate (optional): when true, one additional request reads the contributor count of the organization's most-starred repository, as a floor for its public engineering scale. Default false, because under the 60-per-hour unauthenticated budget, one extra per companyRequests are the real cost.
- activeWindowDays (optional): How recently a repository must have been pushed to count as active. Options are 30, 90, 180, or 365, default 90. This changes what "active" means on a row.
- repoPageBudget (optional): How many pages of 100 repositories each to read for large organizations. Options are 1, 2, 3, or 5. This is a cost and completeness adjustment knob, not a change to the answer: rows always report how many repositories were sampled and whether the sample is complete.
- githubToken (optional): Your own GitHub personal access token; creating one for access to public data is free and requires no scope. When not provided, the tool runs under GitHub's limit of 60 requests per hour, which is enough to scan a small number of companies but not enough to scan a list; when provided, the limit is 5,000 per hour.
- skipCache (optional): When false (the default), successful queries are cached for seven days and reused. Set to true to force a re-fetch.
Output and Use Cases
The tool returns flat JSON rows for the company's actors, 32 snake_case fields, with no nested objects. github_discovery explains how the organization was discovered, github_rejected_candidate records candidates rejected by the identity gate, repos_sampled and repos_complete explain how much of the organization was read, and repos_excluded counts excluded forks and archived repositories. See the Apify Store page for the full output schema. This server is one of the MCP servers in the Mamba Labs GTM Suite; every actor in the suite accepts a domain or company and returns one row of flat data, so they can be stacked in the same Clay table without refactoring.
Limitations
The tool only reads organization and repository metadata; it does not clone repositories, read source code, scan for secrets, or evaluate code quality. It relies on Apify to run scans and is subject to GitHub API rate limits. For pricing, the full input and output reference, and run history, see the Apify Store page:https://apify.com/mambalabs/github-organization-signal-scanner