# Drillable (remote · mcp.drillable.com)

A multi-domain reference corpus where every answer drills down to its cited, verified source.

- Trust score: 59/100 (low)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.drillable.com`: 59/100 (this document), [markdown](https://verifymcp.io/servers/com-drillable-gateway/mcp.md), [page](https://verifymcp.io/servers/com-drillable-gateway/mcp)

## Channel facts

- Endpoint: `https://mcp.drillable.com`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.2`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 8 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 38/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 22766 tokens (~2845/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-drillable-gateway https://mcp.drillable.com/
```

### Codex

```toml
[mcp_servers.com-drillable-gateway]
url = "https://mcp.drillable.com/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-drillable-gateway": {
      "type": "remote",
      "url": "https://mcp.drillable.com/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-drillable-gateway --url https://mcp.drillable.com/ --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-drillable-gateway:
    url: "https://mcp.drillable.com/"
```

### Other

```json
{
  "mcpServers": {
    "com-drillable-gateway": {
      "type": "http",
      "url": "https://mcp.drillable.com/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 59, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “compute” rewrote its description, which is the text the model reads
- [security] Tool “search” rewrote its description, which is the text the model reads
- [security] Tool “lookup” rewrote its description, which is the text the model reads
- [security] Tool “enumerate” rewrote its description, which is the text the model reads

### 2026-08-02 (score 59, +1)

- [security] The server rewrote its instructions, which are the text every model session reads

### 2026-07-31 (score 58, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 56, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 55, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 54, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 54)

First indexed and scored.

## MCP tools (8)

### `lookup` (~4411 tokens)

Look up a concept

Define a concept/term from a domain's glossary (e.g. 'stir', 'crop-factor', 'roughness'). Routes to each domain's lookup_concept; pass `domain` to target one, omit to fan out. For entities/records use `search`. Abstains on a miss, which is logged as a gap (the demand signal) — there is no report_gap verb. For COMPUTED quantities (molar mass, date math, unit conversions) a miss will point you to the right compute verb — follow it via `describe`/`call` rather than re-searching. Mounted corpora: acupuncture, cocktail, camera, law, copyright, trademark, music-theory, supplements, writing-style, minecraft-dungeons, spanish, medical-denials, languages, behavioral-econ, baseball, agent-practices, pokemon, mcp, readability, citations, relay, models, self-oracle, recall-traps, units, tax, physics, logic, astronomy, biology, geography, medicine, chemistry, calendar, math, eurorack, building-codes, cooking, personal-finance, stardew, coffee, electronics, physiology, diving, decibels, gearing, colorimetry, subnetting, textile-gauge, first-aid, statistics, chess-endgames, woodworking, rating-systems, tuning, check-digits, paper-sizes, wire-gauge, preferred-numbers, swe-claim-denial, psychology, roman-numerals, minecraft-mods, encodings, strength-training, hardiness-zones, terraria, unix-permissions, aspect-ratio, number-bases, resistor-color-code, cognitive-psychology, braille, semver, cron, unicode, timezones, metar, incoterms, soundex, glob, ieee754, http-status, zigbee, uuid, base-encodings, percent-encoding, dms-coordinates, gray-code, hashing, classical-ciphers, hamming-code, geohash, mac-address, poker-hands, capacitor-codes, iso-duration, dice-probability, scrabble-score, wind-chill, mach-number, saffir-simpson, dataviz, patents, chords, dtmf, shoe-size, crc, base58, bech32, base85, reed-solomon, theoretical-ecology, string-similarity, checksums, compression, prng, bloom-filter, computus, hyperloglog, peppers, search-heuristics, tomatoes, solar-times, blood-alcohol, maid…

Input parameters:

- `domain` (string): Optional: restrict to one domain (e.g. 'acupuncture').
- `query` (string, required): The concept/entity to resolve.

### `search` (~4399 tokens)

Search the corpora

Search the mounted corpora by query. Routes to each domain's search tool; pass `domain` to target one. Empty results are logged as gaps. For COMPUTED quantities (molar mass, age/date math, unit conversions) this verb will miss and surface a cross-verb hint (e.g. compute_molar_mass) — follow that hint via `describe`/`call` rather than retrying search. Mounted corpora: acupuncture, cocktail, camera, law, copyright, trademark, music-theory, supplements, writing-style, minecraft-dungeons, spanish, medical-denials, languages, behavioral-econ, baseball, agent-practices, pokemon, mcp, readability, citations, relay, models, self-oracle, recall-traps, units, tax, physics, logic, astronomy, biology, geography, medicine, chemistry, calendar, math, eurorack, building-codes, cooking, personal-finance, stardew, coffee, electronics, physiology, diving, decibels, gearing, colorimetry, subnetting, textile-gauge, first-aid, statistics, chess-endgames, woodworking, rating-systems, tuning, check-digits, paper-sizes, wire-gauge, preferred-numbers, swe-claim-denial, psychology, roman-numerals, minecraft-mods, encodings, strength-training, hardiness-zones, terraria, unix-permissions, aspect-ratio, number-bases, resistor-color-code, cognitive-psychology, braille, semver, cron, unicode, timezones, metar, incoterms, soundex, glob, ieee754, http-status, zigbee, uuid, base-encodings, percent-encoding, dms-coordinates, gray-code, hashing, classical-ciphers, hamming-code, geohash, mac-address, poker-hands, capacitor-codes, iso-duration, dice-probability, scrabble-score, wind-chill, mach-number, saffir-simpson, dataviz, patents, chords, dtmf, shoe-size, crc, base58, bech32, base85, reed-solomon, theoretical-ecology, string-similarity, checksums, compression, prng, bloom-filter, computus, hyperloglog, peppers, search-heuristics, tomatoes, solar-times, blood-alcohol, maidenhead-locator, brewing, celestial-navigation, electrochemistry, fluid-mechanics, information-theory, structural-mechanics, rege…

Input parameters:

- `domain` (string): Optional: restrict to one domain.
- `query` (string, required): What to search for.

### `verify` (~382 tokens)

Verify claims against sources

Check claims against the corpora. SINGLE: verify({claim}) grounds one claim (core/verify truth-referee verdict where a domain surfaces it, else a corpus-grounding badge). RECEIPT: verify({claims:[…]}) claim-CHECKS each assertion and returns a TYPED per-claim verdict (verified / corrected / abstained) + drilled value + source, as a structured receipt (rides the response → portable to any client). Each claim is graded one of two ways: RECOGNITION-FREE — give `op` + `params` + `asserted` (STATE the computation you ran; it is RE-EXECUTED with no catalog match, so it grades NOVEL inputs too — the strongest form), or CATALOG-MATCH — give `claim` + `asserted` (matched to a covered record). Pass `asserted` (your own answer) to have it GRADED, not just grounded — the receipt corrects a confidently-wrong claim the model can't catch itself. A claim with no receipt line is unverified.

Input parameters:

- `asserted` (string): With a single `claim`/`op`: your answer, graded against the re-executed truth.
- `claim` (string): A single claim to check (back-compat / catalog-match). For several, use `claims`.
- `claims` (array): Receipt mode: the claims to check. Each item is {claim?, op?, params?, asserted?, domain?} (or a bare string).
- `domain` (string): Optional: restrict to one domain.
- `op` (string): Recognition-free single check: the computation you performed (e.g. 'compare_decimal'). Discover ops via the recall-traps check_claim verb (no args).
- `params` (object): Recognition-free single check: inputs for `op`.

### `enumerate` (~4399 tokens)

List a domain's categories or complete set

List broad CATEGORIES or the COMPLETE set within ONE corpus — the shape `search` cannot serve (search returns a ranked, capped sample, not the whole set). Requires `domain`. Returns every category axis with exact counts, and — with an optional `filter` (faceted constraints, e.g. {"spirit":"gin"}) — the COMPLETE record set scoped by it, marked `complete`. A count/aggregate is sound ONLY over a complete set; an incomplete return is flagged, never silently undercounted (the completeness contract). Use for "what kinds are there", "all the X", "how many X"; for one record use `lookup`/`search`. Discover a domain's facets via `describe`. The special domain `directory` enumerates the FLEET itself — the algorithm domains drillable holds (declared registry tags, faceted by class/grain; e.g. "what algorithms are there?"). Mounted corpora: acupuncture, cocktail, camera, law, copyright, trademark, music-theory, supplements, writing-style, minecraft-dungeons, spanish, medical-denials, languages, behavioral-econ, baseball, agent-practices, pokemon, mcp, readability, citations, relay, models, self-oracle, recall-traps, units, tax, physics, logic, astronomy, biology, geography, medicine, chemistry, calendar, math, eurorack, building-codes, cooking, personal-finance, stardew, coffee, electronics, physiology, diving, decibels, gearing, colorimetry, subnetting, textile-gauge, first-aid, statistics, chess-endgames, woodworking, rating-systems, tuning, check-digits, paper-sizes, wire-gauge, preferred-numbers, swe-claim-denial, psychology, roman-numerals, minecraft-mods, encodings, strength-training, hardiness-zones, terraria, unix-permissions, aspect-ratio, number-bases, resistor-color-code, cognitive-psychology, braille, semver, cron, unicode, timezones, metar, incoterms, soundex, glob, ieee754, http-status, zigbee, uuid, base-encodings, percent-encoding, dms-coordinates, gray-code, hashing, classical-ciphers, hamming-code, geohash, mac-address, poker-hands, capacitor-codes, iso-durat…

Input parameters:

- `domain` (string, required): The corpus to enumerate (required), e.g. 'cocktail'.
- `filter` (object): Optional faceted constraints to scope the complete set (e.g. {"family":"sour"}).

### `compute` (~4446 tokens)

Count or group a domain's records

A deterministic AGGREGATE over ONE corpus's COMPLETE set — the calculated-query shape ("how many X", "break X down by Y", "which is most common"). Requires `domain`; optional `filter` scopes the set (e.g. {"spirit":"gin"}); optional `by` (a record field) returns the count PER value, sorted, with the largest. Built ON `enumerate`, so it inherits the completeness contract: over an INCOMPLETE set it ABSTAINS rather than undercount. It counts on GROUND and refuses to crown a "best"/worth ranking (that has no oracle — the user's call). For the records/categories themselves use `enumerate`. Mounted corpora: acupuncture, cocktail, camera, law, copyright, trademark, music-theory, supplements, writing-style, minecraft-dungeons, spanish, medical-denials, languages, behavioral-econ, baseball, agent-practices, pokemon, mcp, readability, citations, relay, models, self-oracle, recall-traps, units, tax, physics, logic, astronomy, biology, geography, medicine, chemistry, calendar, math, eurorack, building-codes, cooking, personal-finance, stardew, coffee, electronics, physiology, diving, decibels, gearing, colorimetry, subnetting, textile-gauge, first-aid, statistics, chess-endgames, woodworking, rating-systems, tuning, check-digits, paper-sizes, wire-gauge, preferred-numbers, swe-claim-denial, psychology, roman-numerals, minecraft-mods, encodings, strength-training, hardiness-zones, terraria, unix-permissions, aspect-ratio, number-bases, resistor-color-code, cognitive-psychology, braille, semver, cron, unicode, timezones, metar, incoterms, soundex, glob, ieee754, http-status, zigbee, uuid, base-encodings, percent-encoding, dms-coordinates, gray-code, hashing, classical-ciphers, hamming-code, geohash, mac-address, poker-hands, capacitor-codes, iso-duration, dice-probability, scrabble-score, wind-chill, mach-number, saffir-simpson, dataviz, patents, chords, dtmf, shoe-size, crc, base58, bech32, base85, reed-solomon, theoretical-ecology, string-similarity, checksums, compression, pr…

Input parameters:

- `by` (string): Optional: a record field to group the count by (e.g. 'family'). Omit for a plain count. Discover fields via `enumerate`.
- `domain` (string, required): The corpus to compute over (required).
- `filter` (object): Optional faceted constraints to scope the set (e.g. {"spirit":"gin"}).

### `describe` (~123 tokens)

Describe a domain's tools

Discover the fleet's deeper machinery. No args → every mounted domain with its verbs grouped by rung (lookup → composability → contested → frontier). With `domain` → that domain's full tool list with descriptions and input schemas. Invoke anything it lists via `call`. Use this whenever the spine (lookup/search/verify) is too shallow for the question — e.g. "what can I make/patch/cover with MY inventory", contested claims, open questions.

Input parameters:

- `domain` (string): Optional: one domain's full tool schemas (e.g. 'cocktail').

### `call` (~123 tokens)

Call a domain verb

Invoke a domain verb discovered via `describe`: call(domain, tool, args). Identical to the namespaced tool surface — every answer drills to its source; a miss is a typed abstention (logged as demand), never a guess. Do NOT invent tool names — take them from `describe`.

Input parameters:

- `args` (object): Arguments for that verb, per its describe() inputSchema.
- `domain` (string, required): The mounted domain (e.g. 'cocktail').
- `tool` (string, required): The domain verb to invoke (e.g. 'reachable_cocktails').

### `notify_when_held` (~114 tokens)

Ask to hear when a missing answer lands

Register your user's standing interest in a question the corpus can't answer yet: when it becomes answerable, they get one email. Call this ONLY when the user themselves asked to be told — ask them first, this session, and use the email they give you now; never volunteer an address you hold from context or memory. One call per question.

Input parameters:

- `email` (string, required): The email the user gave you this session for this purpose.
- `query` (string, required): The question to follow, as the user asked it.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-drillable-gateway/mcp#diagnostics

## Score history

- 2026-08-03: 59
- 2026-08-02: 59
- 2026-08-01: 58
- 2026-07-31: 58
- 2026-07-30: 56
- 2026-07-29: 56
- 2026-07-28: 55
- 2026-07-27: 54
- 2026-07-26: 54

## Links

- Remote endpoint: https://mcp.drillable.com/
- Website: https://drillable.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-drillable-gateway/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-drillable-gateway/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-drillable-gateway/mcp
