Skip to main content
Glama
c0sc0s
by c0sc0s

discover_repository_structure

Analyze local codebase structure to identify workspace files, monorepo packages, TypeScript configurations, and package classification details for enhanced project understanding.

Instructions

Inspect a local root path and return workspace files, monorepo packages, tsconfig files, and package classification hints.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rootYes

Implementation Reference

  • The handler registration for discover_repository_structure, which calls the inspectRepository function.
    server.registerTool(
      "discover_repository_structure",
      {
        title: "Discover Repository Structure",
        description: "Inspect a local root path and return workspace files, monorepo packages, tsconfig files, and package classification hints.",
        inputSchema: rootSchema,
      },
      async (args: InspectRepositoryArgs) => {
        const repository = inspectRepository(args.root);
        return {
          content: [
            {
              type: "text",
              text: JSON.stringify(repository, null, 2),
            },
          ],
          structuredContent: repository,
        };
      },
    );
  • The core logic implementation of repository inspection for discover_repository_structure.
    export function inspectRepository(root: string): RepositoryDiscoveryResult {
      const normalizedRoot = toSearchRoot(root);
      const directories = collectDirectories(normalizedRoot);
      const workspaceFiles = collectWorkspaceFiles(normalizedRoot);
      const tsconfigPaths = directories.flatMap((directory) => findDirectChildren(directory, PACKAGE_TSCONFIG_NAMES));
      const packageJsonPaths = directories
        .map((directory) => path.join(directory, "package.json"))
        .filter((packageJsonPath) => fs.existsSync(packageJsonPath));
      const packages = packageJsonPaths.map((packageJsonPath) => inspectPackage(packageJsonPath)).sort(comparePackageInfo);
    
      return {
        root: normalizedRoot,
        workspaceFiles: workspaceFiles.sort(compareByPath),
        tsconfigPaths: uniquePaths(tsconfigPaths),
        packages,
      };
    }

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/c0sc0s/agent-workspace-mcp'

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