Skeletable
REMOTE · SKELETABLE.COM
Source-backed public tables with citations, claim checks, and reviewable corrections.
Available components
Last scanned (21 hours ago)
Scores higher than 53% of remote servers
Unreachable for 1 day in a row. Last reached 3 Nov 2026.
Category Memory and Knowledge
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Stability: 0.07 → unverified ▼ security
- Authorization: partial → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 2 Nov 26 −1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “add_rows” rewrote its description, which is the text the model reads security
- Tool “create_table” rewrote its description, which is the text the model reads security
- Tool “fill_cells” rewrote its description, which is the text the model reads security
- Tool “get_table” rewrote its description, which is the text the model reads security
- Schema quality: 130 → 181 ▼ functional
- Stability: unverified → 0.03 ▲ functional
- New tool “data_link” functional
- New tool “export_table” functional
- New tool “fill_ai_cells” functional
- New tool “fork_table” functional
- New tool “next_ai_cells” functional
- New tool “save_version” functional
- New tool “set_instruction” functional
- “create_table” added an optional parameter “proof” cosmetic
- “create_table” added an optional parameter “template” cosmetic
- “get_table” added an optional parameter “limit” cosmetic
- “get_table” added an optional parameter “offset” cosmetic
- “get_table” added an optional parameter “version” cosmetic
- “create_table” reworded the description of “columns” cosmetic
- “create_table” reworded the description of “rows” cosmetic
- “create_table” reworded the description of “title” cosmetic
- “create_table” made “columns” optional cosmetic
- “create_table” made “rows” optional cosmetic
- “create_table” made “title” optional cosmetic
- 1 Nov 26 69
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://skeletable.com/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of skeletable.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| skeletable.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://skeletable.com/mcp | Unreachable | ||
| http (plaintext) | http://skeletable.com/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_columns ~52
Add columns to a draft you run, such as a blank one a person started. Returns the new column ids for fill_cells. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| columns | array | yes | – |
| slug | string | yes | – |
No output schema declared.
No examples provided.
add_rows ~191
Add up to 500 rows to a table you run. Each row is a name, or an object with its `values` by column id or label, so a whole tracker or dataset goes in a few calls. A row without a `key` gets the next free number. A name the table already has gets the values given for it, so syncing again from the same source is one call; with no values it's skipped. Say where the values came from with `origin` (`entered`, `imported` with a `note` naming the file or email, `link` with a `source`, or `generated`, which is the default without a source). Rows with values can go into a published table too; rows by name only into a draft. A table that requires proof takes rows by name only. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| rows | array | yes | – |
| slug | string | yes | – |
No output schema declared.
No examples provided.
check_claim ~156
Test a statement against one cell, such as whether a value in a draft or an answer is right. The verdict is `matches`, `differs` (with what the source states), `disputed` (sources disagree, see `conflicts`) or `unknown` (no acceptable source stated it, so say so). It compares values and doesn't judge meaning, so read the quote before relying on a text verdict. Use list_tables and get_table to find the cell first.
| Name | Type | Req | Description |
|---|---|---|---|
| column | string | yes | The column's id, from get_table |
| row | string | yes | The row's key, from get_table |
| slug | string | yes | From list_tables |
| value | string | yes | The value being claimed |
No output schema declared.
No examples provided.
create_table ~391
Make a private draft table, ready to fill, for anything from a tracker to a dataset. Its values say where they came from unless you set `proof` to `required`. Only `title`, `columns` and `rows` are needed now, but give `question`, `scope`, and a `rule` for each column if you can: a person has to supply them before publishing. Returns the column ids fill_cells needs, and the sheet's link, so tell your person to open it and watch it fill. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| columns | array | – | Needed unless you use a template |
| owner | string | – | A team you're on. Leave out for your own account |
| proof | string | – | `optional` (the default): each value says where it came from, like a person, a file, an email or a page. `required`: every value must quote a source word for word, for a table of public facts |
| question | string | – | The question the table answers |
| rows | array | – | Row names. To add rows with their values, use add_rows after |
| scope | string | – | What belongs in the table and what doesn't |
| template | string | – | Start from a template, with its columns set up: `job-tracker` (Every application, where it stands and what's next, kept current from your email), `text-dataset` (Labeled examples to train or test a c… |
| title | string | – | Needed unless you use a template |
| topic | string | – | A broad subject, like Law or Consumer tech |
No output schema declared.
No examples provided.
data_link ~102
A private address that loads a table you run as CSV, for a notebook, a script or a spreadsheet, with the lines to do it. Add `?columns=a,b` to pick columns and `?names=0` to leave out row names. Anyone with the link can read the data, and `fresh` makes a new one so the old one stops working. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| fresh | boolean | – | – |
| slug | string | yes | – |
No output schema declared.
No examples provided.
export_table ~188
A table as CSV, ready to save as a file or load into a notebook. The first column is each row's name unless `names` is false. `columns` picks columns by id, in that order. With `proof`, each column is followed by its source and quote, and in a table whose proof is optional, by where each value came from. An empty field means no value.
| Name | Type | Req | Description |
|---|---|---|---|
| columns | array | – | Column ids, from get_table. Leave out for every column |
| names | boolean | – | Whether to start each line with the row's name. Defaults to true |
| proof | boolean | – | Whether to add each value's source, quote and origin. Defaults to false |
| slug | string | yes | From list_tables |
| version | integer | – | A saved version's number, from `versions` in get_table. Leave out for the live table |
No output schema declared.
No examples provided.
fill_ai_cells ~125
Save up to 200 answers to an AI column, each with the `row` and `basis` next_ai_cells gave it. An answer outside the column's choices, or to a prompt that has since changed, comes back with a reason. Each value is saved as generated, with the instruction and `model`. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | yes | – |
| column | string | yes | The AI column's id, from next_ai_cells |
| model | string | yes | The model that answered, like the one you are |
| slug | string | yes | – |
No output schema declared.
No examples provided.
fill_cells ~266
Set up to 200 cells of a table you run. Usually a cell gives `value` and `origin` (`entered`, `imported` with a `note` like the file or email it came from, `link` with its `source`, or `generated`). Left out, the origin is `link` when there's a `source` and `generated` when there isn't. These can go into a published table too, and never replace a quoted value. A date is written YYYY-MM-DD, and a column with choices takes only one of them. In a table that requires proof, a cell instead gives `value`, `source` and `quote`, word for word from the source; each page is opened before it's saved, so send at most 25 of these at once, and only into a draft. If no acceptable source states it, give `checked` with the pages you read, and `none_stated` only if you read the whole source and it has no such value. The reply counts what saved and lists only the cells that didn't, with a reason, and `unchecked` names quoted values whose page couldn't be read. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| cells | array | yes | – |
| slug | string | yes | From create_table or list_tables |
No output schema declared.
No examples provided.
fork_table ~107
Copy a table into your own account as a private draft, to extend or relabel: any published public table, or one you run. Every value keeps its proof or origin, and the copy remembers where it came from. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| owner | string | – | A team you're on. Leave out for your own account |
| slug | string | yes | owner/slug, from list_tables |
| title | string | – | A title for the copy. Defaults to the original's |
No output schema declared.
No examples provided.
get_cell ~173
The evidence for one value: the source, the exact quote, what kind of source it is and when it was read. For a missing value, where we looked, and `absent` means the source was read and gives no such value. `url` is the cell's lasting address, showing its proof, for citing. `confirmed` says how a second reader backed it up, and without it the value has been read once. `conflicts` lists sources that state something else, `history` lists past values, and `watch` says whether the quote was still on its page at the last check.
| Name | Type | Req | Description |
|---|---|---|---|
| column | string | yes | The column's id, from get_table |
| row | string | yes | The row's key, from get_table |
| slug | string | yes | From list_tables |
No output schema declared.
No examples provided.
get_table ~169
Read a table: its scope, its columns with the rule for each, a summary of what each column holds, and its rows. A null value is blank. `origins` says where a row's unquoted values came from, `ai` says how far each AI column has got, and `versions` lists saved versions. For a big table, read the summaries first and page through rows with `offset` and `limit`.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Return at most this many rows. 0 returns just the table's shape and summaries |
| offset | integer | – | Skip this many rows |
| slug | string | yes | From list_tables |
| version | integer | – | A saved version's number, from `versions` in get_table. Leave out for the live table |
No output schema declared.
No examples provided.
list_tables ~59
Find tables in the library. Each result gives its slug, the question it answers, its size and when it was last read.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | – | Words to look for in titles, questions, columns and rows. Leave out to list everything. |
No output schema declared.
No examples provided.
next_ai_cells ~139
The next prompts to answer for a table's AI columns, up to 200 at a time: blank cells first, then answers whose row or instruction has changed. Answer each prompt yourself, then send the answers back with fill_ai_cells, each with its `row` and `basis`. Repeat until it says `done`. `redo` also re-answers generated values that came from outside the instruction. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| column | string | – | One AI column's id or label. Leave out for the first one with work waiting |
| limit | integer | – | – |
| redo | boolean | – | – |
| slug | string | yes | – |
No output schema declared.
No examples provided.
propose_change ~146
Suggest a new value for a cell, with its proof. The quote must be word for word from the source and state the value. The owner reviews it before anything changes. Needs a token sent as a Bearer token.
| Name | Type | Req | Description |
|---|---|---|---|
| column | string | yes | The column's id, from get_table |
| note | string | – | Why this should change |
| quote | string | yes | The exact words on that page |
| row | string | yes | The row's exact key, from get_table |
| slug | string | yes | From list_tables |
| source | string | yes | The page that states it |
| value | string | yes | The new value, following the column's rule |
No output schema declared.
No examples provided.
save_version ~76
Freeze a table you run as it stands now, as a numbered version with a lasting link that never changes. Do this before training on a dataset or citing a table, and name the version you used. Needs a token.
| Name | Type | Req | Description |
|---|---|---|---|
| note | string | – | What this version is, like "Before review" |
| slug | string | yes | – |
No output schema declared.
No examples provided.
set_instruction ~125
Make a column an AI column, change its instruction, or turn it back into a plain column with an empty one. The instruction says what to work out for each row and names other columns in braces, like "Classify {Pitch} by genre". Its values never overwrite what a person typed, linked or quoted. Needs proof to be optional and a token.
| Name | Type | Req | Description |
|---|---|---|---|
| choices | array | – | For a text column, the only answers it takes |
| column | string | yes | The column's id or label |
| instruction | string | yes | – |
| slug | string | yes | – |
No output schema declared.
No examples provided.
How do I install the Skeletable MCP server?
Skeletable is a hosted endpoint at https://skeletable.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · skeletable.com
claude mcp add --transport http eftpmc-skeletable 'https://skeletable.com/mcp'
What is the Skeletable MCP server?
Skeletable is an MCP server listed in the public MCP registry as io.github.eftpmc/skeletable. Source-backed public tables with citations, claim checks, and reviewable corrections. This page covers its hosted endpoint (https://skeletable.com/mcp).
Is the Skeletable MCP server safe to use?
Skeletable scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Skeletable MCP server expose?
Skeletable exposes 16 tools: list_tables, get_table, get_cell, check_claim, export_table, and 11 more. Their descriptions and schemas cost roughly 2,465 tokens of context every time the server is loaded.
Does the Skeletable MCP server require authentication?
Its publisher declares no required credentials for Skeletable. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the Skeletable MCP server still maintained?
Skeletable is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 3 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.