Spark Apps Catalogue
Server Details
Read-only catalogue of the Spark apps: what each one does, its stack, and where it runs.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a clearly distinct operation: retrieving one app, listing all apps, listing tags, and searching by keyword/tag. The descriptions explicitly disambiguate list_apps from search_apps, and get_app's fallback behavior avoids guessing.
All tools follow a consistent snake_case verb_noun pattern: get_app, list_apps, list_tags, search_apps. The convention is uniform and immediately readable.
Four tools is well-scoped for a read-only catalogue server: one for detail lookup, one for browsing, one for tag discovery, and one for searching. No tool feels redundant or missing.
The surface fully covers the read-only catalogue workflow: browse everything, discover tags, search by keyword/tag, and fetch full details by id. There are no obvious dead ends for common agent tasks.
Available Tools
4 toolsget_appAInspect
Get one app from the Spark catalogue by its id, with its full description, tags and links. Read-only. If the id is unknown the result lists every valid id, so there is no need to guess twice.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The app's catalogue id, e.g. sparkstack or sparkmobile. Lowercase, no spaces. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states 'Read-only', which is a critical behavioral trait. It also discloses a notable fallback: if the id is unknown, the tool lists all valid ids, preventing redundant guessing. This goes beyond a basic 'get' and helps the agent understand side effects and error behavior.
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 exactly two sentences with zero fluff. The primary purpose is front-loaded, and the second sentence adds a valuable behavioral note. Every word 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?
For a single-parameter get tool with no output schema, the description covers the essential: what it does, what it returns (full description, tags, links), and a notable fallback. It does not describe error handling for malformed ids, but the schema covers constraints, and the tool's simplicity means this is sufficient. Slightly more detail on return structure would push it to 5.
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%, so the schema already documents the 'id' parameter with constraints and an example. The description adds no extra meaning about the parameter itself; it only describes the output. Per the baseline rule for high coverage, a 3 is appropriate since the schema does the heavy lifting.
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 'Get', the resource 'one app from the Spark catalogue', and the method 'by its id'. It also specifies the return content (full description, tags, links). This distinguishes it from siblings like list_apps (all apps) and search_apps (search), so an agent can easily tell when to use it.
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: call this when you have a specific id. However, it does not explicitly state when not to use it or compare it to alternatives like search_apps. The fallback note about unknown ids provides a small usage hint, but no explicit guidance on selecting between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appsAInspect
List every app in the Spark catalogue: id, name, tagline, description, tags, homepage and store or repository links. Read-only. Small enough to read in full, so prefer this over search when the question is about the range of apps rather than a specific one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Read-only' (non-destructive) and notes the result is 'Small enough to read in full', implying no pagination or truncation. These are useful behavioral traits beyond the bare action, though it does not mention rate limits or auth—acceptable for a simple read-only list.
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 concise sentences. The first front-loads the action, resource, and returned fields; the second adds read-only status and usage guidance. Every word earns its place, with no redundancy or filler.
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?
Despite no output schema, the description enumerates all returned fields and asserts the list is complete and small enough to read in full, so an agent knows what to expect. It also gives usage context. It doesn't mention pagination or limits, but given the explicit 'small enough' claim, the coverage is adequate for this simple tool.
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?
The tool has zero parameters, so the input schema is empty. Per the calibration, a tool with 0 parameters gets a baseline of 4, and there is nothing for the description to add about parameter meaning. The description correctly focuses on output and usage instead.
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 states a specific verb ('List') and a precise resource ('every app in the Spark catalogue') and enumerates the exact fields returned (id, name, tagline, description, tags, homepage, links). It differentiates from siblings by explicitly contrasting with search_apps, making its scope unambiguous.
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 gives an explicit when-to-use directive: 'prefer this over search when the question is about the range of apps rather than a specific one.' This tells the agent the condition for selecting this tool over a named alternative (search_apps), and by implication when not to use it (for a specific app, which would be get_app).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsAInspect
List every tag used across the Spark catalogue with how many apps carry it, most used first. Read-only. Use this before search_apps to pick a tag that actually exists.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It explicitly declares 'Read-only' and describes output ordering ('most used first'), which are key behavioral traits. It does not mention pagination, limits, or error behavior, but for a zero-parameter read-only 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?
Three short sentences, each serving a distinct purpose: output semantics, read-only flag, and usage guidance. No filler, redundancy, or unnecessary detail; the most important information is front-loaded.
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 zero-parameter, read-only, no-output-schema tool, the description is exceptionally complete. It covers what the tool does, how results are ordered, that it is non-mutating, and how it fits into the search_apps workflow. The only omitted details (pagination, response format) are not critical for this scale of tool.
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?
There are zero parameters and schema description coverage is 100%, so the description has nothing to add to parameter semantics. Per the rubric, zero parameters warrant a baseline of 4.
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 states a specific verb ('List'), the resource ('tags'), and the scope ('across the Spark catalogue') with output details ('how many apps carry it, most used first'). It also sets itself apart from the sibling search_apps by framing itself as the tag-source lookup.
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 explicitly tells the agent when to use the tool: 'Use this before search_apps to pick a tag that actually exists.' This names the sibling tool and provides a concrete workflow step, giving clear usage guidance beyond simple capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_appsAInspect
Search the Spark catalogue by keyword across app names, taglines, descriptions and tags, optionally narrowed to a single tag. Read-only. Pass an empty query with a tag to list everything carrying that tag.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Restrict to one tag, e.g. Next.js or Mobile. Use list_tags to see valid tags. | |
| query | Yes | Words to look for. Matched as a substring; pass an empty string to match all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds 'Read-only', specifies searched fields, and documents the empty-query behavior. This goes beyond the schema, though it does not cover potential pagination or result ordering.
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 with zero fluff. The primary purpose is front-loaded, and the special empty-query usage is tucked into a short second sentence. Every word 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?
For a search tool with 2 parameters and no output schema, this description covers purpose, scope, safety, and special behavior adequately. It does not describe the return format, but that is a minor gap given the simplicity of the operation.
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%, so baseline is 3. The description adds meaningful extra semantics by naming the fields searched and clarifying the empty-query-with-tag behavior, which is not fully captured in the schema 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 states a specific verb ('Search'), resource ('Spark catalogue'), and scope ('by keyword across app names, taglines, descriptions and tags, optionally narrowed to a single tag'). This clearly distinguishes it from siblings like get_app, list_apps, and list_tags without needing to open schemas.
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 gives clear usage context: keyword search, optional tag narrowing, and the empty-query-with-tag pattern for listing everything under a tag. However, it does not explicitly mention alternatives or when not to use this tool, so it stops short of full exclusions.
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.
4 tool updates
- First observed
get_app - First observed
list_apps - First observed
list_tags - First observed
search_apps
Related MCP Connectors
Software component catalog: search your org's services, docs, APIs, dependencies, and ownership.
Read-only catalogue search: JVM tooling, ML models, compliance APIs, siSwati LLM, Veridix markets.
Read-only AI project discovery, verification, comparison, shortlisting, and stack planning.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables read-only interaction with a Databricks workspace, exposing catalog metadata and bounded SQL querying while preserving caller identity through OAuth-protected authorization.MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only Spark SQL queries against Apache Iceberg tables, allowing LLM clients to inspect schemas and run SELECT-style queries on HDFS/S3 data without Hive or Impala.Apache 2.0
- AlicenseAqualityBmaintenanceEnables read-only access to the AtlasRepo decision catalog, allowing users to search for evidence-backed projects, tools, and repository decision records without loading the full catalog.37 npm2MIT
- AlicenseBqualityBmaintenanceEnables read-only access to a local-first catalog of portable agent skills, exposing tools to discover ranked matches, inspect stored artifacts, traverse declared relationships, and view configuration.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.