terminal-love-mcp
This server lets you search, browse, and visually inspect CLI/TUI tools from Terminal Trove, serving as a design reference resource for terminal user interfaces.
Search & Discovery
search_tools— Search the live Terminal Trove catalog via the site's Typesense APIsearch_catalog— Offline fuzzy search across the full local catalog indexbrowse_category— List all tools within a specific category (e.g.git,networking)list_categories— Retrieve all 70+ available categoriesnewly_added— Get the most recently added tools on Terminal Trovetool_of_the_week— Fetch the current and archived "Tool of the Week" picks
Tool Details
get_tool— Retrieve full details: description, GitHub URL, language, license, platforms, tags, install commands, and screenshot URLsrelated_tools— Find tools related to a given tool by shared primary category
Screenshots & Visual Inspection
list_screenshots— List all screenshot/GIF metadata (URL, type, alt text, dimensions) for a toolview_screenshot— Fetch a TUI screenshot or demo GIF and return it as an inline base64 image block
GitHub Stats
get_repo_stats— Fetch repository statistics: stars, forks, open issues, language, license, last push, and topics
Catalog Management
sync_catalog— Build or refresh a full local catalog index from the Terminal Trove sitemap for offline use
MCP Resources
terminaltrove://tool/{slug}— Read a tool's structured JSON directly as an MCP resource without a tool call
Provides tools for querying GitHub repository statistics (stars, forks, issues, language, license, topics, last push) to gauge maturity and popularity of tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@terminal-love-mcpsearch for TUI file managers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
terminal-love-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 buildWire 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 (defaultinfo; logs go to stderr, never stdout)GITHUB_TOKEN— raises the rate limit forget_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 |
|
| Full details: description, GitHub, language, license, platforms, tags, install commands, screenshot URLs (+ GitHub |
|
| Live search results (Terminal Trove Typesense) as tool summaries |
|
| Tools sharing the input's primary category |
|
| GitHub stars/forks/issues/language/license/topics/pushedAt |
| — | All 70+ categories (slug, name, url) |
|
| Tools in a category (name + description) |
|
| Recently added tools ( |
| — | Current pick + archive |
|
| Screenshot/GIF URLs + dimensions for a tool |
|
| The image itself as a base64 MCP image block (CDN-host allowlisted, 8 MB cap) |
|
| Build/refresh the full local catalog index from the sitemap |
|
| 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 |
| The same JSON as |
Typical flow for Vanta
search_tools/search_catalog/browse_category→ find candidate TUIsget_tool→ read structure, install, screenshot URLsview_screenshot→ actually see the layout to learn fromget_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 InspectorDesign 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.mdfor locked architectural choices andPARKED.mdfor deferred ideas.
Available Tools
12 toolsbrowse_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.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category slug, e.g. 'git' or 'networking' | |
| limit | No | Maximum number of tools to return (1–100, default 50) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| github_url | No | GitHub repository URL, e.g. 'https://github.com/jesseduffield/lazygit' | |
| slug | No | Terminal Trove tool slug (used to look up the GitHub URL if not provided) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | tool slug, e.g. 'lazygit' |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | tool slug, e.g. 'lazygit' |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max tools to return (default 25, max 100) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term — matched against tool name and slug | |
| limit | No | Max results to return (default 25, max 100) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | search query, e.g. 'git diff viewer' | |
| limit | No | max results (1-100, default 25) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force a full rebuild even if a fresh index is cached (default false) |
TDQS
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.
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.
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.
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.
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.
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').
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | tool slug, e.g. 'lazygit'. Provide slug OR url. | |
| url | No | direct cdn.terminaltrove.com image URL. Provide url OR slug. | |
| index | No | screenshot index when using slug (0-based, default 0) |
TDQS
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.
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.
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.
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.
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.
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.
12 tool updates
v0.1.0- First observed
browse_category - First observed
get_repo_stats - First observed
get_tool - First observed
list_categories - First observed
list_screenshots - First observed
newly_added - First observed
related_tools - First observed
search_catalog - First observed
search_tools - First observed
sync_catalog - First observed
tool_of_the_week - First observed
view_screenshot
TDQS
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.
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.
12 tools is well-scoped for a catalog browsing service, covering all necessary operations without being overwhelming or too sparse.
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
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
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that publishes CLI tools on your machine for discoverability by LLMs141MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that lets AI agents see and interact with terminal/CLI applications through virtual terminals and PNG screenshots.95MIT
- AlicenseNot gradedqualityFmaintenanceMCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.42MIT
- FlicenseAqualityCmaintenanceA simple MCP server that exposes a terminal tool, allowing AI agents to execute shell commands.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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