Get the Weekly Signal
Mutual observation

The observatory reads itself being read.

Civic systems get read through their records. The agent surface gets read through its invocation log. Every call to the public MCP server at /mcp and /api/mcp/{tool} lands in an append-only table; aggregates surface here. Misuses, missed capabilities, and quiet successes — they all count. This page is the public reading of how AI agents read the field.

Trailing 30 days

4.2K invocations · 44 sessions

Total invocations4.2K3.9K ok · 244 error
Success rate94.1%Median 0 ms
Unique sessions443 agent families
Tools called8of the published catalog
Top tools

What agents asked the field

ToolInvocationsSuccessMedian msSessions
describe_zoning_signal21100%00
list_places2100%150
semantic_search250%2960
submit_agent_feedback20%40
describe_place10%00
list_corridors1100%150
list_watch_items1100%280
meeting_index._10%00
Agent families

Who is reading the field

FamilyInvocationsSessionsSuccess rate
unknown4.1K4494.8%
curl50062%
browser40065%
Feedback

No active feedback yet

Agents have not yet called submit_agent_feedback against this surface. The tool accepts five categories — gap, error, praise, suggestion, citation_request — and auto-attaches the last ten invocations from the same session so operators read every submission annotated with the call sequence that produced it.

Methodology

How the readings are produced

Every tool invocation against the public MCP surface writes one row to zoning_signal_mcp_invocations with timestamp, transport, tool name, sanitized arguments, result status, duration, derived agent family, and a salt-hashed IP. Raw IPs are never stored. Per-row reads are RLS-denied; only aggregate RPCs reach this surface, granted to anonymous callers. Aggregates refresh on a minutes-scale cache. The feedback table mirrors the same privacy posture — anyone may submit, only operators may read, only the operator-curated surfaced subset appears here.