For AI assistants
Read this record from inside the assistant you already use. It hands back rows, each naming the publisher who said it and linking where they said it. It answers no questions and holds no views.
This is not a chatbot, and the difference is the whole point. This record does not summarise anybody’s news and never will: a summary of a sourced fact is an unsourced restatement of it, which is the failure this whole site exists to avoid. What is offered here is the opposite thing. Every call returns rows with links, and a row that cannot name a publisher is not returned at all.
What you can ask
| Ask your assistant | What comes back |
|---|---|
| What did WSTS say the 2026 semiconductor market would be worth, and when did they change it? | five statements, five dates, five links |
| Has the figure I quoted been restated since? | the whole reason this exists |
| Which fab sites in the Netherlands are in this record, and who says so? | rows, each naming its publisher |
| What does this record NOT have about wafer capacity, and why? | the gap register, so nothing gets invented |
| Which publishers does this record read, and which did it try and drop? | both collection mechanisms, and the failures |
Setting it up
The server is a single file in this site’s own repository. It installs nothing, and it needs no account, no key and no sign-in. The record is free and this is the record.
Claude Code
git clone https://github.com/jorgjansen/siliconalmanac-site.git claude mcp add silicon-almanac -- python3 ./siliconalmanac-site/mcp/server.py
Claude Desktop, and anything else that reads a config file
Add this to the application’s MCP configuration, with the path to wherever you put the file:
{
"mcpServers": {
"silicon-almanac": {
"command": "python3",
"args": ["/absolute/path/to/siliconalmanac-site/mcp/server.py"]
}
}
}
Before you connect it to anything
python3 mcp/server.py --selftest
python3 mcp/server.py --call figure_history '{"subject_id":"wsts-worldwide-semiconductor-revenue","target":"2026"}'
The second command prints exactly what the server would hand an assistant. Read it once before wiring it up: it is the honest way to decide whether this is worth installing.
Without installing anything
Add https://desk.siliconalmanac.com/mcp_rpc.php as a custom
connector. The record tools work with no account at all. The desk’s own
tools — your watchlists, your notes, the figures you have cited —
appear once you sign in.
What it hands back
| Tool | What it returns |
|---|---|
figure_history the one nothing else carries | Every vintage of one published figure: what the publisher said, in their own words, on the date they said it, with the link. Plus the restatements, as pairs of published values. |
record_gaps read it before assuming a figure exists | What this record does not hold, and why each one is open. Nobody publishes it; it exists and is not free; the licence forbids it; the work is not done yet. |
record_overview | What is held, what is refused, and when each file was last built. |
find_companies | The companies in the record, by name, ticker, role, tag, sector or country. |
company_profile | One company, the fab sites this record puts on its page, and every capacity statement a publisher made about those sites. |
find_fabs | Fab sites by country, operator, kind, status, wafer size or process node. |
fab_profile | One site in full, including the note that says what is not known about it. |
list_figures | Every subject a publisher issues a figure for, and each year they issue it for. |
recent_changes | What publishers restated lately: an old value, a new value, both linked. |
list_sources | Every publisher collected, across both mechanisms, and the candidates that were tried and dropped, with the reason. |
series_vintages | Statistical series held with their vintages, so a revision is visible. |
node_bands | How named publishers define bands such as “advanced”, each as a dated statement. |
release_calendar | Dates publishers have announced for their own releases. |
Four rules it keeps, in code rather than in intentions
- No row without a publisher. A row that cannot say who published it and where is dropped before it is returned. There is one exception and it is checked rather than waved through: a gap recording that nobody publishes a thing has no publisher to link, and the row says so on its own face.
- A count is never the length of a page. Every answer carries the true total separately from how many rows were sent. This site shipped that fault on three surfaces in one day, and does not intend to hand it to a machine.
- Nothing is computed. No sums, no ratios, no rankings, no year derived by dividing one published number by another. The only arithmetic anywhere in it is “the publisher printed A and later printed B”, and it states no reason for the difference.
- The gaps are an answer. An assistant that cannot discover a figure was
never published will produce one instead. That is the most useful thing here,
and it is why
record_gapsis named in the server’s own opening instructions.
What it will not do
It will not summarise a press release, rank anything, score anything, tell you what a change means, or carry a share price. Those are refusals this record made before it had a single reader, and connecting a machine to it does not reopen them. Who to read instead →
What leaves this site
Nothing, in the direction people usually worry about. The file runs on your own machine and reads files that are already public on this one. It has no write path, no account, and no record of who asked. What your assistant does with the rows afterwards is between you and whoever makes your assistant.
How to cite what you take
Cite the publisher named on the row, not this record. Every row carries the publisher’s own link, and that is what belongs in a footnote. This record is the finding aid. If you name it as well, name it as where the history was found. Method and sources →