Menu

How often does an MCP server change its tools? One in five did within two weeks

2026-10-14MCP Checkup

Every 12 hours our probe asks each server in the directory for its tool list, without credentials, and keeps what comes back. Put two of those lists side by side and you can see whether the server's tools changed in between. This post counts how often that happened, across every remote MCP server whose tool list we have read at least twice.

What counts as a change

For each list we compute a toolset fingerprint: a hash over the tool names, sorted. So order does not matter, and only names do: a new description or input schema under the same name leaves the fingerprint as it was. We come back to descriptions further down.

A change is two consecutive successful reads of the same server with different fingerprints. A failed read is skipped, and the next successful one is compared with the last one before it. A server's first read cannot be a change.

We left out five servers. Two are claimed servers on the Indie plan, which we read every 15 minutes, a different clock. Three answered with a paged list: the answer carried a cursor for a next page, which we never fetch, so their first page could differ between reads without any tool changing. That leaves 1,893 servers read at least twice.

We also looked for changes that would not be changes. None came from duplicate names alone: every change added or removed at least one name. And a change on our side would show up as a burst inside one 12-hour round, since every server is read once per round. We did not see one: from 17 September to 7 October, between 10 and 26 of every 1,000 successful reads came back different from the read before, and the busier days were busy across the whole day.

One in five, within two weeks

Of the 1,893 servers, 415 changed their tool set at least once: 22 percent. But servers joined at different times. We have read some for 47 days and some for less than one; the median is 9 days. So the fairer question is how many changed within the same length of time:

read for at least servers changed within that time share
7 days 1,419 215 15%
14 days 803 180 22%
21 days 546 156 29%

Each row counts only changes inside each server's first 7, 14 or 21 days of observation. The rows are different groups: the 21-day row holds only the servers we have read the longest.

A few servers make most of the changes

The 415 servers changed 788 times in all:

changes per server servers
0 1,478
1 242
2 88
3 to 5 72
6 to 10 11
more than 10 2

The 85 servers with three or more changes, 4.5 percent of the 1,893, account for 370 of the 788, nearly half. The most active server changed 13 times. Over about 24,000 server-days of observation that averages one change every 31 days per server, an average that says little when most servers never changed.

Most changes add tools

We compared the tool names on both sides of each change:

kind of change changes share
names added, none removed 667 85%
names removed, none added 56 7%
names both added and removed 65 8%

In all, 3,040 names appeared and 963 disappeared. Changes were small: 318 touched a single name, and the median was two. Of the 415 servers that changed, 364 ended with more tools than they started with, 33 with fewer and 18 with the same number. Only 11 changes went back to a tool set the server had shown before, so few servers flipped between two versions behind one address.

Bigger tool sets change more often

The 803 servers read for at least 14 days, grouped by how many tools they listed at their first read:

tools at first read servers changed within 14 days share
0 to 5 362 56 15%
6 to 10 211 34 16%
11 to 20 130 39 30%
21 to 50 71 33 46%
51 or more 29 18 62%

The last row is small, but the direction holds across all five.

How far apart

For the 173 servers with two or more changes, the median time from one change to the next was 36 hours. A quarter of the gaps were 12 hours or less, one read apart; a quarter were longer than four and a half days. Nothing shorter than our 12 hours is visible: a tool added and removed between two reads leaves no trace.

Names are not the whole story

Since 16 September we also keep a digest over each tool's name, description and input schema. Comparing consecutive reads that both have one, 405 servers changed their tool names 755 times, and 566 servers changed descriptions or schemas while keeping every name, 1,378 times. Some of that is likely text that differs on every request, such as a date in a description; we have not separated it out.

For maintainers

Each server's page in the directory shows when its tool set last changed, by the same fingerprint, and whether that was in the last seven days; the stats page counts the servers that changed in the last seven days. We read without credentials, so the list we compare is the one any anonymous client receives. If the date on your page surprises you, something served a different list than you expected: a deploy, a feature flag, a region.

Changes that removed a name were rarer, 121 of the 788, and they are the ones that break a client still holding the old list. The protocol has a way to announce them: a server that declares the listChanged capability for tools tells connected clients when its list changes, so they can fetch it again.

For agent builders

A tool list fetched once is a snapshot. About one server in five served a different list within two weeks, and among servers that started with more than 20 tools, about half did. Most changes add tools, so a stale list usually misses something new rather than pointing at something gone, but not always. If you record anything about a server to compare later, names alone miss most of what moves. More on what can be checked when an agent adds a server on its own.

How we counted

Population: the 1,903 servers with at least one stored tool list, minus the two claimed servers read every 15 minutes and the three that returned paged lists; 1,893 of the remaining 1,898 were read at least twice. Time: read-only queries against our production database between 13:22 and 13:29 UTC on 8 October 2026. The earliest list is from 20 August.

A read is one successful tools/list answer to our probe, sent without credentials. A tool set is the sorted list of names in it. A change is two consecutive reads of the same server with different tool sets. Added and removed names are names present on one side of a change and not the other. A server's observation window runs from its first read to its latest.

Known limits. Anything shorter than 12 hours is invisible (why every twelve hours). We see only the first page of a paged list. Servers that ask for a key first are not included (three in ten do). The description comparison starts on 16 September. And we cannot see why a list changed: a release, a configuration change, a different backend answering, or tools that depend on something we do not send.