Skip to main content
Glama

Server Details

Search and run data, text, code, PDF and web APIs. Requests not stored. Network tools need a key.

Ownership verified
Status
Healthy
Uptime
98.9% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
etacbae6768-a11y/tools-that-dont-upload
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation4/5

The three tools have mostly distinct roles: list_categories enumerates the catalog structure, search_tools does keyword lookup, and run_tool executes. list_categories and search_tools both serve catalog browsing and could marginally overlap when an agent just wants to see what exists, but the descriptions make the boundary clear.

Naming Consistency5/5

All three names follow a clean snake_case verb_noun pattern (list_categories, run_tool, search_tools). Consistent and immediately readable, with no mixed conventions.

Tool Count4/5

Three tools is on the thin side but defensible for a thin gateway whose real surface is the external catalog it proxies. Each tool earns its place with no redundancy, though there is little room for anything beyond browse/search/execute.

Completeness4/5

The core meta-server lifecycle is covered: discover categories, search the catalog, and execute a tool with arguments, plus documented error statuses. A minor gap is the absence of a direct 'get tool details by exact name' or introspection/health tool, but search_tools largely compensates.

Available Tools

3 tools
list_categoriesList categoriesA
Read-onlyIdempotent
Inspect

List tool categories with counts and example tool names.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, not open-world). The description goes beyond them by disclosing what the operation actually returns — category names with counts and example tool names — which is meaningful given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the resource and the return shape packed in, and not a word of padding. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool with full annotation coverage, the definition covers purpose and output content adequately. Minor gaps remain around ordering or pagination of categories, but these are unlikely to matter for a small static list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. This is the baseline case where no parameter guidance is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (List) and resource (tool categories) and even previews the return content (counts and example tool names). It is clearly distinguishable from run_tool and search_tools by its resource, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the discovery/browsing entry point before calling search_tools or run_tool, but the description states no when-to-use condition, no ordering relative to siblings, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_toolRun a toolAInspect

Run a catalog tool by name with an arguments object. Returns the tool result and the external hosts contacted (usually none). Errors keep the HTTP status: 400 invalid input, 405 wrong method, 413 input over the size limit (files over 10 MB through MCP, JSON over 2 MiB), 422 a file that cannot be processed (for example an encrypted PDF), 429 quota used up.

NameRequiredDescriptionDefault
toolYesCatalog tool name (e.g. "hash_text", "pdf_merge", "web_fetch")
argumentsYesTool arguments as key-value pairs

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses the return payload (tool result plus external hosts contacted), and maps failure modes to HTTP semantics (400, 405, 413, 422, 429) with concrete size ceilings of 10 MB per file and 2 MiB of JSON. This is unusually rich behavioral context for a mutating, open-world tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, and the error enumeration is dense but each code carries distinct actionable meaning. Slightly list-heavy, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly explains the return value and error behavior, making it callable without further inference. It stops short of describing the nested arguments object's shape or how tool names are discovered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds real constraint meaning to 'arguments' by specifying the 2 MiB JSON cap and the 10 MB per-file limit that shape what can legally be passed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Run a catalog tool by name with an arguments object.' This is clearly the execution counterpart to the discovery siblings list_categories and search_tools, though the description never explicitly names them to draw the contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or prerequisite guidance; it never says the tool name must first come from search_tools/list_categories, nor when this is preferable to those siblings. Usage is only faintly implied by 'by name.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_toolsSearch toolsA
Read-onlyIdempotent
Inspect

Search the tool catalog by keyword. Returns matching tool names, descriptions, parameters and a tested example argument object for each.

