Skip to main content
Glama
jpoindexter

terminal-love-mcp

by jpoindexter

terminal-love-mcp

license node MCP

MCP server over Terminal Trove — search the catalog and pull TUI/CLI design references (screenshots, demo GIFs, install commands, metadata) so an agent can study real terminal UIs while building one.

Built for wiring into the Vanta agent, but works with any MCP client.

Why

Terminal Trove curates hundreds of CLI/TUI tools, each page carrying the gold you want when designing a terminal UI: real screenshots + demo GIFs, the GitHub repo, language, license, platform support, and copy-pasteable install commands. There's no public API, so this server scrapes the (clean, stable) HTML and the site's Typesense search endpoint, caches politely to disk, and exposes everything as MCP tools — including returning screenshots as viewable image blocks so the agent can actually see the layout.

Related MCP server: can-see

Install

npm install
npm run build

Wire into Vanta (or any MCP client)

Add to your client's MCP config (e.g. .mcp.json / claude_desktop_config.json):

{
  "mcpServers": {
    "terminal-love": {
      "command": "node",
      "args": ["/Users/jasonpoindexter/Documents/GitHub/_tools/terminal love mcp/dist/index.js"]
    }
  }
}

Optional env (all have sane defaults — see .env.example):

  • TTROVE_CACHE_DIR — where HTML/catalog cache lives (default: OS tmp)

  • TTROVE_CACHE_TTL_MS — tool-page/catalog cache lifetime (default 6h)

  • TTROVE_SEARCH_TTL_MS — search-response cache lifetime (default 1h; fresher than pages)

  • TTROVE_LOG_LEVEL — pino level (default info; logs go to stderr, never stdout)

  • GITHUB_TOKEN — raises the rate limit for get_repo_stats / get_tool with_stars

Tools

Collection-returning tools share one shape: { count, items, ...context } (e.g. search_tools{ query, count, items }, browse_category{ category, count, items }). Single-entity tools (get_tool, get_repo_stats) return the object directly.

Tool

Input

Returns

get_tool

slug, with_stars?

Full details: description, GitHub, language, license, platforms, tags, install commands, screenshot URLs (+ GitHub stars when with_stars)

search_tools

query, limit?

Live search results (Terminal Trove Typesense) as tool summaries

related_tools

slug, limit?

Tools sharing the input's primary category

get_repo_stats

github_url? | slug?

GitHub stars/forks/issues/language/license/topics/pushedAt

list_categories

All 70+ categories (slug, name, url)

browse_category

category, limit?

Tools in a category (name + description)

newly_added

limit?

Recently added tools (/new/)

tool_of_the_week

Current pick + archive

list_screenshots

slug

Screenshot/GIF URLs + dimensions for a tool

view_screenshot

slug?+index? | url?

The image itself as a base64 MCP image block (CDN-host allowlisted, 8 MB cap)

sync_catalog

force?

Build/refresh the full local catalog index from the sitemap

search_catalog

query, limit?

Offline fuzzy search across the whole catalog (after first sync)

Resources

Tool pages are also exposed as MCP resources, so a client can read a tool's structured JSON by URI without spending a tool call:

Resource

URI

Returns

Terminal Trove tool

terminaltrove://tool/{slug}

The same JSON as get_tool (application/json), backed by the same cached fetch + parser

Typical flow for Vanta

  1. search_tools / search_catalog / browse_category → find candidate TUIs

  2. get_tool → read structure, install, screenshot URLs

  3. view_screenshot → actually see the layout to learn from

  4. get_repo_stats → gauge maturity/popularity

Development

npm run dev        # run the server via tsx (stdio)
npm test           # vitest (parsers tested against saved HTML fixtures)
npm run typecheck
npm run smoke      # build + end-to-end stdio smoke test against the live site
npm run demo       # build + simulate the full Vanta research flow
npm run verify     # build + assert every tool against the LIVE site (drift guard, exits non-zero on failure)
npm run inspect    # open the MCP Inspector

