skeletable
Registry code: 4f753619edaae383
Skeletable is a library of tables where every value links to the source that states it. Use list_tables to find a table, get_table to read it, get_cell for a value's source and exact quote, and check_claim to test a statement against a cell. A null value means no acceptable source stated it: say it's unknown rather than filling it in. Check a table's scope and lastRead before relying on it. When you use a value, cite the source and give the cell's `url`, so a reader can see the proof. With a token you can build a table: create_table makes a private draft, and fill_cells adds values with their…
- endpoint
- https://skeletable.com/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is skeletable live?
- Yes — it answered the hub's last check (checked 44m ago). It answered 100% of checks over the last 30 days.
- Is skeletable free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does skeletable have?
- 9 tools: get_cell, get_table, check_claim, propose_change, create_table, add_columns, add_rows, fill_cells, ….
- Is skeletable safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 9 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
list_tables open 44m ago
Find tables in the library. Each result gives its slug, the question it answers, its size and when it was last read.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "query": { "type": "string", "maxLength": 200, "description": "Words to look for in titles, questions, columns and rows. Leave out to list everything." } } }arguments 11 linesget_cell unknown 44m ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "row", "column" ], "properties": { "row": { "type": "string", "maxLength": 200, "description": "The row's key, from get_table" }, "slug": { "type": "string", "maxLength": 120, "description": "From list_tables" }, "column": { "type": "string", "maxLength": 80, "description": "The column's id, from get_table" } } }arguments 26 linesget_table unknown 44m ago
Read a table: its scope, its columns with the rule for each, and its rows. A null value means no acceptable source stated it.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug" ], "properties": { "slug": { "type": "string", "maxLength": 120, "description": "From list_tables" } } }arguments 14 linescheck_claim unknown never probed
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "row", "column", "value" ], "properties": { "row": { "type": "string", "maxLength": 200, "description": "The row's key, from get_table" }, "slug": { "type": "string", "maxLength": 120, "description": "From list_tables" }, "value": { "type": "string", "maxLength": 300, "description": "The value being claimed" }, "column": { "type": "string", "maxLength": 80, "description": "The column's id, from get_table" } } }arguments 32 linespropose_change unknown never probed
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "row", "column", "value", "source", "quote" ], "properties": { "row": { "type": "string", "maxLength": 200, "description": "The row's exact key, from get_table" }, "note": { "type": "string", "maxLength": 500, "description": "Why this should change" }, "slug": { "type": "string", "maxLength": 120, "description": "From list_tables" }, "quote": { "type": "string", "maxLength": 400, "description": "The exact words on that page" }, "value": { "type": "string", "maxLength": 300, "description": "The new value, following the column's rule" }, "column": { "type": "string", "maxLength": 80, "description": "The column's id, from get_table" }, "source": { "type": "string", "format": "uri", "maxLength": 2000, "description": "The page that states it" } } }arguments 50 linescreate_table unknown never probed
Make a private draft table, ready to fill. 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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "title", "columns", "rows" ], "properties": { "rows": { "type": "array", "items": { "type": "string", "maxLength": 120 }, "maxItems": 200, "minItems": 1 }, "owner": { "type": "string", "maxLength": 60, "description": "A team you're on. Leave out for your own account" }, "scope": { "type": "string", "maxLength": 800, "description": "What belongs in the table and what doesn't" }, "title": { "type": "string", "maxLength": 120 }, "topic": { "type": "string", "maxLength": 40, "description": "A broad subject, like Law or Consumer tech" }, "columns": { "type": "array", "items": { "type": "object", "required": [ "label", "type" ], "properties": { "rule": { "type": "string", "maxLength": 500, "description": "What counts as this value, so two readers would fill it in the same way" }, "type": { "enum": [ "text", "number", "boolean" ], "type": "string" }, "unit": { "type": "string", "maxLength": 30 }, "label": { "type": "string", "maxLength": 80 } } }, "maxItems": 20, "minItems": 1 }, "question": { "type": "string", "maxLength": 300, "description": "The question the table answers" } } }arguments 79 linesadd_columns unknown never probed
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "columns" ], "properties": { "slug": { "type": "string", "maxLength": 120 }, "columns": { "type": "array", "items": { "type": "object", "required": [ "label", "type" ], "properties": { "rule": { "type": "string", "maxLength": 500, "description": "What counts as this value, so two readers would fill it in the same way" }, "type": { "enum": [ "text", "number", "boolean" ], "type": "string" }, "unit": { "type": "string", "maxLength": 30 }, "label": { "type": "string", "maxLength": 80 } } }, "maxItems": 20, "minItems": 1 } } }arguments 49 linesadd_rows unknown never probed
Add rows to a draft you run, as you find what belongs in it. A name it already has is skipped. Needs a token.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "rows" ], "properties": { "rows": { "type": "array", "items": { "type": "string", "maxLength": 120 }, "maxItems": 200, "minItems": 1 }, "slug": { "type": "string", "maxLength": 120 } } }arguments 23 linesfill_cells unknown never probed
Fill up to 25 cells of a draft you run. Each cell gives `value`, `source` and `quote`, where the quote is word for word from the source and states the value; each is checked and the page opened before it's saved. If no acceptable source states it, give `checked` with the pages you read instead of a value, and add `none_stated` only if you read the whole source and it has no such value. Bad cells come back with a reason and don't stop the rest. Needs a token.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "cells" ], "properties": { "slug": { "type": "string", "maxLength": 120, "description": "From create_table or list_tables" }, "cells": { "type": "array", "items": { "type": "object", "required": [ "row", "column" ], "properties": { "row": { "type": "string", "maxLength": 200 }, "quote": { "type": "string", "maxLength": 400 }, "value": { "type": "string", "maxLength": 300 }, "column": { "type": "string", "maxLength": 80, "description": "The column's id, from get_table" }, "source": { "type": "string", "maxLength": 2000 }, "checked": { "type": "array", "items": { "type": "string", "maxLength": 2000 }, "maxItems": 10 }, "none_stated": { "type": "boolean" } } }, "maxItems": 25, "minItems": 1 } } }arguments 61 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id4f753619edaae383.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/4f753619edaae383/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/4f753619edaae383?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.