Skip to main content
Glama
pglevy

Design System MCP Server

by pglevy

get-sail-guidance

Retrieve SAIL coding guidance and best practices for Appian's Aurora design system to implement components, layouts, and patterns correctly.

Instructions

Get SAIL coding guidance and best practices

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
technologyNoTechnology or framework (e.g., 'sail', 'html', 'css')

Implementation Reference

  • The tool 'get-sail-guidance' is defined and implemented here, accepting a 'technology' parameter and returning either a list of available guides or the specific content of a requested guide.
    server.tool(
      "get-sail-guidance",
      "Get SAIL coding guidance and best practices",
      {
        technology: z.string().describe("Technology or framework (e.g., 'sail', 'html', 'css')").optional(),
      },
      async ({ technology }) => {
        // If no technology specified, list available guides
        if (!technology) {
          const codingGuides = designSystemData['coding-guides'];
          const guides = Object.entries(codingGuides).map(
            ([key, guide]) => `${key}: ${guide.title} - ${guide.body}`
          );
          
          return {
            content: [
              {
                type: "text",
                text: `Available coding guides:\n\n${guides.join("\n\n")}\n\nUse get-component-details with category 'coding-guides' to access specific guides.`,
              },
            ],
          };
        }
        
        // Look for technology-specific guide
        const normalizedTech = technology.toLowerCase();
        const codingGuides = designSystemData['coding-guides'];
        
        // Check if there's a direct match or partial match
        let matchedGuide = null;
        let matchedKey = null;
        
        for (const [key, guide] of Object.entries(codingGuides)) {
          if (key.includes(normalizedTech) || guide.title.toLowerCase().includes(normalizedTech)) {
            matchedGuide = guide;
            matchedKey = key;
            break;
          }
        }
        
        if (!matchedGuide) {
          return {
            content: [
              {
                type: "text",
                text: `No coding guide found for "${technology}". Available guides: ${Object.keys(codingGuides).join(", ")}`,
              },
            ],
          };
        }
        
        // Fetch the full guide content
        const repoContent = await fetchRepoContent(matchedGuide.filePath);
        
        if (!repoContent) {
          return {
            content: [
              {
                type: "text",
                text: `Failed to fetch ${matchedGuide.title} guide. Basic info: ${matchedGuide.body}`,
              },
            ],
          };
        }
        
        return {
          content: [
            {
              type: "text",
              text: `# ${matchedGuide.title}\n\n${repoContent.content}`,
            },
          ],
        };

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/pglevy/aurora-mcp'

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