moja.work ui catalog
Server Details
Read-only catalog of the @mojawork/ui Angular components: docs, API links, usage guide.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4/5 across 3 of 3 tools scored.
The three tools are largely distinct: one lists components, one retrieves documentation truth, and one retrieves usage guidance. Some overlap exists between get_component_doc and get_guide for component-specific info, but descriptions clarify the truth vs. recommendation distinction. Unknown-name failure in get_component_doc does not create ambiguity.
Tool names follow a consistent verb_noun pattern: get_component_doc, get_guide, list_components. All use lowercase with underscores. The get_ prefix is shared by two tools, while list_ is a slight deviation but standard for enumeration, so minor deviation only.
Three tools is slightly lean for a UI catalog server that includes documentation, usage guides, and component listings, but each tool is substantial and well-scoped. The count is reasonable—could be split further (e.g., separate situation lookup) but current set avoids fragmentation.
The server covers listing all components, per-component documentation, and usage guidance, effectively covering the main lifecycle of querying a UI catalog. Minor gaps: no direct way to fetch a specific component's usage guide entry without the full guide (unless name provided to get_guide covers that), and no tool for searching or filtering components beyond list all. However, the core surface is present and agent can work around gaps.
Available Tools
3 toolsget_component_docAInspect
The truth about one component: its full documentation page, cooked machine-fest — prose, the story source as a usage example, the input table — plus its "What it does, and what it does not" section as a field of its own ("truth") and the link to its Compodoc API page ("api"). Resolve by selector (ui-card), class name (UiCardComponent) or folder name (card). Unknown names fail with the list of what exists.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | selector, class name, or folder name of the component |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the return content, the accepted lookup identifiers, and the failure mode when the name is unknown. It does not explicitly state read-only behavior, but 'get' and 'documentation page' strongly imply it.
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 slightly verbose and stylistically eccentric ('cooked machine-fest'), but it front-loads the core purpose and each sentence contributes useful information: return fields, lookup methods, and failure behavior. It could be trimmed without losing meaning, but it is not bloated.
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 tool with no annotations and no output schema, the description is remarkably complete. It names the returned fields, explains how to resolve the component, and describes the error response. An agent has enough to call it correctly and interpret the result.
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 schema already documents the single parameter as selector, class name, or folder name, and the description adds concrete examples (ui-card, UiCardComponent, card) plus the failure behavior. With 100% schema coverage, this extra context pushes it above 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?
The description clearly states the tool retrieves the full documentation page for a single component and enumerates its parts (prose, usage example, input table, truth, api link). It conveys that it targets one component, which distinguishes it from list_components, though it does not explicitly differentiate from get_guide.
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 when to use it — for detailed information about one component — and explains how to identify the component by selector, class name, or folder name. However, it does not explicitly state when to prefer this over get_guide or list_components, leaving the sibling comparison to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideAInspect
The usage guide — recommendations, not truth: per component or situation "use for", "not for", "instead", "shown in" (stories, recipes and app files that demonstrably run) and the sources it was written from; plus the transferable house rules (forms format, tokens, the three layers, cascade layers, keyboard and disabled controls) read from the shared agent rules. Written by an agent, stamped with ui version and commit. Where the guide and a component page disagree, the page wins. Without "name": the whole guide, house rules and the list of components without an entry. With "name": that component's entry and every situation that uses it, or a situation by its name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | a component selector (ui-card) or a situation name (burger-menu); omit for the whole guide |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given there are no annotations or output schema, the description carries the full burden and delivers: it discloses non-authoritative intent ('recommendations, not truth'), provenance and versioning ('written by an agent, stamped with ui version and commit'), and a precedence rule for conflicting sources. This is exactly the kind of contextual behavior an agent cannot infer from the schema and is unusually well covered.
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 compresses a lot of useful information into a short space, but the structure is dense, stream-of-consciousness: the two key behavioral branches (with vs. without name) are buried at the end, and the heavy parentheticals hurt scannability. It reads as a single, unbroken prose block rather than clearly front-loading the most important usage distinctions.
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, optional, read-only tool with no annotations or output schema, the description is thorough: it covers both execution modes, the sources of truth, and versioning. The only real gap is that it doesn't detail the exact return format or how errors are surfaced (e.g., an unknown name), but relative to the tool's simple scope, it's 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?
With 100% schema description coverage, this sits at the baseline of 3, but the description adds genuine meaning by detailing the two behavioral states (with/without the name) and giving concrete value formats (ui-card, burger-menu). It still doesn't expand on the parameter type or provide additional syntax examples, but what's there is helpful and non-redundant.
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 identifies the resource (the usage guide) and what it contains ('use for', 'not for', 'instead', 'shown in', house rules), and it's clear an omitted 'name' returns the whole guide while a provided one filters to a component/situation entry. However, it stops short of explicitly naming or routing to its siblings (get_component_doc, list_components), keeping this at a 4 rather than a 5.
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?
Describes the two parameter modes and the precedence rule ('the page wins') which implies when this tool applies, but never explicitly directs the agent to a specific alternative for a given scenario. The usage context is implied through the 'recommendations, not truth' framing and the family of guide vs. page, but there's no hard 'use X instead' guidance for the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_componentsAInspect
The whole @mojawork/ui shelf: every exported component with its selector (plus "aliases" where a component keeps an old name), class name, "area" — its layer: atoms / molecules / cdk / forms / layout —, a one-line description, the first sentence of what it does and does not ("brief"), the link to its Compodoc API page ("api": inputs, outputs, types — published as one stamped pair with the Storybook), and whether the usage guide has an entry for it ("hasGuide"). Every answer carries a provenance line (ui version, commit, build date).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It explains the output shape by listing all returned fields and adds a notable behavioral detail: every answer includes a provenance line with ui version, commit, and build date. It does not explicitly state that listing is read-only, though the tool name and zero parameters make that highly likely.
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 dense and front-loads the main scope, but it is a single sprawling sentence with nested parentheticals, quoted field names, and an em-dash clause. It could be significantly clearer with a bulleted or separated field list, which would make parsing easier without losing information.
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?
Without an output schema, the description thoroughly covers the returned fields, the meaning of 'area', the API link, the hasGuide flag, and the provenance line. For a zero-parameter catalog tool this is self-sufficient; an agent knows what the answer will contain and can invoke it correctly.
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 and the schema is already complete at 100% coverage, so there is no parameter meaning to supplement. The description instead adds value by explaining what each entry contains, which is the appropriate contribution for a no-parameter tool. Baseline 4 is warranted.
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 complete @mojawork/ui component catalog, enumerating every attribute (selector, aliases, class name, area, brief, API link, hasGuide, provenance). This is a specific verb+resource with a defined scope that separates it from the sibling get_component_doc and get_guide tools.
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 'whole @mojawork/ui shelf' and 'every exported component' phrasing provides clear context: this is the broad catalog/list tool, not a per-component detail or guide lookup. It does not explicitly name alternatives or exclusions, but the intended usage is evident and no conflicting guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables dynamic exploration of Angular library components by reading and analyzing the public API exports. Provides tools to list available components and retrieve detailed component information.
- AlicenseAqualityBmaintenanceRead-only catalog of the @blueprint-modular/core design system (104 components). Four tools — list/search/get components and suggest compositions. Public, no auth, Streamable HTTP.41Apache 2.0
- AlicenseAqualityDmaintenanceProvides access to PrimeNG component documentation and generates code examples. Supports searching components, retrieving documentation, and creating practical usage examples for Angular UI development.9251MIT
- AlicenseNot gradedqualityDmaintenanceProvides programmatic access to the DESY design system documentation, enabling AI assistants to retrieve component code, style guides, and UI patterns for the Government of Aragon.MIT