Suleman Manji

Logo

MSP Solutions Architect | AI-Powered Automation | Enterprise Migration

View My GitHub Profile

NPM Packages

Open-source JavaScript and Node.js packages focused on automation and integration.

10+
Published Packages
5k+
Monthly Downloads
100+
GitHub Stars
20+
Active Contributors

Featured Packages

halopsa-workflows-mcp

Scalable, modular MCP server for integrating HaloPSA workflows with Claude and AI assistants. Featured in MCP Container and Glama registries.

4 GitHub stars | Featured in MCP registries
npm install halopsa-workflows-mcp
// MCP server for HaloPSA integration
// Provides ticket management, agent workflows,
// and reporting tools accessible via Claude

// In your Claude Code MCP config:
{
  "mcpServers": {
    "halopsa": {
      "command": "npx",
      "args": ["halopsa-workflows-mcp"],
      "env": {
        "HALO_API_URL": "https://your-instance.halopsa.com",
        "HALO_CLIENT_ID": "your-client-id",
        "HALO_CLIENT_SECRET": "your-secret"
      }
    }
  }
}

m365-utils

Utility library for Microsoft 365 administration and automation tasks. Provides simplified interfaces for common M365 operations.

1.2k+ downloads per month
npm install m365-utils
const m365 = require('m365-utils');

// Setup authentication with app registration
await m365.auth.withClientCredentials({
  tenantId: 'your-tenant-id',
  clientId: 'your-client-id',
  clientSecret: 'your-client-secret'
});

// Get all SharePoint sites
const sites = await m365.sharepoint.getAllSites();

// Update security settings
await m365.security.enableMFA('user@example.com');

graph-tools

Comprehensive wrapper for Microsoft Graph API with simplified query building, batching, and authentication handling.

850+ downloads per month
npm install graph-tools
const { GraphClient } = require('graph-tools');

// Initialize with Azure AD app registration
const graph = new GraphClient({
  auth: {
    clientId: 'your-client-id',
    clientSecret: 'your-client-secret',
    tenantId: 'your-tenant-id'
  }
});

// Get user details with expanded manager info
const user = await graph.users('john.doe@example.com')
  .expand('manager')
  .select(['displayName', 'jobTitle', 'department'])
  .get();

azure-automator

Simplified Node.js toolkit for Azure resource provisioning and management with declarative configuration support.

720+ downloads per month
npm install azure-automator
const { AzureAutomator } = require('azure-automator');

// Initialize with service principal
const azure = new AzureAutomator({
  tenantId: 'your-tenant-id',
  clientId: 'your-client-id',
  clientSecret: 'your-client-secret',
  subscriptionId: 'your-subscription-id'
});

// Create a resource group
await azure.resourceGroups.create('my-resource-group', {
  location: 'eastus',
  tags: {
    environment: 'development',
    project: 'automation-demo'
  }
});

powershell-runner

Node.js library for executing PowerShell scripts with improved error handling and result parsing.

650+ downloads per month
npm install powershell-runner
const { PowerShell } = require('powershell-runner');

// Create a new PowerShell instance
const ps = new PowerShell();

// Run a script with parameters
const result = await ps.run('Get-Service', {
  parameters: {
    Name: 'BITS',
    ComputerName: 'localhost'
  }
});

console.log(result.status);  // Running, Stopped, etc.

// Run a script file
const scriptResult = await ps.runFile('./scripts/security-audit.ps1', {
  parameters: {
    ReportPath: './security-report.json'
  }
});

Integration Examples

Microsoft 365 Security Automation

Automating security policy enforcement across M365 services using m365-utils and graph-tools packages.

const { GraphClient } = require('graph-tools');
const m365 = require('m365-utils');

// Setup authentication
const graph = new GraphClient({...});

// Identify users without MFA
const usersWithoutMFA = await m365.security.getUsersWithoutMFA();

// Apply conditional access policies
for (const user of usersWithoutMFA) {
  await graph.identityProtection.applyPolicy('RequireMFA', user.id);
  await m365.notification.sendEmail({
    to: user.userPrincipalName,
    subject: 'MFA Requirement Notice',
    body: 'Your account requires multi-factor authentication...'
  });
}

Package Development Philosophy

Modularity

Packages are designed with a focus on small, composable modules that can be used independently or combined for complex solutions.

Security First

All packages implement secure defaults, credential protection, and follow security best practices for enterprise-grade deployments.

Comprehensive Documentation

Clear, detailed documentation with practical examples to ensure developers can quickly implement solutions.

Type Safety

TypeScript definitions and interfaces for improved developer experience and reduced runtime errors.

Package Roadmap

Planned

M365 Governance Toolkit

Comprehensive governance solution for Microsoft 365 environments with reporting, remediation, and compliance features.

In Progress

Serverless Framework Extensions

Azure-focused extensions for the Serverless Framework to simplify cloud function deployment and management.

Complete

AI Integration Framework

MCP servers and Claude Code plugins providing AI-powered access to M365, ITGlue, ConnectWise, and HaloPSA with 130+ tools and autonomous agents.

Contribute

All packages are open-source and welcome contributions. If you're interested in contributing:

1

Find an Issue

Browse the GitHub repositories for open issues labeled "good first issue" or "help wanted".

2

Fork the Repository

Create your own fork of the repository to work on your changes.

3

Submit a Pull Request

Once you've made your changes, submit a pull request with a clear description of the improvements.