Design notes

  • stdio transport — stdout is the JSON-RPC stream; all logging is forced to stderr.

  • Polite scraping — 6h disk cache, custom user-agent, retry-with-backoff, 15s timeout.

  • Pure parsers — all HTML parsing lives in pure functions tested against fixtures in src/features/*/__fixtures__/, so a Terminal Trove markup change is caught by a failing test.

  • See DECISIONS.md for locked architectural choices and PARKED.md for deferred ideas.

Available Tools

12 tools
browse_categoryBrowse categoryA

Browse tools in a Terminal Trove category. Returns slug, name, URL, and description for each tool. Use list_categories first to discover valid category slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesCategory slug, e.g. 'git' or 'networking'
limitNoMaximum number of tools to return (1–100, default 50)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It implies read-only behavior by stating 'Returns' data, but does not explicitly state that it is safe, idempotent, or has no side effects. No mention of authentication, rate limits, or data mutability. Adequate but not thorough.

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: first sentence states purpose and output, second sentence gives critical usage guidance. No redundant words. Front-loaded with key information. Every sentence earns its place.

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?

Given the simplicity of the tool (2 params, no output schema, no nested objects), the description covers the main points: what it does, what it returns, and prerequisite. However, it does not mention the limit parameter or pagination behavior, and could clarify that the output is a list. Nearly complete.

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 baseline is 3. The description adds no additional meaning for parameters beyond what the schema already provides. The schema describes 'category slug' and 'limit', and the description only mentions 'category slugs' in the usage guideline, not adding new semantics.

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 clearly states the verb 'Browse' and the resource 'tools in a Terminal Trove category'. It lists the returned fields (slug, name, URL, description), making it specific. However, it does not explicitly distinguish this tool from siblings like search_tools, which might also return tools but with different criteria.

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

Usage Guidelines4/5

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

The description provides explicit guidance to 'Use list_categories first to discover valid category slugs', which is helpful for proper usage. It implies when to use this tool versus list_categories, but lacks guidance on when not to use it relative to other siblings like search_tools or search_catalog.

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

get_repo_statsGet GitHub repo statsA

Fetch GitHub repository statistics for a Terminal Trove tool: stars, forks, open issues, language, license, last push, and topics. Provide github_url, slug, or both.

ParametersJSON Schema
NameRequiredDescriptionDefault
github_urlNoGitHub repository URL, e.g. 'https://github.com/jesseduffield/lazygit'
slugNoTerminal Trove tool slug (used to look up the GitHub URL if not provided)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It lists output fields but omits details on side effects (none), permissions, rate limits, or error handling. It is minimally acceptable.

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?

Single sentence with essential info front-loaded (the output fields), no wasted words. Perfectly compact.

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?

Given 2 simple parameters, no output schema, and no annotations, the description provides the main purpose and output fields. It could mention response format (JSON) or error cases, but is largely sufficient.

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 100%, but the description adds context: slug can be used to look up the GitHub URL if not provided. This goes beyond the schema's per-parameter descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Fetch') and names the resource ('GitHub repository statistics') with concrete fields (stars, forks, etc.), clearly distinguishing it from browsing or listing siblings.

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?

The description says to provide github_url, slug, or both, but does not indicate when to use this tool over alternatives like get_tool or search_catalog, nor does it state prerequisites or when not to use it.

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

get_toolGet tool detailsA

Full Terminal Trove details for a tool: description, GitHub, language, license, platforms, tags, install commands, and screenshot URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYestool slug, e.g. 'lazygit'

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It lists return fields but does not disclose safety, side effects, authentication needs, or rate limits. For a read operation, minimal behavioral context is given.

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?

The description is a single sentence that front-loads the purpose and enumerates return fields. Every word is necessary; no wasted content.

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 one parameter and no output schema, the description adequately covers what the tool returns by listing fields. It could mention it's a read operation, but overall sufficient for its simplicity.

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 coverage is 100%, with one parameter 'slug' described in schema. The description does not add parameter-specific meaning beyond listing return fields, so baseline 3 is appropriate.

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

Purpose5/5

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

The title 'Get tool details' and description clearly state the tool retrieves full details for a specific tool, listing specific fields. It distinguishes from siblings like browse_category or list_categories by focusing on a single tool's details.

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?

The description implies use when you need details of a specific tool, but provides no explicit guidance on when not to use or alternatives. With many sibling tools, usage context is only implicit.

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

list_categoriesList categoriesA

List all tool categories available on Terminal Trove. Returns slug, name, and URL for each category.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Clearly a read-only list operation with no parameters; returns specific fields, but could mention ordering or pagination if applicable.

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 efficient sentences: first states action, second details output. No extraneous text.

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

Completeness5/5

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

Sufficient for a zero-param tool with no output schema; specifies exactly what is returned (slug, name, URL).

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?

No parameters; baseline 4 applies as description adds no param meaning but none needed.

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

Purpose5/5

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

Directly states it lists all tool categories with specific return fields (slug, name, URL), distinguishing it from sibling tools like browse_category.

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?

Implied purpose to get all categories, but no explicit guidance on when to use vs alternatives like browse_category or search_catalog.

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

list_screenshotsList screenshotsA

List all screenshot / demo-GIF metadata (url, type, alt, dimensions) for a Terminal Trove tool. Use this before view_screenshot to pick an index.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYestool slug, e.g. 'lazygit'

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Lists metadata fields returned, which implies read-only behavior. Could be more explicit about side effects or prerequisites, but adequate.

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 with no waste. Front-loaded with purpose and immediate usage context.

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?

Covers purpose, parameters, and relationship to sibling. Missing output schema details, but for a simple list operation it is sufficiently complete.

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 coverage is 100% with description for slug. The description does not add additional meaning beyond the schema, meeting baseline.

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

Purpose5/5

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

Explicitly lists verb ('List'), resource ('screenshot/demo-GIF metadata'), and scope ('for a Terminal Trove tool'). Distinguishes from sibling 'view_screenshot' by stating usage order.

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

Usage Guidelines4/5

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

Provides clear context: 'Use this before view_screenshot to pick an index.' No explicit when-not-to-use, but the context is sufficient for the tool's simple role.

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

newly_addedNewly added toolsA

Returns the most recently added terminal tools from terminaltrove.com/new/, newest first. Each entry includes slug, name, URL, and description.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax tools to return (default 25, max 100)

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, but the description sufficiently discloses that this is a read-only operation returning a list of recent tools with specific fields and a limit parameter. It does not discuss error handling or rate limits, but for a simple list tool, this is adequate.

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?

The description is a single sentence that clearly and efficiently conveys the tool's function, return format, and default ordering. No unnecessary words.

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?

Given the simplicity of the tool (optional parameter, no output schema), the description is mostly complete. It could explicitly mention the default limit of 25, but the schema covers that. No missing critical information.

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% for the single parameter `limit`, which includes its purpose, default, and max value. The description adds no additional meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states it returns the most recently added tools, ordered newest first, and specifies the fields included (slug, name, URL, description). It distinguishes from sibling tools like get_tool (single tool) and search_tools (search).

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?

The description implies usage for listing new tools but does not explicitly state when to use this tool versus alternatives like browse_category or search_catalog. No exclusions or alternative recommendations are provided.

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

search_catalogSearch terminal tool catalogA

Fuzzy-searches the local Terminal Trove catalog index by tool name or slug. The search is fully offline after the first sync_catalog call — no network required. Returns matching tools with their score (0 = perfect).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term — matched against tool name and slug
limitNoMax results to return (default 25, max 100)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description discloses fuzzy matching, offline operation, sync requirement, and return score (0=perfect). It lacks details on error states or behavior if index is missing.

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 with zero waste. The description is front-loaded with the core purpose and adds essential offline/sync context efficiently.

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?

Given no output schema, the description minimally explains return values (score). It could elaborate on result structure or ordering, but it covers key behavioral aspects adequately for the parameter count.

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 coverage is 100%, and the description does not add meaning beyond what the schema already provides for 'query' and 'limit'. The baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool performs fuzzy searches on the local Terminal Trove catalog by tool name or slug. It distinguishes itself from siblings like 'search_tools' by specifying offline operation after syncing.

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

Usage Guidelines4/5

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

It explains the prerequisite (sync_catalog) and the offline nature, guiding when to use. However, it doesn't explicitly mention alternatives or when not to use it, leaving some ambiguity.

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

search_toolsSearch toolsB

Search the Terminal Trove catalog. Returns tool summaries (slug, name, tagline, thumbnail URL). Uses the site's Typesense search API.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYessearch query, e.g. 'git diff viewer'
limitNomax results (1-100, default 25)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions the return format and underlying API, but lacks details on rate limits, pagination, error handling, or search behavior (e.g., fuzzy matching).

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 concise sentences that front-load the action and return information. No wasted words.

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 simple two-parameter search tool with no output schema, the description adequately covers purpose and return format. Could benefit from mentioning search behavior details, but is largely complete.

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 coverage is 100% with clear descriptions for both parameters. The description adds information about return format but does not significantly enhance meaning beyond the schema.

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?

Clearly states it searches the Terminal Trove catalog and returns tool summaries. However, it does not explicitly differentiate from sibling 'search_catalog', which may cause confusion.

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?

Provides no guidance on when to use this tool versus alternatives like 'search_catalog' or browsing tools. No context on prerequisites or exclusions.

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

sync_catalogSync terminal tool catalogA

Fetches the full Terminal Trove catalog from sitemap + /list/ and builds a local index for fast offline search. Returns the tool count, build timestamp, and a 10-item sample. Pass force=true to force a rebuild even if the index is fresh.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce a full rebuild even if a fresh index is cached (default false)

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses the fetching mechanism (sitemap + /list/), indexing, return values (tool count, timestamp, sample), and the force parameter's effect (rebuild even if fresh). Side effects like writing a local index are implied but not explicitly stated.

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?

The description is two sentences long, front-loaded with the core action, and every sentence provides necessary information without redundancy.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description is fully complete: it explains input, behavior, and output clearly.

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 baseline is 3. The description adds explanatory context for the force parameter ('rebuild even if index is fresh'), which adds marginal value beyond the schema's description.

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

Purpose5/5

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

The description clearly states it fetches the full catalog and builds a local index, using specific verbs and resources. It distinguishes itself from sibling tools which focus on browsing, searching, or individual tool details.

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?

The description implies usage for offline search but does not explicitly state when to use this tool over alternatives, nor does it provide exclusions or name alternative tools. The context is clear but lacks directive guidance.

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

tool_of_the_weekTool of the WeekA

Returns the current Terminal Tool of the Week plus an archive of past picks from terminaltrove.com/tool-of-the-week/. Each archive entry includes the date label (e.g. 'June 2, 2026').

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, so the description carries the full burden. It mentions output format (archive with date labels) but lacks details on idempotency, rate limits, or data freshness.

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?

Single sentence, front-loaded with purpose, no wasted words.

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?

Adequate for a simple tool with no parameters and no output schema, though it could specify the extent of the archive (e.g., all past picks or limited).

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?

With zero parameters, baseline is 4. Description adds no param info, but schema coverage is 100%.

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

Purpose5/5

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

The description clearly states the tool returns the current Tool of the Week and an archive of past picks with date labels, distinguishing it from sibling tools like search_catalog or list_categories.

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?

The description implies usage for fetching the weekly pick, but no explicit guidance on when to use alternatives or when not to use this tool.

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

view_screenshotView screenshotA

Fetch a TUI screenshot or demo GIF from Terminal Trove and return it as an inline image so you can visually inspect the design. Provide slug (+ optional index) OR a cdn.terminaltrove.com url directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNotool slug, e.g. 'lazygit'. Provide slug OR url.
urlNodirect cdn.terminaltrove.com image URL. Provide url OR slug.
indexNoscreenshot index when using slug (0-based, default 0)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states the fetch action and inline image return but omits details on error behavior, authentication, or rate limits. This is sufficient for a straightforward read operation but lacks full transparency.

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?

The description is two sentences with no extraneous information. It front-loads the core action and follows with input guidance, earning its place efficiently.

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?

Given the tool's simplicity (3 optional params, no output schema), the description covers the input options and output format (inline image). It does not specify handling of invalid inputs or missing results, but is complete enough for typical use.

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?

All three parameters have schema descriptions (100% coverage). The tool description adds value by clarifying the mutual exclusivity of slug and URL and the relationship with index. This goes beyond the schema alone.

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

Purpose5/5

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

The description clearly states the tool fetches a TUI screenshot or GIF and returns it as an inline image for inspection. It distinguishes from siblings by specifying the resource type (screenshot/GIF) and the action (fetch and display).

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

Usage Guidelines4/5

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

The description provides clear input instructions (slug+index OR direct URL) but does not explicitly compare to siblings like list_screenshots for browsing or get_tool for metadata. The context is adequate for the simple use case.

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. Dates show when Glama detected each change.

  1. 12 tool updatesv0.1.0
    • First observedbrowse_category
    • First observedget_repo_stats
    • First observedget_tool
    • First observedlist_categories
    • First observedlist_screenshots
    • First observednewly_added
    • First observedrelated_tools
    • First observedsearch_catalog
    • First observedsearch_tools
    • First observedsync_catalog
    • First observedtool_of_the_week
    • First observedview_screenshot

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: browsing, searching, viewing details, screenshots, stats, etc. The two search tools are differentiated by offline/online mode. No ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., browse_category, get_repo_stats, list_categories). No mixing of conventions.

Tool Count5/5

12 tools is well-scoped for a catalog browsing service, covering all necessary operations without being overwhelming or too sparse.

Completeness5/5

The tool set fully covers browsing, searching, and inspecting Terminal Trove tools with no missing operations. It is a read-only service, so it's complete for its domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that publishes CLI tools on your machine for discoverability by LLMs
    14
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.
    42
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jpoindexter/terminal-love-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server