Skip to main content
Glama
nrwl

Nx MCP Server

Official
by nrwl
utils.ts1.71 kB
import { importNxPackagePath } from '@nx-console/shared-npm'; import type { MigrationsJsonMetadata } from 'nx/src/command-line/migrate/migrate-ui-api'; import { getNxWorkspacePath } from '@nx-console/vscode-configuration'; import { readFileSync, writeFileSync } from 'fs'; import { join } from 'path'; import * as migrateUiApi from 'nx/src/command-line/migrate/migrate-ui-api'; export function modifyMigrationsJsonMetadata( modify: ( migrationsJsonMetadata: MigrationsJsonMetadata, ) => MigrationsJsonMetadata, ) { const nxWorkspacePath = getNxWorkspacePath(); const migrationsJsonPath = join(nxWorkspacePath, 'migrations.json'); const migrationsJson = JSON.parse(readFileSync(migrationsJsonPath, 'utf-8')); migrationsJson['nx-console'] = modify(migrationsJson['nx-console']); writeFileSync(migrationsJsonPath, JSON.stringify(migrationsJson, null, 2)); } export function readMigrationsJsonMetadata(): | MigrationsJsonMetadata | undefined { try { const workspacePath = getNxWorkspacePath(); const migrationsJsonPath = join(workspacePath, 'migrations.json'); const migrationsJson = JSON.parse( readFileSync(migrationsJsonPath, 'utf-8'), ); return migrationsJson['nx-console']; } catch (e) { return undefined; } } // tries importing the migrate ui from the local nx package but falls back to the bundled one export async function importMigrateUIApi(workspacePath: string) { try { const migrateUiApi = await importNxPackagePath< typeof import('nx/src/command-line/migrate/migrate-ui-api') >(workspacePath, 'src/command-line/migrate/migrate-ui-api'); return migrateUiApi; } catch (e) { // do nothing } return migrateUiApi; }

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/nrwl/nx-console'

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