996.fm perspective graph
Server Details
Dated, attributed founder and investor positions — the disagreement, with timestamped receipts.
- Status
- Healthy
- Uptime
- 99.9% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a distinct retrieval mode: routing dilemmas to debates, browsing the registry, listing complete stances, pulling one claim's context, and tracing a speaker's evolution. Where outputs overlap, descriptions explicitly disambiguate them, such as find_perspectives returning a sample versus get_stances returning the complete set.
All five tools follow a consistent lowercase snake_case verb_noun pattern: find_perspectives, get_context, get_stances, list_debates, trace_evolution. The verbs clearly describe the action and the nouns clearly identify the object.
Five tools is well-scoped for a read-only perspective graph server. Each tool earns its place by covering a distinct access path without redundancy or bloat.
The tool set covers the full read path: discover debates, route a dilemma to relevant debates, retrieve complete stances, inspect a claim in context, and track a speaker's evolution over time. For a read-only knowledge graph, there are no obvious dead ends or missing operations that would block a founder's workflow.
Available Tools
5 toolsfind_perspectivesFind perspectivesARead-onlyInspect
Route a founder's dilemma to the debates that genuinely bear on it. Present the readings SEPARATELY — never merge them into one answer. Respect the question's altitude: scale-up material does not answer a pre-PMF dilemma. When coverage is thin it says so — advise from general knowledge rather than stretching a weak match. Returns ≤4 debates and ≤36 stances — a sample, not the full set; get_stances(debate_id) has a debate's complete stances, each with speaker, date, strength and a receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | The founder's question or dilemma, with a line of context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavior an agent could not infer: bounded output (≤4 debates, ≤36 stances), never merging readings, respecting question altitude, and admitting thin coverage before falling back to general knowledge. This far exceeds the safety profile already carried by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly 90 words, front-loaded with the core routing purpose, then behavioral constraints, output bounds, and sibling pointer in logical order. Every sentence carries a distinct job — presentation rule, altitude rule, coverage honesty, sample limits, and the get_stances handoff — with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining returns, and it does so via explicit bounds (≤4 debates, ≤36 stances) and sample semantics, then routes to get_stances for complete data with its constituent fields (speaker, date, strength, receipt). An agent has everything needed to invoke this tool correctly, interpret its output, and escalate when necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 — the schema already defines 'topic' as the founder's question with a line of context. The description weakly reinforces this by adding the altitude constraint on what makes a legitimate topic, but it supplies no extra syntax, formatting, or example guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Route a founder's dilemma') and resource ('the debates that genuinely bear on it'), immediately establishing what the tool does. It also distinguishes itself from the get_stances sibling by calling its own output 'a sample, not the full set,' so an agent can't confuse the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context on when to rely on this tool (matching a dilemma to relevant debates) and explicitly names get_stances(debate_id) as the route to complete stances for a debate. The altitude and thin-coverage rules add behavioral do's and don'ts, but there is no explicit exclusion of list_debates, get_context, or trace_evolution, leaving some sibling differentiation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contextGet the transcript around a claimARead-onlyIdempotentInspect
The transcript around one claim — the moment in context, with its receipt. Spoken: the episode's public transcript, windowed ±90s around the claim's timestamp. Written (an essay): the verbatim excerpt snapshotted at digest plus a link into the original; never the surrounding text, never a live fetch. Quote the receipt — episode + timestamp, or essay link + excerpt — so the founder can check the moment.
| Name | Required | Description | Default |
|---|---|---|---|
| claim_id | Yes | Claim id from any tool that returned a card, e.g. clm-5p0ken01 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as safe. The description adds value by disclosing that written content returns a verbatim excerpt plus a link, and explicitly states 'never the surrounding text, never a live fetch' – behavior not captured in annotations. It also instructs quoting the receipt for verification, adding practical context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, efficient and front-loaded with the core purpose. The spoken/written distinction is clearly organized. Some redundancy exists ('the moment in context' and 'transcript around one claim'), but overall it's tight and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the description covers what is returned (transcript window, excerpt, link) and how to use the receipt. It doesn't mention potential error cases, but those aren't essential. It's sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – claim_id is fully described in the schema with an example. The description does not add any additional semantic detail about the parameter beyond what the schema already provides. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'The transcript around one claim'. It clearly identifies what the tool returns (transcript context) and differentiates the spoken vs written cases, which helps the agent understand the exact scope. Siblings like find_perspectives and get_stances are about different resources, so this stands distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use the tool (to get the transcript around a claim) and explains the two content types (spoken vs written) with specific behavior (windowed ±90s, excerpt snapshot). It does not explicitly mention when NOT to use it or name alternative tools, but the guidance is strong enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stancesGet stances on a debateARead-onlyIdempotentInspect
Every stance on one debate, grouped by reading — raw material for your own who-would-push-back read. No synthesis. Attribute and date every position (dates are episode publication dates); keep hedged claims hedged. The graph never says who opposes whom — work out yourself which positions push back on the founder's leaning, and name them.
| Name | Required | Description | Default |
|---|---|---|---|
| debate_id | Yes | Debate id from find_perspectives or list_debates, e.g. deb-3f9c1a2b |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description adds critical behavioral details: it returns positions with attribution and dates (episode publication dates), preserves hedged claims, groups by reading, and explicitly does not provide opposition relationships. This goes well beyond what annotations convey and fully discloses output characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences deliver dense, relevant information without waste. The core purpose is stated first, followed by output behavior and a key limitation. Every clause earns its place, and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully specifies what the tool returns: stances grouped by reading, with attribution and dates, no synthesis, and no opposition mapping. It also clarifies the intended use case. Given the tool's simplicity (one parameter), nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter debate_id is already well-documented with origin and example. The description adds no additional parameter-level meaning, which is acceptable given the high schema coverage, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns every stance on a single debate, grouped by reading, and explicitly distinguishes it from synthesis or analysis. The verb 'get' and resource 'stances on a debate' are specific, and the phrase 'No synthesis' sets it apart from sibling tools like find_perspectives or trace_evolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when to use this tool: as raw material for the agent's own push-back analysis, not for pre-digested conclusions. It also warns that the graph does not say who opposes whom, implying the agent must do that reasoning itself. It does not name specific sibling alternatives, but the context is clear enough to avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_debatesBrowse debatesARead-onlyIdempotentInspect
Browse the debate registry: id, question, readings, stance count, born (earliest publication date). Optional query: a debate matches when its question has every word of it, case-insensitive, word forms folded (hire/hiring, co-founder/cofounder). Browsing only — it does not rank against a question; use find_perspectives for that. Defaults to debates with 2+ stances, 120 rows a page — page with offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return (default and max 120) | |
| query | No | Words the debate question must all contain (case-insensitive; word forms folded) | |
| offset | No | Rows to skip — the tail line tells you the next offset | |
| min_claims | No | Minimum stances on the debate (default 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description earns credit for adding the default stance filter (2+), the 120-row page size, and offset paging behavior. It doesn't state result ordering, which is a minor gap for a browse tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is browsed and what is returned, then the query semantics, then the routing exclusion, then defaults and paging. No sentence is wasted and the concrete folding examples (hire/hiring, co-founder/cofounder) clarify a subtle rule efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned columns and explaining defaults and pagination. Ordering of results is the only unstated behavior an agent might care about, but otherwise it is complete for a zero-required-param browse tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — limit defaults/max, offset paging, min_claims default, and query folding are all already documented in the schema. The description restates the query matching rule (all words, case-insensitive, folded word forms) but adds no meaning beyond it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (browse) and resource (the debate registry) and enumerates the returned fields (id, question, readings, stance count, born). It explicitly distinguishes itself from find_perspectives, so an agent can route without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the negative case ('Browsing only — it does not rank against a question') and names the alternative to use instead ('use find_perspectives for that'). Condition and alternative are both given, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_evolutionTrace one person's views over timeARead-onlyIdempotentInspect
One speaker's takes in order of episode publication date (optionally on one debate) — reversals and re-assertions visible, never judged. Attribute and date every position (dates are episode publication dates); keep hedged claims hedged. A 2023 position is a 2023 position; if the same person later said otherwise, show both.
| Name | Required | Description | Default |
|---|---|---|---|
| person | Yes | A speaker's full name as the graph records it — an ambiguous surname is refused, never merged | |
| debate_id | No | Optional: narrow the chronology to one debate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses substantial behavior: ordering by episode publication date, preserving hedges, showing both older and newer positions, and never judging. This gives the agent a strong mental model of what the tool will return and how it handles temporal inconsistencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and every sentence contributes behavioral value. Minor redundancy exists in mentioning 'episode publication date' twice and in the illustrative 2023 example, which could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately explains what the agent can expect: attributed and dated positions in chronological order, including both reversals and re-assertions. No critical calling information is missing, and the two-parameter schema is fully covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mostly restates the schema's person identity constraint and the optional debate narrowing, adding no deeper parameter semantics such as value formats or edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: it traces one speaker's positions over time, ordered by episode publication date and optionally filtered to one debate. It also distinguishes itself from siblings by emphasizing chronological evolution, reversals, and non-judgmental presentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: when an agent needs a chronological view of a single person's views, including these reversals or re-assertions. It does not explicitly name alternative sibling tools or exclusion conditions, so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
get_context1 field changed- added
Input schema / properties / claim_id / descriptionAdded value: +"Claim id from any tool that returned a card, e.g. clm-5p0ken01"
- Changed
get_stances1 field changed- added
Input schema / properties / debate_id / descriptionAdded value: +"Debate id from find_perspectives or list_debates, e.g. deb-3f9c1a2b"
- Changed
trace_evolution2 fields changed- added
Input schema / properties / debate_id / descriptionAdded value: +"Optional: narrow the chronology to one debate" - added
Input schema / properties / person / descriptionAdded value: +"A speaker's full name as the graph records it — an ambiguous surname is refused, never merged"
1 tool update
- Changed
list_debates1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Case-insensitive substring of the debate question"New value: +"Words the debate question must all contain (case-insensitive; word forms folded)"
5 tool updates
- First observed
find_perspectives - First observed
get_context - First observed
get_stances - First observed
list_debates - First observed
trace_evolution
Related MCP Connectors
Dated funding and SEC 8-K events, each linked to the filing it came from.
Millions of dated buying and momentum signals: who raised, who's hiring, what changed and when
8 graded AGI-2027 predictions, the 0-100 Thesis Tracker, and a public market-call ledger. Free.
Did it really happen? Independent signed receipts for AI agents: page, domain, email, heartbeat.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAuditable AGI-2027 evidence: eight graded Situational Awareness predictions with pre-registered flip conditions, a 0-100 Thesis Tracker with full score history, and a public market-call ledger where misses stay published. Free, no auth, CC BY 4.0.-
- FlicenseAqualityBmaintenanceA timestamped audit trail for every AI conversation — stored locally, owned by you.6605 npm4-
- FlicenseNot gradedqualityCmaintenanceCryptographically anchored, tamper-evident evidence receipts for AI agents — verified run receipts, existence-at-time proofs, and cited answers from an anchored public record. Remote MCP with proof-gated settlement; attests existence and integrity, never truth.-

emilia-mcp-serverofficial
AlicenseAqualityAmaintenanceThe accountability layer for AI agents — a named human's signed yes before an agent does anything irreversible (payment, record change, deploy), then an offline-verifiable Trust Receipt. Apache-2.0, formally verified.3612Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.