npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

bc-symbols-mcp

v1.2.4

Published

MCP server for analyzing Business Central .app files and BC object structures

Readme

BC Symbols MCP Server

Test Release CodeQL npm version

A Model Context Protocol (MCP) server that analyzes Microsoft Dynamics 365 Business Central .app files and provides intelligent insights about AL code, objects, dependencies, and relationships. Perfect for AL developers, consultants, and architects working with Business Central extensions.

Use Cases

🔍 Code Analysis & Documentation

  • Automatically analyze Business Central .app files to understand object structures
  • Generate documentation from AL code and symbol definitions
  • Explore dependencies between extensions and base application objects
  • Find usage patterns and relationships across multiple apps

🏗️ Extension Development

  • Quickly understand existing extension structures before making modifications
  • Identify potential conflicts between extensions
  • Analyze object dependencies to plan safe updates
  • Find references to tables, fields, and procedures across the codebase

🔧 Troubleshooting & Maintenance

  • Investigate runtime issues by examining object relationships
  • Find all references to deprecated objects or fields
  • Analyze extension compatibility with base application updates
  • Understand impact of changes across dependent extensions

📊 Architecture Review

  • Review extension design patterns and best practices
  • Analyze object distribution and naming conventions
  • Identify circular dependencies and architectural issues
  • Generate reports on extension complexity and size

Installation

VS Code (Claude Dev Extension)

  1. Install the Claude Dev extension in VS Code
  2. Add to your Claude Dev MCP configuration in VS Code settings:
{
  "claude-dev.mcpServers": {
    "bc-symbols": {
      "command": "npx",
      "args": ["bc-symbols-mcp"]
    }
  }
}

Or if you prefer global installation:

npm install -g bc-symbols-mcp
{
  "claude-dev.mcpServers": {
    "bc-symbols": {
      "command": "bc-symbols-mcp"
    }
  }
}

Claude Desktop

Add to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "bc-symbols": {
      "command": "npx",
      "args": ["bc-symbols-mcp"]
    }
  }
}

Claude Code CLI

If using Claude Code CLI, add to your MCP configuration:

{
  "mcpServers": {
    "bc-symbols": {
      "command": "bc-symbols-mcp"
    }
  }
}

Manual Installation

# Install globally
npm install -g bc-symbols-mcp

# Or use directly with npx (no installation needed)
npx bc-symbols-mcp

Available Commands

🚀 Getting Started Commands

configure_app_sources

Set up paths to your Business Central .app files for analysis.

Parameters:

  • paths (string[]): Array of file paths or directory paths containing .app files
  • autoLoad (boolean, optional): Automatically load discovered app files (default: true)
  • recursive (boolean, optional): Scan subdirectories recursively (default: true)
  • replace (boolean, optional): Replace existing configuration instead of appending (default: false)

Example:

{
  "paths": [
    "/path/to/MyExtension_1.0.0.0.app",
    "/path/to/extensions/directory",
    "C:\\AL\\Extensions"
  ],
  "autoLoad": true,
  "recursive": true
}

get_app_sources

View current configuration and discovered .app files.

Parameters:

  • rescan (boolean, optional): Rescan directories for app files (default: false)

Example:

{
  "rescan": true
}

📁 App Management Commands

load_app_file

Load and parse a specific Business Central .app file.

Example:

{
  "filePath": "/path/to/MyExtension_1.0.0.0.app"
}

list_loaded_apps

List all currently loaded apps with their basic information.

Example:

{}

get_app_info

Get detailed information about a specific app including dependencies and object counts.

Example:

{
  "appId": "d543d3b8-6359-46d3-ab38-cd4cdd79457f"
}

🔍 Object Analysis Commands

query_objects

Search for Business Central objects across loaded apps.

