Skip to main content

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)

Tool Source Proxy for
github_repo_signal api.github.com/search developer interest / competition
github_trend api.github.com (created:) supply/interest acceleration (delta)
hn_signal hn.algolia.com (Hacker News) tech-audience attention
hn_trend hn.algolia.com attention acceleration (delta)
npm_downloads api.npmjs.org comparable-product demand
pypi_downloads pypistats.org comparable-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.

Release files for demandscope 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for demandscope 0.3.0
File Size Uploaded
demandscope-0.3.0.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for demandscope 0.3.0
File Interpreter ABI Platform
demandscope-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.4 kB

Release files / demandscope-0.3.0.tar.gz

Download URL demandscope-0.3.0.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
08593cdb00ff6d7f6d1fce611735ffac1e1be59a202f7c025ee4b9bdad6f022c
BLAKE2b-256 checksum
How to use checksums
bc8edef5a642d51ec5fcee849e54b03eae3bc52b2f2194a3052c033ca1fc3663
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / demandscope-0.3.0-py3-none-any.whl

Download URL demandscope-0.3.0-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1fe5d71f9f0fc8f4726dc95b80f9ab8ae70b8f7181dcab316fa1d6838c2f24d8
BLAKE2b-256 checksum
How to use checksums
36562d6c2d5cb6dfb847d811cbcc3148d53a893b00fe39fcf5cd2dd06c2db24f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page