NameRequiredDescriptionDefault
limitNoMax results (1-50, default 10)
queryYesSearch keywords (e.g. "pdf merge", "sha256", "translate", "dns")
categoryNoOptional filter: compute, network, file, ai, or a category id

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's added value is the return shape: names, descriptions, parameters, and a tested example argument object. That is genuine disclosure beyond the structured fields, though pagination/ordering behavior goes unmentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core action front-loaded and the return content following immediately. Nothing can be cut without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description correctly takes on the job of describing return values, which it does well for a simple three-parameter search tool. Minor gaps remain around result ordering and empty-result behavior, but nothing essential to invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented with examples and defaults. The description only restates the keyword concept and adds no format or filtering nuance beyond the schema, which is the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Search the tool catalog by keyword') and clearly separates itself in function from list_categories (browse) and run_tool (execute). It stops short of explicitly naming or contrasting those siblings, so the differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'by keyword' and the keyword examples in the schema, but there is no explicit statement of when to reach for this tool versus list_categories or run_tool, and no exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedrun_tool1 field changed
      • changedInput schema / properties / tool / description
        Previous value: -"Tool name from search_tools (e.g. \"hash_text\", \"pdf_merge\", \"web_fetch\")"New value: +"Catalog tool name (e.g. \"hash_text\", \"pdf_merge\", \"web_fetch\")"
    • Changedsearch_tools1 field changed
      • changedInput schema / properties / category / description
        Previous value: -"Optional filter: compute, network, file, ai, or a category id from list_categories"New value: +"Optional filter: compute, network, file, ai, or a category id"
  2. 1 tool update
    • Changedsearch_tools3 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Optional category filter: compute, network, file, ai"New value: +"Optional filter: compute, network, file, ai, or a category id from list_categories"
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Max results (1-50, default 10)",
        +  "type": "integer"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Search keyword (e.g. \"pdf merge\", \"hash\", \"translate\", \"dns\")"New value: +"Search keywords (e.g. \"pdf merge\", \"sha256\", \"translate\", \"dns\")"
  3. 104 tool updates
    • Removedaes_decrypt
    • Removedaes_encrypt
    • Removedage_calc
    • Removedavatar_generate
    • Removedbarcode_generate
    • Removedbase64_decode
    • Removedbase64_encode
    • Removedbusiness_days
    • Removedcidr_calc
    • Removedcolor_blend
    • Removedcolor_contrast
    • Removedcolor_convert
    • Removedcolor_palette
    • Removedcredit_card_validate
    • Removedcron_parse
    • Removedcsv_to_json
    • Removeddate_calculate
    • Removeddate_format
    • Removeddetect_format
    • Removeddns_lookup
    • Removedemail_validate
    • Removedfake_data
    • Removedgenerate_qr
    • Removedgenerate_uuid
    • Removedhash_text
    • Removedhashtag_generate
    • Removedhmac_sign
    • Removedhtml_entities_encode
    • Removedhtml_minify
    • Removedhtml_to_markdown
    • Removedhttp_status_info
    • Removediban_validate
    • Removedip_info
    • Removedip_validate
    • Removedjson_diff
    • Removedjson_diff_detailed
    • Removedjson_flatten
    • Removedjson_format
    • Removedjson_sort_keys
    • Removedjson_to_csharp
    • Removedjson_to_csv
    • Removedjson_to_go
    • Removedjson_to_java
    • Removedjson_to_kotlin
    • Removedjson_to_php
    • Removedjson_to_python
    • Removedjson_to_ruby
    • Removedjson_to_rust
    • Removedjson_to_sql_create
    • Removedjson_to_swift
    • Removedjson_to_typescript
    • Removedjson_to_yaml
    • Removedjson_validate
    • Removedkeyword_extract
    • Removedlanguage_detect
    • Removedlink_check
    • Addedlist_categories
    • Removedlorem_ipsum
    • Removedmarkdown_to_html
    • Removedmarkdown_to_text
    • Removedmath_factorial
    • Removedmath_fibonacci
    • Removedmath_gcd
    • Removedmath_is_prime
    • Removedmath_percentage
    • Removedmeta_extract
    • Removedmeta_generate
    • Removedmorse_encode
    • Removednumber_to_words
    • Removedotp_generate
    • Removedpassword_generate
    • Removedpassword_strength
    • Removedphone_validate
    • Removedreading_time
    • Removedregex_test
    • Removedrelative_time
    • Removedrobots_check
    • Removedrobots_generate
    • Removedrot13
    • Addedrun_tool
    • Addedsearch_tools
    • Removedsitemap_generate
    • Removedsql_format
    • Removedssl_check
    • Removedtext_case
    • Removedtext_dedupe
    • Removedtext_diff
    • Removedtext_reverse
    • Removedtext_sentiment
    • Removedtext_slug
    • Removedtext_to_markdown
    • Removedtext_truncate
    • Removedtimezone_convert
    • Removedunit_convert
    • Removedurl_decode
    • Removedurl_encode
    • Removedurl_info
    • Removedurl_validate
    • Removeduuid_batch
    • Removedweb_fetch
    • Removedwhois_lookup
    • Removedword_count
    • Removedxml_to_json
    • Removedyaml_to_json
  4. 101 tool updates
    • First observedaes_decrypt
    • First observedaes_encrypt
    • First observedage_calc
    • First observedavatar_generate
    • First observedbarcode_generate
    • First observedbase64_decode
    • First observedbase64_encode
    • First observedbusiness_days
    • First observedcidr_calc
    • First observedcolor_blend
    • First observedcolor_contrast
    • First observedcolor_convert
    • First observedcolor_palette
    • First observedcredit_card_validate
    • First observedcron_parse
    • First observedcsv_to_json
    • First observeddate_calculate
    • First observeddate_format
    • First observeddetect_format
    • First observeddns_lookup
    • First observedemail_validate
    • First observedfake_data
    • First observedgenerate_qr
    • First observedgenerate_uuid
    • First observedhash_text
    • First observedhashtag_generate
    • First observedhmac_sign
    • First observedhtml_entities_encode
    • First observedhtml_minify
    • First observedhtml_to_markdown
    • First observedhttp_status_info
    • First observediban_validate
    • First observedip_info
    • First observedip_validate
    • First observedjson_diff
    • First observedjson_diff_detailed
    • First observedjson_flatten
    • First observedjson_format
    • First observedjson_sort_keys
    • First observedjson_to_csharp
    • First observedjson_to_csv
    • First observedjson_to_go
    • First observedjson_to_java
    • First observedjson_to_kotlin
    • First observedjson_to_php
    • First observedjson_to_python
    • First observedjson_to_ruby
    • First observedjson_to_rust
    • First observedjson_to_sql_create
    • First observedjson_to_swift
    • First observedjson_to_typescript
    • First observedjson_to_yaml
    • First observedjson_validate
    • First observedkeyword_extract
    • First observedlanguage_detect
    • First observedlink_check
    • First observedlorem_ipsum
    • First observedmarkdown_to_html
    • First observedmarkdown_to_text
    • First observedmath_factorial
    • First observedmath_fibonacci
    • First observedmath_gcd
    • First observedmath_is_prime
    • First observedmath_percentage
    • First observedmeta_extract
    • First observedmeta_generate
    • First observedmorse_encode
    • First observednumber_to_words
    • First observedotp_generate
    • First observedpassword_generate
    • First observedpassword_strength
    • First observedphone_validate
    • First observedreading_time
    • First observedregex_test
    • First observedrelative_time
    • First observedrobots_check
    • First observedrobots_generate
    • First observedrot13
    • First observedsitemap_generate
    • First observedsql_format
    • First observedssl_check
    • First observedtext_case
    • First observedtext_dedupe
    • First observedtext_diff
    • First observedtext_reverse
    • First observedtext_sentiment
    • First observedtext_slug
    • First observedtext_to_markdown
    • First observedtext_truncate
    • First observedtimezone_convert
    • First observedunit_convert
    • First observedurl_decode
    • First observedurl_encode
    • First observedurl_info
    • First observedurl_validate
    • First observeduuid_batch
    • First observedweb_fetch
    • First observedwhois_lookup
    • First observedword_count
    • First observedxml_to_json
    • First observedyaml_to_json

Publisher details

Operator
Park Jihoon (박지훈), individual business operator, Republic of Korea (business reg. 280-30-01413) · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
No sign-in for compute tools. Network tools (fetch URL, DNS, WHOIS, SSL) need a free API key in the X-API-Key header. Anonymous limits: file 20 and AI 10 calls/day per IP. Paid plans not yet on sale. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search and retrieve government contracts, job postings, LinkedIn profiles, YC startups, contact details, tech stacks, PDF text, and Google Trends through 13 integrated tools. It returns compact JSON, handles long-running queries with progress and run results paging, and runs the underlying scrapers on the user's Apify account.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides free web search, content fetching, image search, and deep research via SearXNG, no API keys required.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables clients to run searches across Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and other engines, retrieve real-time weather and stock data, and receive results as JSON or Markdown through a single search tool.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Read any web page and search the web for free. Routes each page across 28 web tools cheapest first (plain HTTP, Jina Reader, Chromium, stealth browsers) and checks it's the page you asked for before returning it. Paid tools stay off unless you add keys.
    1,742 PyPI
    105
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.