Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Clawhard Studio

REMOTE · MCP.CLAWHARD.COM

Token counts, contrast, time zones, JSON repair, Supabase RLS, leaked API keys, AI-bot access.

Available components

+3 this week 69 Trust /100

Last scanned (18 hours ago)

Scores higher than 54% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Productivity and Notes

Trust breakdown (7 categories)

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 Security63
Transport & Reachability100
Schema Quality & AI Usability87
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5988 tokens (~112/item across 53 items; 28 tools + 25 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability check failed: schema churn in the 7 days we've observed: 9 tool removals, 0 breaking changes, 0 auth/transport breaks, 27 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 28 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Changelog

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
    • The server rewrote its instructions, which are the text every model session reads security
    • New prompt “spill_check_for_secrets” functional
    • New resource “spill-llms-txt” functional
    • New resource “spill-result-view” functional
    • Server version: 1.8.0 → 1.9.0 functional
    • New tool “spill_scan_secrets” functional
  • 3 Nov 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “mend_outline_json” rewrote its description, which is the text the model reads security
    • Tool “meridian_convert_time” rewrote its description, which is the text the model reads security
    • Tool “meridian_meeting_slots” rewrote its description, which is the text the model reads security
    • Tool “meridian_now” rewrote its description, which is the text the model reads security
    • Tool “meridian_zone_info” rewrote its description, which is the text the model reads security
    • Schema quality: 4876 → 5454 ▼ functional
    • New prompt “deadbolt_audit_supabase” functional
    • New resource “deadbolt-llms-txt” functional
    • New resource “deadbolt-result-view” functional
    • Server version: 1.4.0 → 1.8.0 functional
    • New tool “deadbolt_catalog_query” functional
    • New tool “deadbolt_check_supabase_access” functional
  • 2 Nov 26 +1
    • Stability: 0.13 → fail ▼ security
    • Tool “aitab_list_plans” was removed ▼ security
    • Tool “aitab_total” was removed ▼ security
    • Tool “doorman_build_robots” was removed ▼ security
    • Tool “doorman_check_robots” was removed ▼ security
    • Tool “doorman_check_site” was removed ▼ security
    • Tool “fluff_check_text” was removed ▼ security
    • Tool “fluff_gist_text” was removed ▼ security
    • Tool “halves_create_group” was removed ▼ security
    • Tool “lingo_brief” was removed ▼ security
    • Tool “lingo_list_terms” was removed ▼ security
    • Tool “lingo_translate” was removed ▼ security
    • Tool “runsheet_create” was removed ▼ security
    • Tool “runsheet_list_templates” was removed ▼ security
    • Tool “slopscore_check_site” was removed ▼ security
    • Tool “tells_fix_text” was removed ▼ security
    • Tool “tells_score_text” was removed ▼ security
    • Tool “tokendiet_trim_text” was removed ▼ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “halves_settle_up” rewrote its description, which is the text the model reads security
    • Schema quality: 1965 → 2467 ▼ functional
    • Schema quality: 131 → 106 ▲ functional
    • The server now declares the “prompts” capability functional
    • The server now declares the “resources” capability functional
    • First check of Capabilities: pass functional
    • First check of Schema quality: 100 functional
    • New prompt “aitab_audit_my_subscriptions” functional
    • New prompt “doorman_audit_ai_access” functional
    • New prompt “halves_split_the_bill” functional
    • New prompt “mend_fix_my_json” functional
    • New prompt “meridian_plan_a_call” functional
    • New prompt “runsheet_plan_event_day” functional
    • New prompt “slopscore_review_my_site” functional
    • New prompt “swatch_audit_my_colors” functional
    • New prompt “tells_humanize_draft” functional
    • New prompt “tokendiet_will_it_fit” functional
    • New resource “aitab-llms-txt” functional
    • New resource “aitab-result-view” functional
    • New resource “clawhard-llms-txt” functional
    • New resource “doorman-llms-txt” functional
    • New resource “doorman-result-view” functional
    • New resource “halves-llms-txt” functional
    • New resource “halves-result-view” functional
    • New resource “mend-llms-txt” functional
    • New resource “mend-result-view” functional
    • New resource “meridian-llms-txt” functional
    • New resource “meridian-result-view” functional
    • New resource “runsheet-llms-txt” functional
    • New resource “runsheet-result-view” functional
    • New resource “slopscore-llms-txt” functional
    • New resource “slopscore-result-view” functional
    • New resource “swatch-llms-txt” functional
    • New resource “swatch-result-view” functional
    • New resource “tells-llms-txt” functional
    • New resource “tells-result-view” functional
    • New resource “tokendiet-llms-txt” functional
    • New resource “tokendiet-result-view” functional
    • Server version: 1.0.0 → 1.4.0 functional
    • New tool “aitab_list_ai_plans” functional
    • New tool “aitab_total_ai_subscriptions” functional
    • New tool “doorman_check_ai_bot_access” functional
    • New tool “doorman_check_robots_txt” functional
    • New tool “doorman_write_robots_txt” functional
    • New tool “halves_create_group_link” functional
    • New tool “mend_check_json” functional
    • New tool “mend_outline_json” functional
    • New tool “mend_query_json” functional
    • New tool “mend_repair_json” functional
    • New tool “meridian_convert_time” functional
    • New tool “meridian_meeting_slots” functional
    • New tool “meridian_now” functional
    • New tool “meridian_zone_info” functional
    • New tool “runsheet_create_schedule” functional
    • New tool “slopscore_check_website” functional
    • New tool “swatch_check_contrast” functional
    • New tool “swatch_check_pairs” functional
    • New tool “swatch_convert_color” functional
    • New tool “swatch_fix_contrast” functional
    • New tool “swatch_make_scale” functional
    • New tool “swatch_pick_text_color” functional
    • New tool “tells_check_writing” functional
    • New tool “tokendiet_count_tokens” functional
    • New tool “doorman_build_robots” functional
    • New tool “doorman_check_robots” functional
    • New tool “doorman_check_site” functional
    • Tool “halves_settle_up” changed its title: Work out who owes whom, in the fewest payments → Work out who owes whom in the fewest payments cosmetic
  • 31 Oct 26 +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.

  • 30 Oct 26 0
    • Schema quality: 1711 → 1965 ▼ functional
    • Schema quality: good → excellent functional
    • New tool “fluff_check_text” functional
    • New tool “fluff_gist_text” functional
  • 29 Oct 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 1334 → 1711 ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • New tool “lingo_brief” functional
    • New tool “lingo_list_terms” functional
    • New tool “lingo_translate” functional
  • 28 Oct 26 66

    First indexed and scored.

Diagnostics

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://mcp.clawhard.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=clawhard.com CN=WE1,O=Google Trust Services,C=US 28 Oct 2026 26 Jan 2027 ECDSA 256 ECDSA-SHA256 8c01bdcc689fa8ba13ab6284bbe74bda
SANs: clawhard.com, mcp.clawhard.com, *.mcp.clawhard.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.clawhard.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
clawhard.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
x-content-type-options nosniff

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.clawhard.com/mcp Verified 200
http (plaintext) http://mcp.clawhard.com/mcp Served over HTTP 200
MCP tools · 28 exposed · ~5,036 tokens

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 →

Tool Tokens
aitab_list_ai_plans ~108

Use when the user asks what AI plans cost (ChatGPT, Claude, Gemini, Perplexity, Cursor, Copilot, Midjourney and others), or before aitab_total_ai_subscriptions to look up plan keys. Returns each service with its plans, USD monthly and yearly list prices and the key to pass on. Prices were checked on official pages and carry a checked date; plans marked estimate are unconfirmed. No input. Prefer this over remembering prices, which change often.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

aitab_total_ai_subscriptions ~200

Use when the user lists the AI tools they pay for and asks what they spend per month or year, whether they are paying for overlapping tools, or what a stack of AI subscriptions costs. Returns the monthly, yearly and daily total, overlaps between plans, plans already included in another plan they pay for (could_cut, safe to drop), plans that merely overlap in kind (consider_dropping, ask before recommending a cut), and a link to a shareable receipt. Get plan keys from aitab_list_ai_plans. Example: {"plans": ["chatgpt.plus", "claude.pro", "cursor.pro"]}. Add ":y" to a key for yearly billing.

NameTypeReqDescription
billingstring–Which total the shared receipt shows first. Default monthly.
plansarrayyesPlan keys, e.g. ["chatgpt.plus","claude.pro","cursor.pro"]. In a GET query use a comma-separated list.

No output schema declared.

No examples provided.

deadbolt_catalog_query ~95

Use when you need to check a live Supabase project rather than migration files: returns a read-only SQL query that reads table RLS settings, grants for anon and authenticated, policies, SECURITY DEFINER functions and storage buckets (never row data) and returns one JSON value. Run it with the user's Supabase SQL Editor or a Supabase MCP execute_sql tool, then pass the JSON to deadbolt_check_supabase_access.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

deadbolt_check_supabase_access ~360

Use when you write, review or are about to apply Supabase / PostgreSQL migration SQL (CREATE TABLE, RLS, CREATE POLICY, GRANT, views, SECURITY DEFINER functions, storage buckets), or when a user asks whether their Supabase data is exposed, whether RLS is set up right, or why a query returns 42501 permission denied or no rows. Replays the SQL with real Postgres rules and returns, per table, what signed-out (anon) and signed-in (authenticated) users can SELECT/INSERT/UPDATE/DELETE (all rows, own rows, some rows, none, or denied for a missing grant), plus findings with severity and ready-to-run fix SQL: RLS off, policies written but RLS never enabled, using(true) writes, personal columns readable by anyone, views that bypass RLS, SECURITY DEFINER functions anyone can call, user_metadata in policies, public bucket listing, grants missing after the Oct 30 2026 default change. Also accepts the JSON produced by deadbolt_catalog_query for the live database. Deterministic; never connects to any database. Run it before telling a user their schema is safe. Up to 200,000 characters.

NameTypeReqDescription
project_created_before_2026_10_30boolean–Only for SQL input. true (default): the project grants new public tables to anon and authenticated automatically (projects created before Oct 30, 2026). false: new tables get no grants unless the SQL…
sqlstringyesMigration SQL (one or many files concatenated, in order), or the single JSON value returned by the catalog query.

No output schema declared.

No examples provided.

doorman_check_ai_bot_access ~160

Use when the user asks whether their site (or any public site) blocks ChatGPT, Claude, Google AI, Perplexity or other AI crawlers, whether AI can read or train on their content, or why AI search does not mention their site. Fetches the live robots.txt and reports, for 22 named AI bots in four groups (AI training, AI search, assistants, search engines), which are let in, kept out or partly blocked, plus the site's content-signal preference and fixes. Example: {"url": "example.com"}. Read-only. To write a new robots.txt use doorman_write_robots_txt.

NameTypeReqDescription
urlstringyesWebsite address or domain, e.g. nytimes.com

No output schema declared.

No examples provided.

doorman_check_robots_txt ~143

Use when the user pastes the text of a robots.txt (or you have drafted one) and asks which AI bots it lets in or blocks, or whether a change does what they want. Parses it the way crawlers do (groups, wildcards, longest-match) and reports each of 22 named AI bots as let in, kept out or partly blocked, with notes and a suggested choice. Pure parsing, no network. Example: {"robots_txt": "User-agent: GPTBot\nDisallow: /"}.

NameTypeReqDescription
robots_txtstringyesThe full robots.txt text (up to 512 KB). Empty means no robots.txt.

No output schema declared.

No examples provided.

doorman_write_robots_txt ~204

Use when the user wants to allow or block AI training, AI search or assistant bots on their site and needs the robots.txt lines. Takes an optional existing robots.txt plus a choice of "in" or "out" for each of three groups (training, ai_search, assistants) and returns a complete robots.txt that keeps existing rules, adds one clean group per choice and a shared content-signal line. Example: {"training": "out", "ai_search": "in", "assistants": "in"}. Returns text to paste at /robots.txt; it does not change any site.

NameTypeReqDescription
ai_searchstring–AI search and answer engines (default in).
assistantsstring–Assistants that open a page because a person asked (default in).
robots_txtstring–Current robots.txt text to keep (optional).
trainingstring–Let AI training bots in or keep them out (default out).

No output schema declared.

No examples provided.

halves_create_group_link ~201

Use when the user wants a shared place for a group (trip, flat, event) to keep adding expenses and see who owes whom, not just a one-time calculation. Creates a group and returns a link anyone can open without signing up to add and edit expenses. Anyone with the link can edit it, so share it only with the group. Creates a saved page, so only call it when the user wants a shared group. For a one-off answer use halves_settle_up. Example: {"name": "Lisbon trip", "currency": "EUR", "people": ["Ana", "Ben", "Cy"]}.

NameTypeReqDescription
currencystring–Main currency, default USD.
expensesarray–Optional starting expenses (up to 50), same shape as the settle tool.
namestring–Group name, e.g. "Lisbon trip".
peoplearrayyesNames (2 to 40).

No output schema declared.

No examples provided.

halves_settle_up ~221

Use when the user shares a trip, dinner, household or group expense list and asks who owes whom, how to split costs, or how to settle up. Returns each person's paid, share and net balance, and the smallest set of payments that squares everyone up. Handles equal splits, splits among a subset, exact amounts and payments already made, with correct rounding. Nothing is saved. Example: {"people": ["Ana", "Ben", "Cy"], "expenses": [{"what": "Dinner", "amount": 90, "paid_by": "Ana"}, {"what": "Taxi", "amount": 24, "paid_by": "Ben", "split_between": ["Ben", "Cy"]}]}. Do the arithmetic here instead of by hand.

NameTypeReqDescription
currencystring–ISO currency code, default USD.
expensesarrayyesWhat was paid.
paymentsarray–Payments already made between people to settle up.
peoplearrayyesNames of everyone in the group (2 to 40, unique).

No output schema declared.

No examples provided.

mend_check_json ~93

Use when you need to know whether text is strictly valid JSON, and if not, exactly where it breaks. Strict RFC 8259 check (the same accept/reject as JSON.parse). Returns line, column, the offending line with a caret and whether Mend can repair it. Use mend_repair_json to fix it. Up to 100,000 characters.

NameTypeReqDescription
textstringyesThe text to validate.

No output schema declared.

No examples provided.

mend_outline_json ~146

Use when you are about to read a big JSON response, log or export into context, before loading it: returns a compact outline of the structure (keys, types, array lengths, one example per repeated shape) so you can plan a query without spending tokens on the whole document. Repairs the JSON first if needed. Follow with mend_query_json to pull only the values you need. Up to 100,000 characters.

NameTypeReqDescription
max_depthinteger–How many levels to expand. Default 4.
max_itemsinteger–How many array items to show when items differ. Default 6.
textstringyesThe JSON (or JSON-ish text).

No output schema declared.

No examples provided.

mend_query_json ~155

Use when you need specific fields from a JSON document without reading all of it: $.users[0].name, $.items[*].id, $.a.b[-1], $.list[1:3], $..email (recursive). Returns each match with its exact path, type and value. Repairs the JSON first if needed, so broken input still works. Up to 100,000 characters.

NameTypeReqDescription
maxinteger–Maximum matches to return. Default 50.
pathstringyesPath such as $.users[*].email, data.items[0], $..id, $.list[-1], $.list[1:3].
textstringyesThe JSON (or JSON-ish text).

No output schema declared.

No examples provided.

mend_repair_json ~247

Use when JSON from an LLM, API, log, config or copy-paste fails to parse (JSON.parse error, "Unexpected token", "Expecting property name"), or the user pastes JSON with trailing commas, single quotes, unquoted keys, comments, Python True/False/None, NaN, missing commas or brackets, a ```json fence, text around it, or output that was cut off. Deterministic repair: returns valid, formatted JSON plus a list of every fix with line and column. Values are never rewritten, so big numbers, number formatting and key order stay exactly as written (re-asking a model to "fix the JSON" changes data and costs tokens). If the text is already valid it says so. Up to 100,000 characters.

NameTypeReqDescription
indentinteger–Spaces per indent level in the output. Default 2. Use 0 for one minified line.
sort_keysboolean–Sort object keys alphabetically. Default false (keep the original order).
textstringyesThe broken JSON, or any text that contains JSON (a chat reply, a log line, a code block).

No output schema declared.

No examples provided.

meridian_convert_time ~282

Use when you need to convert a specific wall-clock time from one place to others, for any date. It uses the real tz database, so daylight saving is right for that exact date (the US and Europe switch on different weeks), and it warns when the time does not exist (spring forward) or happens twice (fall back). Time accepts "15:00", "3:30pm", "noon", "now" or an ISO local time like 2026-11-05T15:00 (no Z). Date defaults to today in the source zone. Returns {input, utc, source:{...}, converted:[{place, zone, local, time_12h, date, utc_offset, abbreviation, day_note, hours_ahead_of_source}], warning?, summary, open_url}.

NameTypeReqDescription
datestring–Optional date YYYY-MM-DD in the source zone. Default today.
fromstringyesSource place or zone, e.g. "New York" or "America/New_York".
timestringyesLocal time in the source place, e.g. "15:00", "3:30pm", "noon", "now", "2026-11-05T15:00".
toarrayyesDestination places, e.g. ["London","Tokyo"].

No output schema declared.

No examples provided.

meridian_meeting_slots ~219

Use when you need to schedule a call across several places. Scans the day in 15-minute steps and ranks start times so the most people are inside working hours and nobody is at night, using each place's real offset and DST for that date. Returns up to 5 slots with each person's local start and end, and says plainly when no time works for everyone. Defaults: working hours 9 to 17, 60 minutes, date today in the first place.

NameTypeReqDescription
countinteger–How many slots to return, default 5.
datestring–Date YYYY-MM-DD, local to the first place. Default today.
duration_minutesinteger–Meeting length in minutes, multiple of 15. Default 60.
end_hourinteger–Working day end hour, default 17.
placesarrayyesWhere each attendee is, e.g. ["San Francisco","London","Tokyo"].
start_hourinteger–Working day start hour, default 9.

No output schema declared.

No examples provided.

meridian_now ~116

Use when you need to know what time or date it is right now somewhere. You have no clock of your own, so never guess the current time. Returns the real current time, date, UTC offset, abbreviation and daylight saving status for each place. Places can be cities ("Tokyo"), IANA zones ("Europe/Paris"), abbreviations ("PST") or "UTC+5:30".

NameTypeReqDescription
placesarrayyesCities, IANA zones or abbreviations, e.g. ["London","Asia/Tokyo"].

No output schema declared.

No examples provided.

meridian_zone_info ~135

Use when you need to answer "what is the UTC offset of X", "does X observe daylight saving" and "when do the clocks change". Returns the current offset and abbreviation, whether the place observes DST, every clock change in the year with exact local before and after times, and the next change. Abbreviations like IST or CST are ambiguous, so the answer says which zone was used.

NameTypeReqDescription
placestringyesCity, IANA zone or abbreviation, e.g. "London" or "America/Phoenix".
yearinteger–Year to list clock changes for. Default this year.

No output schema declared.

No examples provided.

runsheet_create_schedule ~244

Use when the user wants a shareable run-of-show or day-of schedule for a wedding, conference, shoot or other event that guests or crew can open on their phone and that updates live when edited. Creates the page and returns a view link to share with everyone and a private edit link to keep. Start from a template (wedding, conf, shoot, blank) or pass your own items. Example: {"name": "Maya and Sam wedding", "date": "2026-09-12", "timezone": "America/New_York", "template": "wedding"} or {"name": "Offsite", "items": [{"time": "09:00", "title": "Welcome", "duration_minutes": 30}]}. Creates a saved page, so only call it when the user wants one.

NameTypeReqDescription
datestring–YYYY-MM-DD
itemsarray–Schedule slots.
namestring–Event name.
templatestring–Starter schedule. Ignored if items are given.
timezonestring–IANA time zone, e.g. America/New_York. Default UTC.

No output schema declared.

No examples provided.

slopscore_check_website ~171

Use when the user asks whether a website, landing page or app looks AI-generated or generic, wants a design critique of a live URL, or asks "does my site look like AI slop?". Fetches the page and checks 19 habits (purple-blue gradients, buzzword copy, glassmorphism, icon-card grids, template headlines, app-builder fingerprints and more), then returns a 0-100 score, a verdict, each habit found with the evidence and how to fix it, and the habits that were not found. It is a habit check, not an AI detector. Public http(s) pages only. Example: {"url": "https://example.com"}.

NameTypeReqDescription
urlstringyesPublic website address, for example example.com or https://example.com/pricing

No output schema declared.

No examples provided.

spill_scan_secrets ~453

Use when the user asks whether some text contains secrets, or before you paste, commit, share, log or send code, a .env file, a diff, config, logs, a stack trace or a prompt that might contain credentials, for example "did I leak a key in this?", "is this safe to post?" or "redact the secrets in this log". Detects 48 services by exact key format (OpenAI, Anthropic, Gemini/Google, Groq, xAI, OpenRouter, Stripe, Supabase, AWS, GitHub, GitLab, npm, PyPI, Slack, Discord, Twilio, SendGrid, Resend, Shopify, Cloudflare and more) plus PEM private keys, database URLs with passwords, JWTs, Authorization headers and high-entropy values in variables named like secret, token, api_key or password. It verifies what it can deterministically: GitHub token CRC32 checksums, JWT and Supabase key role and expiry (service_role vs anon), documented example keys and placeholders, and NEXT_PUBLIC_/VITE_/EXPO_PUBLIC_ variables that ship to every browser. Returns findings with severity (critical, high, medium, public, info), line and column, a masked preview (never the full secret), why it matters, the fix and the provider's revoke URL, plus a redacted copy with labels like [STRIPE_SECRET_KEY_1]. Text is processed in memory to answer and is not stored. Limits: format-based, so a random secret with a neutral name can be missed; it never tests keys against providers; up to 200,000 characters. For secrets the user should not send anywhere, point them to https://spill.clawhard.com, which runs entirely in the browser.

NameTypeReqDescription
redact_public_keysboolean–false (default): keep keys that are meant to be public (Stripe pk_, Supabase anon or publishable, Mapbox pk.) in the redacted copy so the code still runs. true: hide them too.
textstringyesThe text to scan: code, a diff, .env, config, logs, a stack trace, a chat or a prompt.

No output schema declared.

No examples provided.

swatch_check_contrast ~177

Use when the user asks whether a color combination is readable or accessible, passes WCAG AA or AAA, or has enough contrast (text on a background, button, badge, link color). Returns the exact contrast ratio, pass or fail for normal text, large text and UI components at AA and AAA, the APCA lightness contrast and a plain note. Colors can be hex, rgb(), hsl() or CSS names. Example: {"foreground": "#777777", "background": "#ffffff"}. Language models cannot compute this reliably, so call it instead of guessing.

NameTypeReqDescription
backgroundstringyesBackground color, e.g. "#ffffff".
foregroundstringyesText (or icon) color, e.g. "#767676" or "rgb(20 20 20)" or "tomato".

No output schema declared.

No examples provided.

swatch_check_pairs ~121

Use when the user has a whole design system, theme or stylesheet and wants every text and background pair checked for accessibility in one go. Takes up to 50 pairs and returns the ratio and AA and AAA results for each, with a count of failures. Example: {"pairs": [{"foreground": "#777", "background": "#fff", "label": "muted text"}, {"foreground": "#fff", "background": "#ff5a1f", "label": "button"}]}.

NameTypeReqDescription
pairsarrayyesPairs to check.

No output schema declared.

No examples provided.

swatch_convert_color ~93

Use when the user asks to convert a color between hex, RGB, HSL and OKLCH, or asks what a color is called or how light it is. Returns all formats, the relative luminance and the nearest CSS color name. Example: {"color": "#ff5a1f"}. Exact math, so prefer it to converting by hand.

NameTypeReqDescription
colorstringyesAny CSS color.

No output schema declared.

No examples provided.

swatch_fix_contrast ~139

Use when a color pair fails contrast and the user wants the smallest change that makes it pass, such as "make this gray text accessible without changing the look". Returns the closest text color on that background that reaches the target (AA, AAA, AA-large or ui), and separately the closest background, keeping the hue. Example: {"foreground": "#777777", "background": "#ffffff", "target": "AA"}. Returns already_passes if nothing needs to change.

NameTypeReqDescription
backgroundstringyesCurrent background color.
foregroundstringyesCurrent text color.
targetstring–Contrast target. Default AA.

No output schema declared.

No examples provided.

swatch_make_scale ~132

Use when the user asks for a palette, shades, tints, a design-token scale or a Tailwind-style 50 to 950 ramp from a brand color. Returns 11 steps that keep the hue, with the hex, contrast on white and on black, and the best text color for each step. Example: {"color": "#ff5a1f", "name": "brand"}.

NameTypeReqDescription
colorstringyesBase color, e.g. "#ff5a1f".
namestring–Token name used in the CSS and Tailwind output. Default "brand".

No output schema declared.

No examples provided.

swatch_pick_text_color ~90

Use when the user asks what text color (black or white) to put on a given background, button or brand color so it is readable. Returns the better of black or white with both contrast ratios, the WCAG grade and a softer near-black option. Example: {"background": "#ff5a1f"}.

NameTypeReqDescription
backgroundstringyesThe surface color the text sits on.

No output schema declared.

No examples provided.

tells_check_writing ~178

Use when the user asks whether a piece of writing sounds like AI, wants an email, post, essay or cover letter checked for chatbot habits before sending, or wants to know which phrases to fix. Returns a 0-100 score, a verdict, and each habit found (chatbot words like "delve" and "tapestry", "not X, it's Y" framing, em-dash overuse, assistant filler, fake suspense, stiff transitions, markdown leftovers and more) with examples and why readers notice it. It is a habit check, not an AI detector, and short texts give rough scores. Example: {"text": "<the draft to check>"}. To rewrite, use your own judgment on the flagged habits.

NameTypeReqDescription
textstringyesThe writing to check (up to 60,000 characters).

No output schema declared.

No examples provided.

tokendiet_count_tokens ~153

Use when the user asks how many tokens a text, prompt, log, document or code paste is, whether it fits a context window (128K, 200K, 1M), or how big something is before they send it to an AI. Returns the exact o200k token count (GPT-4o family and later; Claude and Gemini usually within about 15%), plus words, characters and how much of each window it uses. Language models cannot count their own tokens, so call this instead of estimating. Example: {"text": "<the text to measure>"}. Not for shortening text.

NameTypeReqDescription
textstringyesThe text to count (up to 200,000 characters).

No output schema declared.

No examples provided.

Install

How do I install the Clawhard Studio MCP server?

Clawhard Studio is a hosted endpoint at https://mcp.clawhard.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 · mcp.clawhard.com

# add to Claude Code
claude mcp add --transport http com-clawhard-studio 'https://mcp.clawhard.com/mcp'
Common questions

What is the Clawhard Studio MCP server?

Clawhard Studio is an MCP server listed in the public MCP registry as com.clawhard/studio. Token counts, contrast, time zones, JSON repair, Supabase RLS, leaked API keys, AI-bot access. This page covers its hosted endpoint (https://mcp.clawhard.com/mcp).

Is the Clawhard Studio MCP server safe to use?

Clawhard Studio scores 69 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 Clawhard Studio MCP server expose?

Clawhard Studio exposes 28 tools: tokendiet_count_tokens, slopscore_check_website, aitab_list_ai_plans, aitab_total_ai_subscriptions, tells_check_writing, and 23 more. Their descriptions and schemas cost roughly 5,036 tokens of context every time the server is loaded.

Does the Clawhard Studio MCP server require authentication?

No. We connected to Clawhard Studio without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Clawhard Studio MCP server still maintained?

Clawhard Studio is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.