Back to Directory/Developer Tools

DemandScope

Live demand signals for idea validation: npm/PyPI downloads, GitHub + HN attention trends.

Developer ToolsPythonv0.3.0

DemandScope

Public-API demand-signal scanner for validating digital-product and dev-tool ideas, plus a dependency-free MCP (Model Context Protocol) stdio server that exposes the signals as tools any MCP-compatible agent can call.

Transparency notice: this project is built, tested, and maintained by an autonomous AI agent (Hermes, by Nous Research) operating in the Autonomous Income Research Lab. A human owner reviews and authorizes external actions.

Why

Built by the Autonomous Income Research Lab (2026-08-17) as its first product prototype: demand validation for niche dev tools is itself a recurring need for indie builders, and MCP integrations are a fast-growing ecosystem (evidence: research/2026-08-17-opportunity-scan.md).

Signals (all free, no-auth, ToS-friendly APIs)

ToolSourceProxy for
github_repo_signalapi.github.com/searchdeveloper interest / competition
github_trendapi.github.com (created:)supply/interest acceleration (delta)
hn_signalhn.algolia.com (Hacker News)tech-audience attention
hn_trendhn.algolia.comattention acceleration (delta)
npm_downloadsapi.npmjs.orgcomparable-product demand
pypi_downloadspypistats.orgcomparable-product demand

Absolute download counts include CI/mirror traffic — use directionally, not as exact market sizes. Trend tools return growth_ratio (current window ÷ prior window); >1 means accelerating.

Reliability (v0.2)

  • Cache: file-based TTL cache (DEMANDSCOPE_CACHE_DIR, default .cache/demandscope). TTLs: GitHub/HN 1h, npm/PyPI 24h. Repeat calls are free and instant.
  • Backoff: exponential retry (max 4) on HTTP 429/5xx, honoring Retry-After. pypistats is treated as best-effort.

Usage

CLI-style (batch scan):

python3 ../demand-scanner/demand_scanner.py candidates.json out/

As an MCP server (newline-delimited JSON-RPC 2.0 over stdio):

python3 mcp_server.py

MCP client config example:

{"mcpServers": {"demandscope": {"command": "python3", "args": ["/path/to/mcp_server.py"]}}}

MCP Registry / MCPB bundle

DemandScope is published to the official MCP Registry as io.github.baobabcat/demandscope. Each release attaches a deterministic, one-click-installable MCP Bundle (demandscope.mcpb, spec 0.3) built by scripts/build_mcpb.py; publishing runs from CI via GitHub OIDC (.github/workflows/publish-mcp.yml, no stored secrets). The registry manifest (server.json) is validated with mcp-registry-lint and mcp-publisher validate before every publish.

Tests

python3 test_mcp_server.py

10 end-to-end protocol tests (handshake, notifications, ping, tools/list, tools/call incl. trend + cache-hit assertion, error paths). Network needed for the npm_downloads and hn_trend call tests.

Status / roadmap

  • v0.3 (2026-08-20): MCPB bundle + official MCP Registry publishing via GitHub OIDC (server.json, deterministic scripts/build_mcpb.py, tag-triggered publish workflow with rollback). 10/10 tests pass.
  • v0.2 (2026-08-17): trend-delta tools (github_trend, hn_trend), TTL cache + rate-limit backoff, pyproject.toml packaging, MIT license. 10/10 tests pass.
  • v0.1 (2026-08-17): protocol subset initialize, ping, tools/list, tools/call; 4 signal tools.
  • Next: resources support, hosted HTTP transport, second asset (mcp-registry-lint) in the lab pipeline.

Setup from the maintainer

This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.

Package

https://github.com/baobabcat/demandscope/releases/download/v0.3.0/demandscope.mcpbother

Compatible MCP Clients

DemandScope works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More