Developers & Agents

The idea database is an API.

Everything a human can read here, an agent can read structurally: JSON feeds, Markdown dossiers, RSS, and an MCP server. All static, all free, no key, no rate-limit games — and the site itself never calls a paid API.

Endpoints

Machine-readable surfaces.

All endpoints are statically generated at publish time and update with the daily pipeline.

/ideas.json

Every published idea: slug, title, vertical, buyer, problem, tags, validation verdict, lifecycle stage, and timing score.

/ideas/<slug>.json

One full report: complete research frontmatter plus derived economics, 7-day sprint, first-contact kit, lifecycle timing, pivot map, and vertical context.

/ideas/<slug>.md

The same dossier as Markdown - report body plus derived deliverables. Ideal for agent handoffs.

/ideas/<slug>.ics

Calendar handoff: one all-day event per execution milestone, with a validation-test reminder.

/ideas/<slug>/backlog.json

GitHub/Linear backlog scaffold: normalized issues, labels, milestone grouping, and copy-ready CLI scripts.

/dossiers/<slug>.pdf

Pipeline-generated decision dossier PDF for forwarding to co-founders, angels, or accelerators.

/verticals.json

Cross-vertical intelligence: opportunity scores, verdict mixes, pain points, whitespace signals.

/graph.json

The intelligence graph: typed entities (ideas, verticals, complaint clusters, trends, tools, personas, keywords, communities) and provenance-stamped edges between them (INAV-GRAPH-1).

/changes.json

Entity-level change ledger, newest first: what was added, updated, or removed in the graph, with field-level diffs (INAV-CHANGES-1).

/distribution.json

Verified syndication distribution: placements, live/backlink rates, and reach by vertical (INAV-DISTRIBUTION-1).

/cohorts.json

Vintage cohort aging curves: publish-week rows with 30/60/90-day signal survival (INAV-COHORT-AGING-1).

/manifest.json

Cryptographic snapshot manifest: SHA-256 hashes for canonical machine endpoints plus a top digest (INAV-MANIFEST-1).

/collections.json

Auto-curated collections with current membership.

/weekly.json

The weekly State of the Opportunity Map brief, with trailing history.

/build-claims.json

Approved build-in-public claims (human-reviewed).

/search-index.json

The prebuilt site-wide search index: ideas, verticals, playbooks, collections, tags, pages.

/playbooks/<vertical>.md

Per-vertical go-to-market playbook as Markdown.

/verticals/<vertical>.xml

Per-vertical RSS feed.

/rss.xml

Site-wide RSS feed.

/llms.txt

The agent orientation file: capabilities, URLs, conventions.

MCP server

A read-only MCP server ships in the repository (mcp/ideanavigator-mcp.mjs) and consumes the public endpoints — no API key, no cost. It exposes 18 read-only tools:

  • ideanavigator_search — search everything (ideas, verticals, playbooks, collections, tags)
  • ideanavigator_list_ideas — filter by vertical, verdict, tag, query, minimum validation score
  • ideanavigator_get_idea — one full report + derived deliverables
  • ideanavigator_get_backlog — normalized GitHub/Linear issue scaffold for one idea
  • ideanavigator_list_verticals — the cross-vertical brief
  • ideanavigator_get_collections — curated collections
  • ideanavigator_get_weekly_brief — the weekly opportunity map
  • ideanavigator_get_playbook — a vertical's go-to-market playbook
  • ideanavigator_get_entity — one graph entity plus its 1-hop neighbors with edge provenance
  • ideanavigator_query_graph — filter graph entities by type, label, or vertical
  • ideanavigator_get_changes — the change ledger, filterable by date, vertical, or entity type
  • ideanavigator_draft_brief — a graph-grounded brief skeleton for a thesis
  • ideanavigator_score_thesis — deterministic self-report scoring against the rubric
  • ideanavigator_get_provenance — evidence-independence breakdown for an idea
  • ideanavigator_verify_snapshot — fetch and optionally compare the manifest digest
  • ideanavigator_get_distribution — verified syndication reach and backlink status
  • ideanavigator_get_cohort_aging — vintage cohort survival curves by publish week
  • ideanavigator_get_timing_window — lifecycle stage and market-timing window for one idea

Setup

# Claude Code
claude mcp add ideanavigator -- node /path/to/ideanavigatorai/mcp/ideanavigator-mcp.mjs

# Claude Desktop (claude_desktop_config.json)
{"mcpServers": {"ideanavigator": {"command": "node", "args": ["/path/to/mcp/ideanavigator-mcp.mjs"]}}}

No server needed beyond Node 20+. Set IDEANAVIGATOR_BASE_URL to point at a staging copy. Source: github.com/MeyerThorsten/ideanavigatorai.

Verify a snapshot

The manifest is generated after every build and hashes the bytes of the canonical JSON endpoints. Pin the top digest, or verify one endpoint directly from the file list.

curl -fsS https://ideanavigatorai.com/manifest.json -o manifest.json
curl -fsS https://ideanavigatorai.com/ideas.json -o ideas.json
EXPECTED=$(node -e "const m=require('./manifest.json'); console.log(m.files.find(f => f.path === '/ideas.json').sha256)")
printf "%s  ideas.json\n" "$EXPECTED" | sha256sum -c -

Snapshot contract

  • schemaVersion is INAV-MANIFEST-1.
  • files[] contains path, SHA-256, and byte count for each endpoint.
  • digest is the hash-of-hashes for the listed endpoint hashes.
  • /manifest.txt is a one-line citation form for logs and release notes.

Conventions

  • Slugs are stable; URLs are permanent once published.
  • Validation verdicts: Build / Validate / Research / Rethink on a versioned five-criterion rubric.
  • Derived data (economics, sprints, pivots) is deterministic arithmetic over each report's own fields — clearly labeled, never fabricated market sizing.
  • Everything regenerates with the daily publish (06:17 Europe/Berlin).

Write paths (rate-limited, human-reviewed)

  • POST /api/subscribe.php — newsletter signup {email, source}
  • POST /api/research-request.php — submit an idea for a full generated report
  • POST /api/build-claim.php — claim an idea you're building
  • POST /api/webhook-subscribe.php — register a signed outbound webhook for matching /changes.json entries

All four store to moderated queues; nothing user-submitted publishes without review.

Webhook recipe: Slack

Register a Slack relay URL with a monitor selection. The Mac mini dispatcher sends X-INAV-Signature: sha256=<hmac> over the stable JSON body.

curl -X POST https://ideanavigatorai.com/api/webhook-subscribe.php \
  -H 'content-type: application/json' \
  -d '{"targetUrl":"https://hooks.example.com/slack-relay","secret":"replace-with-32-random-chars","selection":{"verticals":["software-ai"],"entityTypes":["idea"],"entityIds":[]}}'

Relay formatter:
text = "IdeaNavigator changes: " + payload.count + " new match(es)\n" +
  payload.changes.map(change => "- " + change.summary + " (" + change.observedAt + ")").join("\n")

Webhook recipe: Notion

Point the target at your own small Notion relay. Verify the signature, then create one database row per change with observed date, entity id, vertical, and summary.

expected = "sha256=" + hmac_sha256(secret, raw_body)
assert timing_safe_equal(headers["x-inav-signature"], expected)

for change in payload.changes:
  notion.pages.create({
    "Observed": change.observedAt,
    "Entity": change.entityId,
    "Vertical": change.vertical or "",
    "Summary": change.summary
  })