Use it from your own assistant
The same read-only views behind these pages are available to an AI assistant that speaks the Model Context Protocol (MCP), such as Claude. Connect it with one command:
claude mcp add diaspore -- python -m diaspore.mcp_server
What it can do
| Tool | What it does | Takes | Returns | Refuses |
|---|---|---|---|---|
about | What exists here: tools, counts, the science corpus, measured accuracy, and the rules. | nothing | What this server holds and what it will not do. Call it first. | It does not describe anything it cannot serve. |
lens_search | Labs ranked for a topic as of a date, each with its matching papers and the claims a model extracted from their abstracts. | query, as_of, product_only, limit | Labs with papers on a topic, as of a date: each lab's matching papers with the extracted claim, model system, scale, effect and stated limits. Machine reading of abstracts; quote `provenance` with any finding. | No as-of date: refused. No paper published after the date. No weaker company link. It does not judge whether the science is good. |
lens_lab | What one lab's extracted last-author papers say as of a date. | lab_id, as_of | What one lab's extracted last-author papers say, as of a date. lab_id is the id lens_search returned for the same as_of (lab ids belong to the panel that covers the date). | No as-of date: refused. Trainees are never listed. |
lens_company | The science of a company's founding labs, where the PI is named on the company's filing. | company_id, as_of | The science of a company's founding labs as of a date, for labs whose PI is on the company's filing. | Labs joined to the company only by a name match are left out and counted. |
science_brief | A brief built ahead of time: each claim checked against retrieved abstracts, with two exact quotes. | topic or run | A science brief that was built ahead of time: for a topic or a target as of a date, each extracted claim checked against the retrieved abstracts by a sealed reader, with two exact quotes. With no argument: the list. | It cannot build a new brief; a brief needs reader agents. It is not a memo and no person verified it. |
bench_results | Every benchmark task with the system against each baseline, intervals, and how the answer key is built. | nothing | Every Diaspore Bench task: its answer key, primary metric, the system and each baseline with intervals, and the reading (pass, fail, inconclusive, descriptive, stopped, not run). | It runs no test; it serves stored results. A loss or an unrun task is shown as such. |
deal_run | One stored end-to-end run on a company as of a date: report, ledger with sources, claim-check result. | run | A stored deal run: the report built from its ledger, the claim-check result, and for past-date runs what happened afterwards. With no run id, the list of stored runs. | It reads a stored run; to make a new one use deal_start. Not advice, not a price, not a published memo. |
field_map | Who had public evidence on a topic or target as of a date, by lab and institution, and how the field filled up. | topic, as_of | Who had public evidence on a topic or target as of a date: labs with their matching papers and grants, institutions, companies whose filing names the lab head, and how the field filled up year by year. Other public names for the same target are searched too (TL1A also finds TNFSF15). | No as-of date: refused. It counts public evidence; it does not predict and it does not rank people. |
labs_to_watch | The ranked list of labs as of the latest data date, with reasons and the ranking's past record. | institution, limit | The ranked list of labs as of the latest data date, with the top reasons for each rank and how this ranking did on a past date beside chance, a simple rule and an AI given the same facts. | Lab heads only, from public records; team members are never named. Not advice. |
companies_to_watch | The ranked list of young companies for a stage, with reasons and the ranking's past record. | stage, state, limit | The ranked list of young companies for one stage (seed, series-a, series-b) as of the latest data date, with reasons, the public filing facts behind each, and how the ranking did on a past date. | No valuation and no advice. |
deal_start | Start a deal run your assistant reads: the dated evidence pack and the reader's contract. | company_id, as_of | Start a deal run that YOU read: builds the dated evidence pack for one company and returns the reader's contract, the list of pack files, and the claims code has already written. Read each file with deal_file, then send your findings with deal_findings. Use `find` to get a company id. | No as-of date: refused. A company with no annual report by the date cannot be run, and it says so. |
deal_file | One file of a run's evidence pack, in pieces. | run, name, start, length | One file of a run's evidence pack, in pieces of up to 40,000 characters. Quotes must be copied from this text exactly. | Only files in that run's pack. |
deal_findings | Submit findings; code keeps only those whose quote and numbers match the source. | run, findings | Submit your findings (the JSON list the contract describes). Code keeps a finding only if its quote is in the named file word for word and every number in the claim is in the quote; the rest are returned with the reason. Returns the checked ledger and the committee's contract for the next step, deal_decide. | A finding whose quote is not in the file, or whose number is not in its quote, is refused with the reason. |
deal_decide | Submit the case for and against; returns the report built from the checked ledger. | run, committee | Submit the case for, the case against and what would change the read. A point with a digit, a verdict word or a missing claim id is refused. Returns the finished report, built by code from the ledger and nothing else. | No verdict, no new number, no claim that is not in the ledger. |
deal_library | The deal runs already made. | nothing | The deal runs already made, each on a real company at a date, with how many claims matched their source. | It starts nothing. |
roster | The six stages, the agent for each job, its contract and whether it was kept or merged. | nothing | The system on one page: six stages, the agent for each, and whether each agent was kept or merged. | It makes no claim an agent is good; that is the benchmark's job. |
track_record | Every finished test a lab or company was ranked in: its rank at the cutoff, and what happened after. | entity_type, entity_id | What the scoring said about one lab or company at each test's cutoff, and what happened afterwards. | It gives no rank for a date that was not a test cutoff, and no forecast. |
get_lab | One lab as of a date: signals, team counts, PI-on-filing company links, recent papers, freshness. | lab_id, as_of | One lab as of a date: PI, institution, point-in-time signals, team counts, company links where the PI is on the filing, recent papers, freshness, and its rank in each finished test. | No as-of date: refused. No probability that a named person starts a company. |
get_company | One company as of a date: financings from Form D, events, origin labs, signals. | company_id, as_of | One company as of a date: Form D financings (stage inferred or stated), events, origin labs where the PI is on the filing, point-in-time signals, and its rank in each finished test. | No as-of date: refused. No valuation. |
hindcasts | Every finished test with its metrics and every baseline, including baselines that were not run and why. | nothing | Every finished test with its metrics and every baseline, including the ones not run and why. | It does not hide a test that failed. |
hindcast_ranking | The top of one finished test's ranking with the outcomes that followed. | run_id, top | The top of one finished test's ranking, with the outcomes that came after its cutoff. | An outcome company is named only when the PI is on the filing. |
pipeline | How many labs and companies sit on each rung from lab to Series B. | nothing | How many labs and companies sit on each rung of the lab to Series B ladder. | Stages are inferred from filing amounts, and it says so. |
find | Find a lab by PI name or a company by name. | query, limit | Find a lab by its PI's name, or a company by name. Returns type, id, name, detail. Names only, no science. | Names only. It does not search science; use lens_search. |
Every tool follows the same rules as a page: results are dated, every claim is cited, anything a model graded is labelled as such, only heads of labs are named, and company links weaker than "PI named as an officer on the filing" are left out. A tool that cannot meet a rule refuses instead of guessing.
This is a solo project. The server exposes the same gated views a page uses and nothing more. Rules and checks: where every number comes from and what is checked, and by whom.