Skip to main content
Generates a @Provider class with a Symbol token and configurable scope for the DI container.

Usage

nx g @frontmcp/nx:provider database --project crm
nx g @frontmcp/nx:provider database --project crm --scope singleton

Options

OptionTypeDefaultDescription
namestringRequired. The name of the provider
projectstringRequired. The project to add the provider to
scopesingleton | request | contextsingletonThe provider scope
directorystringSubdirectory within src/providers/

Generated Code

import { Provider } from '@frontmcp/sdk';

export const DATABASE_TOKEN = Symbol('DatabaseProvider');

@Provider({
  token: DATABASE_TOKEN,
  scope: 'singleton',
})
export class DatabaseProvider {
  // TODO: implement provider logic

  static factory(): DatabaseProvider {
    return new DatabaseProvider();
  }
}

Usage in Tools

import { DATABASE_TOKEN } from '../providers/database.provider';

@Tool({ name: 'query-db', inputSchema: { sql: z.string() } })
class QueryDbTool extends ToolContext {
  async execute({ sql }) {
    const db = this.get(DATABASE_TOKEN);
    return db.query(sql);
  }
}