Parameters:

  • appIds (string[], optional): Specific app IDs to search in
  • objectType (string, optional): Object type (table, page, codeunit, report, etc.)
  • objectName (string, optional): Object name (supports partial matching)
  • objectId (number, optional): Specific object ID
  • includeExtensions (boolean, optional): Include extension objects (default: true)

Examples:

// Find all tables across all loaded apps
{
  "objectType": "table"
}

// Find Customer-related pages in a specific app
{
  "appIds": ["d543d3b8-6359-46d3-ab38-cd4cdd79457f"],
  "objectType": "page",
  "objectName": "Customer"
}

// Find object by ID
{
  "objectType": "table",
  "objectId": 18
}

get_object_details

Get comprehensive details about a specific Business Central object.

Example:

{
  "appId": "d543d3b8-6359-46d3-ab38-cd4cdd79457f",
  "objectType": "table",
  "objectIdentifier": "Customer"
}

🔗 Dependency Analysis Commands

analyze_dependencies

Analyze dependencies for a specific app.

Parameters:

  • appId (string): App ID to analyze
  • includeTransitive (boolean, optional): Include indirect dependencies (default: true)
  • direction (string, optional): Direction of analysis (incoming, outgoing, both)

Example:

{
  "appId": "d543d3b8-6359-46d3-ab38-cd4cdd79457f",
  "includeTransitive": true,
  "direction": "both"
}

find_references

Find all references to a specific object, field, or method across loaded apps.

Parameters:

  • appIds (string[], optional): Specific apps to search in
  • objectType (string): Type of the target object
  • objectName (string): Name of the target object
  • fieldName (string, optional): Specific field to find references to
  • methodName (string, optional): Specific method to find references to

Examples:

// Find all references to Customer table
{
  "objectType": "table",
  "objectName": "Customer"
}

// Find references to a specific field
{
  "objectType": "table",
  "objectName": "Customer",
  "fieldName": "Name"
}

// Find references to a specific method
{
  "objectType": "codeunit",
  "objectName": "Sales-Post",
  "methodName": "PostInvoice"
}

🧹 Utility Commands

clear_cache

Clear the app cache to free memory or reload modified files.

Example:

{}

Supported BC Object Types

  • Tables and Table Extensions
  • Pages and Page Extensions
  • Codeunits
  • Reports and Report Extensions
  • XMLPorts
  • Queries
  • Enums
  • Interfaces
  • Permission Sets and Permission Set Extensions
  • Control Add-ins

MCP Resources

Access raw data through structured URIs:

App-Specific Resources

  • bc-app://{appId}/manifest - App manifest data
  • bc-app://{appId}/symbols - Symbol reference data
  • bc-app://{appId}/objects/{objectType} - Objects by type
  • bc-app://{appId}/info - Basic app information
  • bc-app://{appId}/dependencies - Dependency information

Global Resources

  • bc-apps://all - List of all loaded apps
  • bc-apps://cache-stats - Cache statistics

Example Workflow

Here's a typical workflow for analyzing a Business Central extension:

  1. Configure your app sources:
{
  "paths": ["/path/to/extensions/directory"],
  "autoLoad": true,
  "recursive": true
}
  1. Explore loaded apps:
{}
// Use list_loaded_apps command
  1. Analyze a specific extension:
{
  "appId": "your-extension-id",
  "includeTransitive": true,
  "direction": "both"
}
// Use analyze_dependencies command
  1. Find object relationships:
{
  "objectType": "table",
  "objectName": "Customer"
}
// Use find_references command
  1. Get detailed object information:
{
  "appId": "your-extension-id",
  "objectType": "page",
  "objectIdentifier": "Customer List"
}
// Use get_object_details command

Requirements

  • Node.js 20+ (recommended: 24+)
  • Business Central .app files for analysis
  • VS Code with Claude Dev extension, Claude Desktop, or Claude Code CLI

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Run linting and tests: npm run lint && npm test
  6. Submit a pull request

License

MIT License - see LICENSE file for details.

Acknowledgments