Nostr ecosystem observatory methodology included

Nostr data your agent can instantly work with.

MCP endpoints over key Nostr domains: Zapstore app economy, Marketplaces, Cashu nutzaps, Lightning providers, and more. No API key, no data infrastructure to run. Every response carries the methodology that explains to the agent how to reason through the data.

https://nostrolo.gy/mcp
or browse it yourself →
nostrology · streamable http nostrology-mcp
$ claude mcp add --transport http nostrology https://nostrolo.gy/mcp
Added nostrology - 3 tools (1 paid), 1 resource, no auth

> Which apps do Nostr users actually put in their public app stacks?

tool nostrology_query_metric { metric: "app_stack_count" }

metric: zapstore.app_stack_count | grain: current | unit: stacks
state: current snapshot, no time axis - never summed across calls
methodology: distinct kind-30267 (zapstore-app-stacks) lists referencing each app.

app_name              stack_count
Amber                          57
Amethyst                       46
Zapstore                       32
bitchat                        25

answer a snapshot, so the agent knows not to trend it.
01 Where it comes from

Computed ground up from Nostr events, not from somebody's summary.

Every figure traces back to Nostr events we read off the relays ourselves - no third-party index in the chain, and no number without the rule that produced it.

01 acquire

Straight off the relays

Continuous raw Nostr event acquisition across public relays.

02 archive

Scalable engine

Data engine that scales with the growth of the Nostr network itself.

03 derive

Documented methodology

Each metric states its population, its partition, and what it deliberately excludes.

04 serve

Charts and MCP, one source

Same underlying data powering MCP and the charts, so they cannot disagree.

02 Connect

One line in whatever harness you already run.

claude mcp add --transport http nostrology https://nostrolo.gy/mcp

Applies to new sessions. An agent with shell access can run this itself.

Streamable HTTP, so native remote-MCP clients take the URL directly.

Harness has no remote-MCP support?

Bridge the endpoint into a local stdio server with mcp-remote:

npx mcp-remote https://nostrolo.gy/mcp
03 The machine surface

Three tools. Ten metrics. Three reference records.

Deliberately small: each tool routes its whole family by one parameter - metric or record - so an agent learns the surface once instead of memorising a dozen endpoints. Two are free. The third is priced in ecash, and tells you the price for nothing.

nostrology_query_metric

Nine quantitative metrics in three families, all from the same archive.

  • Publishing - new native and republished apps, release counts, as daily series.
  • Zaps - receipts and amounts in millisats, over a different row population that never reconciles with publishing.
  • Leaderboards - per-app zaps, app stacks, publisher app counts, with publisher and app filters.

nostrology_query_reference

Three qualitative records - entity data, no measures.

  • app_catalog - the current catalog entry per app.
  • publisher_profile - the current profile per publisher key.
  • app_releases - release listing, newest first, windowable.
Every response is wrapped in an envelope
identityscopewindow / statefreshness (as_of) column contractmethodology caveatsuntrusted-text notice explicit truncationpayment receipt (paid calls)

Point an agent at it.

No API key, no signup.

https://nostrolo.gy/mcp