Skip to main content
Glama
6

MCP Server RubyGems

by 6

get_gem_reverse_dependencies

Identify RubyGems that depend on a specific gem by querying reverse dependencies, using the MCP Server RubyGems API for accurate dependency insights.

Instructions

Get gems that depend on a specific RubyGem

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
$schemaNo
additionalPropertiesNo
propertiesNo
requiredNo
typeNo

Implementation Reference

  • Zod input schema defining the gem_name parameter for the tool.
    const GetGemReverseDependenciesInputSchema = z.object({
      gem_name: z
        .string()
        .min(1)
        .describe('Name of the RubyGem to fetch reverse dependencies for'),
    });
  • Core handler function that fetches and parses reverse dependencies from the RubyGems API.
    async function getGemReverseDependencies(gemName: string): Promise<string[]> {
      const response = await fetch(
        `https://rubygems.org/api/v1/gems/${gemName}/reverse_dependencies.json`
      );
    
      if (!response.ok) {
        if (response.status === 404) {
          throw new Error(`RubyGem '${gemName}' not found`);
        }
        throw new Error(
          `Failed to fetch reverse dependencies: ${response.statusText}`
        );
      }
    
      const data = await response.json();
      return z.array(z.string()).parse(data);
    }
  • Exports the McpTool object, registering the tool with its name, description, input schema, and wrapper handler.
    export const getGemReverseDependenciesTool: McpTool = {
      name: 'get_gem_reverse_dependencies',
      description: 'Get gems that depend on a specific RubyGem',
      inputSchema: {
        type: 'object',
        properties: zodToJsonSchema(GetGemReverseDependenciesInputSchema),
      },
      handler: async (args: Record<string, unknown> | undefined) => {
        const { gem_name } = GetGemReverseDependenciesInputSchema.parse(args || {});
    
        try {
          const reverseDependencies = await getGemReverseDependencies(gem_name);
          return {
            content: [
              {
                type: 'text',
                text: JSON.stringify(reverseDependencies, null, 2),
              },
            ],
          };
        } catch (error: unknown) {
          return createErrorResponse(
            error,
            'Failed to fetch gem reverse dependencies'
          );
        }
      },
    };
  • src/index.ts:20-27 (registration)
    Includes the getGemReverseDependenciesTool in the list of available tools served by the MCP server.
    const tools: readonly McpTool[] = [
      getRubyGemInfoTool,
      searchRubyGemsTool,
      getGemVersionsTool,
      getGemReverseDependenciesTool,
      getOwnerGemsTool,
      getGemOwnersTool,
    ] as const;

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Related Tools

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/6/mcp-server-rubygems'

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