Diaspore

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

ToolWhat it doesTakesReturnsRefuses
aboutWhat exists here: tools, counts, the science corpus, measured accuracy, and the rules.nothingWhat this server holds and what it will not do. Call it first.It does not describe anything it cannot serve.
lens_searchLabs 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, limitLabs 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_labWhat one lab's extracted last-author papers say as of a date.lab_id, as_ofWhat 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_companyThe science of a company's founding labs, where the PI is named on the company's filing.company_id, as_ofThe 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_briefA brief built ahead of time: each claim checked against retrieved abstracts, with two exact quotes.topic or runA 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_resultsEvery benchmark task with the system against each baseline, intervals, and how the answer key is built.nothingEvery 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_runOne stored end-to-end run on a company as of a date: report, ledger with sources, claim-check result.runA 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_mapWho had public evidence on a topic or target as of a date, by lab and institution, and how the field filled up.topic, as_ofWho 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_watchThe ranked list of labs as of the latest data date, with reasons and the ranking's past record.institution, limitThe 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_watchThe ranked list of young companies for a stage, with reasons and the ranking's past record.stage, state, limitThe 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_startStart a deal run your assistant reads: the dated evidence pack and the reader's contract.company_id, as_ofStart 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_fileOne file of a run's evidence pack, in pieces.run, name, start, lengthOne 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_findingsSubmit findings; code keeps only those whose quote and numbers match the source.run, findingsSubmit 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_decideSubmit the case for and against; returns the report built from the checked ledger.run, committeeSubmit 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_libraryThe deal runs already made.nothingThe deal runs already made, each on a real company at a date, with how many claims matched their source.It starts nothing.
rosterThe six stages, the agent for each job, its contract and whether it was kept or merged.nothingThe 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_recordEvery finished test a lab or company was ranked in: its rank at the cutoff, and what happened after.entity_type, entity_idWhat 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_labOne lab as of a date: signals, team counts, PI-on-filing company links, recent papers, freshness.lab_id, as_ofOne 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_companyOne company as of a date: financings from Form D, events, origin labs, signals.company_id, as_ofOne 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.
hindcastsEvery finished test with its metrics and every baseline, including baselines that were not run and why.nothingEvery finished test with its metrics and every baseline, including the ones not run and why.It does not hide a test that failed.
hindcast_rankingThe top of one finished test's ranking with the outcomes that followed.run_id, topThe 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.
pipelineHow many labs and companies sit on each rung from lab to Series B.nothingHow 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.
findFind a lab by PI name or a company by name.query, limitFind 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.