protogrid

Search / org.toolapi/hub

ToolAPI

R0· no sign-in

Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

v2.8.2 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality73needs work
Trust88of 100
Uptime, 30 days96%
Latency p50494 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "hub": {
      "type": "http",
      "url": "https://toolapi.org/mcp"
    }
  }
}
claude mcp add --transport http hub https://toolapi.org/mcp
[mcp_servers.hub]
url = "https://toolapi.org/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hub": {
      "type": "remote",
      "url": "https://toolapi.org/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "hub": {
      "type": "http",
      "url": "https://toolapi.org/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=hub&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdG9vbGFwaS5vcmcvbWNwIn0%3D"
}
{
  "servers": {
    "hub": {
      "type": "http",
      "url": "https://toolapi.org/mcp"
    }
  }
}
{
  "mcpServers": {
    "hub": {
      "httpUrl": "https://toolapi.org/mcp"
    }
  }
}
extensions:
  "hub":
    enabled: true
    name: "hub"
    type: streamable_http
    uri: "https://toolapi.org/mcp"
    timeout: 300

Quality 73 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2024-11-05; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene57 · weight 30
  • warn
    tools.descriptions2 of 193 tools have a description under 20 characters
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: json_format (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); graphql_schema_diff (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); json_pointer_get (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • warn
    tools.token_costabout 9,890 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

193 tools, about 9,890 tokens to load them all · tool set 4b767f817639 · checked 2026-10-19 13:37 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 88 / 100

provenance85
liveness99
freshness65
hygiene100

+repository +dns-namespace +website +reachable +uptime-96% ~updated-102d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://toolapi.org/sse sseunknownno (13 failures)0%–––
https://toolapi.org/mcp streamable-httpnoneyes96%494 ms2024-11-052026-10-19

Tools (193)

base64_decodeBase64-decode to UTF-8.
base64_encodeBase64-encode UTF-8.
base64url_decodeBase64url-decode to UTF-8.
base64url_encodeBase64url-encode UTF-8 (no padding, URL-safe).
bcrypt_hashBcrypt-hash a password for storage.
bcrypt_verifyVerify password against bcrypt hash.
changelog_parseParse Keep-a-Changelog style markdown into version sections.
cidr_calcCalculate IPv4/IPv6 network info from CIDR (hosts, broadcast, private).
cidr_containsCheck if IP address falls within a CIDR range.
code_fence_extractExtract fenced code blocks from markdown (language + code).
color_contrastWCAG contrast ratio between two hex colors (AA/AAA). When: WCAG contrast ratio for UI color pairs.
color_convertConvert color between hex, rgb(), and hsl().
compose_validateValidate docker-compose YAML and flag privileged/host-network/secret env issues.
content_type_parseParse Content-Type header into mime/charset/params.
conventional_commit_lintLint Conventional Commits message (feat/fix/chore…).
cookie_header_parseParse Cookie request header into name/value map. When: Parse Cookie request headers.
cors_checkCheck CORS Allow-Origin vs credentials for unsafe combinations.
cron_describeHuman-readable natural language description of cron expression (EN + ZH).
cron_matchesCheck if a cron expression matches a specific datetime (ISO-8601).
cron_next_runsPreview next N execution times for a 5-field cron expression.
cron_parseParse 5-field cron into named fields (minute hour dom month dow).
cron_semantic_validateValidate cron field syntax and value ranges (minute 0-59, hour 0-23, etc.).
cron_validateCheck cron string has exactly five fields.
cron_validate_batchBatch semantic validate of 5-field cron expressions.
csp_parseParse Content-Security-Policy header and flag unsafe directives.
csv_to_jsonConvert CSV text to JSON array of row objects. When: Convert CSV rows → JSON array of objects.
csv_validateValidate CSV structure — consistent column counts / header. When: Check CSV column consistency before import.
currency_convertConvert amount between currencies using latest ECB rates.
currency_listList supported fiat currencies (Frankfurter/ECB, no API key).
currency_ratesLatest exchange rates (Frankfurter ECB data, no API key).
datetime_parseParse unix timestamp or ISO-8601 into UTC ISO + unix.
dependency_versions_extractExtract name@version from requirements/lockfile/go.mod/Cargo snippets. When: Extract name@version from lock/requirements snippets (best-effort).
dns_lookupDNS lookup for domain (A, AAAA, MX, TXT, NS, CNAME, SOA).
dockerfile_lintLint Dockerfile for common security/style issues (root user, curl|sh, secrets).
domain_parseParse domain into labels, TLD, registrable domain, subdomain. When: Split domain into subdomain/registrable/TLD (best-effort eTLD).
duration_parseParse duration (ISO-8601 PnDTnHnMnS or human 1h30m / 90s) to seconds. When: Parse ISO-8601 / human durations to seconds.
editorconfig_validateValidate .editorconfig syntax and common keys.
email_validateValidate email address format. When: Syntax-check a single email address.
env_diffDiff two .env files — only_in_a / only_in_b / changed values. When: Diff two .env files for missing/changed keys.
env_parseParse .env / dotenv text into key-value variables.
env_required_checkCheck .env text contains required keys (and non-empty values).
extract_emailsExtract email addresses from text. When: Pull email addresses from free text / logs.
extract_urlsExtract HTTP/HTTPS URLs from arbitrary text.
frontmatter_parseParse YAML frontmatter from markdown (--- ... ---). When: Split YAML frontmatter from markdown body.
github_actions_lintLint GitHub Actions workflow YAML (triggers, unpinned actions, curl|bash).
gitignore_checkReview .gitignore for common missing ignores (.env, node_modules, keys).
gitignore_matchMatch paths against .gitignore rules (ignore / negate). When: Test paths against .gitignore rules (best-effort).
git_url_parseParse git remote URL (ssh/https) into host/owner/repo. When: Parse git@ / https remotes into owner/repo.
glob_match_batchMatch paths against glob patterns (gitignore-style fnmatch).
graphql_operations_listList GraphQL query/mutation/subscription names and type defs. When: List GraphQL ops/types from a document (best-effort).
graphql_schema_diffDiff two GraphQL schemas for removed types/fields (breaking changes).
graphql_validateValidate GraphQL query or schema SDL syntax (parse only).
hash_compareCompare two hash digests (case-insensitive).
hash_md5MD5 hex digest of UTF-8 text. When: MD5 digest (non-crypto integrity / legacy checksums).
hash_sha256SHA256 hex digest.
hash_sha512SHA512 hex digest.
hex_decodeHex string to UTF-8 text.
hex_encodeUTF-8 text to hex string.
hmac_signHMAC sign message (sha1/sha256/sha512); hex or base64 output.
hmac_verifyVerify HMAC signature (hex or base64).
hosts_file_parseParse /etc/hosts style file into IP → hostnames entries. When: Parse /etc/hosts style IP→hostname maps.
html_decodeUnescape HTML entities.
html_encodeEscape HTML entities.
html_security_scanScan HTML for XSS-prone patterns (javascript: URLs, inline handlers, eval). Note: best-effort / heuristic — not a full language parser.
html_to_markdownConvert HTML to Markdown text. When: Convert HTML → markdown for docs the agent edits.
http_headers_fetchFetch HTTP response headers (HEAD/GET) for URL.
http_headers_parseParse raw HTTP request/response header block into map. When: Parse raw HTTP header blocks.
http_status_classifyClassify HTTP status codes into 2xx/3xx/4xx/5xx buckets.
http_status_lookupExplain HTTP status code (e.g. 404, 429, 503).
human_bytesFormat bytes to human size, or parse '1.5 GB' to bytes. When: Format or parse human byte sizes (1.5 GB).
identifier_validateValidate identifier for python/javascript/typescript (keywords + syntax).
import_list_analyzeList imports from python/js source and flag duplicates. Note: best-effort / heuristic — not a full language parser.
ini_parseParse INI / simple key=value config into sections. When: Parse INI/section configs into structured maps.
ip_geolocationGeolocate public IP: country, city, lat/lon, timezone, ISP.
ipv4_private_checkClassify IP as private/loopback/link-local/global (SSRF helper).
ip_version_detectDetect IPv4/IPv6 and classify private/loopback/global. When: Classify IPv4/IPv6 and private/global.
json_assert_pathsAssert JSONPath expressions against JSON (exists/equals/type) — agent self-check.
json_equalDeep-compare two JSON documents and list differing paths.
json_flattenFlatten nested JSON to dot-key map. When: Flatten nested JSON keys before comparing or exporting.
json_formatPretty-print JSON with indent. When: Pretty-print JSON when the agent needs readable output.
jsonl_validateValidate JSON Lines (NDJSON); optional per-line JSON Schema. When: Validate NDJSON / JSON Lines logs or datasets.
json_mergeDeep-merge two JSON objects (second overlays first).
json_merge_patchApply RFC 7396 JSON Merge Patch (null deletes keys). When: RFC 7396 merge patch — use when patching JSON configs.
json_minifyMinify JSON (remove whitespace). When: Minify JSON for compact payloads or size checks.
json_patch_applyApply RFC 6902 JSON Patch ops (add/remove/replace/test/move/copy). When: Apply RFC 6902 ops (add/remove/replace/test/move/copy).
jsonpath_queryQuery JSON with JSONPath expression; returns matching values.
json_pointer_getGet value by RFC 6901 JSON Pointer (e.g. /user/id). When: Read one field by RFC 6901 pointer without full walk in the agent.
json_pretty_diffUnified diff of two JSON documents (pretty-printed).
json_schema_inferInfer a Draft-7 JSON Schema from a sample JSON document (agent favorite).
json_schema_validateValidate JSON data against JSON Schema (Draft 7).
json_schema_validate_batchBatch JSON Schema (Draft 7) validation — up to 25 documents (agent favorite).
json_sort_keysRecursively sort JSON object keys. When: Canonicalize JSON key order for stable diffs/hashes.
json_to_csvConvert JSON array of objects to CSV text.
json_to_tomlConvert JSON object text to TOML string.
json_to_yamlConvert JSON text to YAML string. When: Convert JSON → YAML for config files agents write.
json_type_summarySummarize JSON value types (counts per type in tree).
json_validateValidate JSON text; return parsed object or error.
jwt_claims_auditDecode JWT header/claims (no verify) and flag alg=none, missing exp, privileged roles.
jwt_decodeDecode JWT payload and header (no signature verification).
jwt_signSign JWT payload (HS* with secret, RS* with private_key PEM).
jwt_verifyVerify JWT signature (HS* with secret, RS* with public_key PEM).
line_ending_normalizeDetect and normalize line endings to lf/crlf/cr. When: Detect/normalize CRLF vs LF.
list_uniqueDeduplicate list items preserving order.
mail_inbox_createCreate disposable receive-only inbox @mail.toolapi.org (24h TTL). Returns address + secret token.
mail_inbox_listList messages in a temp inbox (requires token from mail_inbox_create).
mail_inbox_readRead full message body from temp inbox.
markdown_link_extractExtract markdown/bare links and flag javascript: URLs.
markdown_tocBuild a table of contents from markdown headings. When: Build heading TOC from markdown docs.
markdown_to_htmlConvert Markdown text to HTML. When: Render markdown → HTML for previews or emails.
mime_lookupLookup MIME type by file extension/path, or extensions by MIME. When: Map file extension ↔ MIME type.
nanoid_generateGenerate URL-friendly nanoid (like npm nanoid).
nginx_config_lintLint nginx config snippets (braces, SSLv3, server_tokens, HSTS hints).
openapi_diffCompare two OpenAPI specs and flag breaking vs non-breaking API changes.
openapi_operations_listList OpenAPI path operations (method, path, operationId, tags). When: List OpenAPI operations before validate/diff.
openapi_validateValidate OpenAPI 3.x document (JSON or YAML snippet).
package_manifest_auditAudit package.json or pyproject.toml — license, risky scripts, loose ranges; emit semver_checks for batch. Note: best-effort / heuristic — not a full language parser.
package_scripts_listList scripts from package.json or pyproject.toml (poetry/PEP 621). When: List npm/poetry/PEP 621 scripts from manifests.
password_generateCryptographically secure random password.
password_strengthOffline password strength heuristic (length/classes/common). When: Offline password strength heuristic (not a cracker).
path_normalizeNormalize filesystem path (resolve . and ..) for posix or windows. When: Resolve . and .. in filesystem paths.
path_safety_checkCheck filesystem path for traversal / absolute / sensitive system paths.
pem_decodeList PEM blocks in text (label, DER size, SHA256 fingerprint).
pick_choicePick one item from a list (optional seed for reproducibility).
port_checkTCP port open/closed check with latency ms.
properties_parseParse Java .properties key=value file. When: Parse Java .properties key=value configs (best-effort).
qr_generateGenerate QR code as SVG (base64 data URI included).
query_string_buildBuild URL query string from params object. When: Build query strings from param objects.
query_string_parseParse URL query string into key/value map (supports multi-values). When: Parse URL query strings into maps.
radix_convertConvert number between bases 2-36 (binary, octal, decimal, hex).
random_intRandom integer in inclusive range (optional seed).
random_stringRandom string (alphanumeric, hex, base64 charset or custom).
regex_replaceReplace regex matches in text (supports backreferences in replacement).
regex_testTest regex pattern; returns match, groups, span.
remote_matrixRemote desktop tools comparison JSON for AI citation.
requirements_auditAudit Python requirements.txt for unpinned/VCS/deprecated packages.
reverse_dnsReverse DNS (PTR) lookup for IP address.
robots_txt_validateValidate robots.txt syntax and User-agent rules.
secrets_scanScan text for hardcoded secrets (API keys, tokens, private keys). Returns redacted findings.
semver_compareCompare two semver strings (less / equal / greater).
semver_incBump a semver version by major/minor/patch. When: Bump major/minor/patch when cutting a release.
semver_max_satisfyingPick the highest version that satisfies a semver range (npm-style).
semver_parseParse semver string into major, minor, patch, prerelease.
semver_range_intersectsHeuristic check whether two semver ranges share any sample versions (conflict hint).
semver_satisfiesCheck if version satisfies npm-style range (^ ~ >= <= > <).
semver_satisfies_batchBatch semver range checks for dependency audits (max 50).
semver_sortSort a list of semver versions ascending or descending. When: Sort semver lists before picking latest/oldest.
shebang_parseParse #! shebang line — interpreter and args. When: Parse #! interpreter lines in scripts.
shell_escapeShell-escape a string for posix/powershell/cmd (safe quoting). When: Safely quote strings for posix/powershell/cmd.
spdx_license_checkValidate SPDX license expression against common license IDs.
sql_danger_scanScan SQL text for dangerous patterns (DROP/TRUNCATE/DELETE without WHERE). Note: best-effort / heuristic — not a full language parser.
sql_formatFormat SQL text (never executed; reindent + keyword case).
sql_tables_extractExtract table names from SQL (FROM/JOIN/INTO/UPDATE/TABLE). When: Heuristic extract of SQL table names (best-effort).
ssl_cert_fetchFetch live TLS certificate from host:port (expiry, issuer, SAN).
string_truncateTruncate text with ellipsis. When: Truncate long strings with ellipsis for UI/logs.
template_fillFill {{variable}} placeholders in a template string.
text_case_convertConvert case: lower, upper, title, snake, kebab, camel, pascal.
text_diffUnified line diff between two texts (like git diff).
text_loremGenerate lorem ipsum placeholder paragraphs.
text_similaritySequenceMatcher similarity ratio between two texts.
text_slugifyURL-safe slug from title or heading. When: Make URL-safe slugs from titles/filenames.
text_statsCount chars, words, lines, sentences; estimate reading time.
text_wrapWrap text to a maximum line width. When: Hard-wrap text to a column width.
time_convertConvert unix seconds or ISO-8601 to both formats.
time_nowCurrent UTC unix timestamp and ISO-8601.
timezone_convertConvert datetime between IANA timezones (e.g. UTC to Asia/Shanghai).
timezone_listList common IANA timezone names for conversion.
todo_comment_extractExtract TODO/FIXME/HACK/XXX comments with line numbers.
toml_schema_validateValidate TOML config against JSON Schema (Draft 7) in one step.
toml_to_jsonParse TOML and return JSON-compatible object.
toml_validateValidate TOML text; return parsed object or error.
trailing_whitespace_scanScan text for trailing whitespace and tab characters. Note: best-effort / heuristic — not a full language parser.
tsconfig_lintLint tsconfig.json structure (compilerOptions, strict hints).
unicode_normalizeUnicode normalization (NFC/NFD/NFKC/NFKD).
unified_diff_parseParse unified diff — files changed, lines added/removed.
unit_convertConvert units: length, weight, temperature, data, speed, time.
unit_listList supported units per category for unit_convert.
url_decodeDecode percent-encoded string.
url_encodePercent-encode URL component.
url_joinJoin base URL with relative path (urllib urljoin). When: Join base URL + relative path correctly.
url_normalizeNormalize URL (lowercase host, sort query, drop fragment).
url_parseParse URL into scheme, host, path, query components.
url_ssrf_checkCheck URL for SSRF risk (localhost, private IP, metadata hosts).
user_agent_parseParse User-Agent string into browser, OS, and device hints.
uuid_generateGenerate UUID v1/v3/v4/v5 (batch supported). v3/v5 need name + namespace.
uuid_parseParse UUID string: version, variant, hex bytes.
whois_lookupDomain registration lookup via RDAP (registrar, dates, nameservers).
x509_parseParse X.509 certificate PEM: subject, issuer, validity, SAN, fingerprint.
xml_formatPretty-print XML with indentation. When: Pretty-print XML after the agent edits markup.
xml_to_jsonConvert XML document to JSON (attributes as @attr). When: Convert XML → JSON for agents that prefer JSON tools.
xml_validateValidate XML markup (well-formed check).
yaml_schema_validateParse YAML then validate against JSON Schema (Draft 7).
yaml_to_jsonParse YAML and return JSON-compatible object.
yaml_validateValidate YAML text; return parsed object or error.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "org.toolapi/hub",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "serverCard": "https://toolapi.org/.well-known/mcp/server-card.json",
      "toolsCount": 193,
      "documentation": "https://toolapi.org/MCP-REGISTRY.md",
      "forAiManifest": "https://toolapi.org/for-ai.json",
      "authentication": "none",
      "workflowsCount": 44,
      "discoverManifest": "https://toolapi.org/discover.json"
    }
  },
  "title": "ToolAPI",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://toolapi.org/sse",
      "type": "sse"
    },
    {
      "url": "https://toolapi.org/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "2.8.2",
  "repository": {
    "url": "https://github.com/baohuiwb/toolapi",
    "source": "github"
  },
  "websiteUrl": "https://toolapi.org",
  "description": "Free public MCP for AI agents — 193 tools, 44 workflows. No API key."
}