Hubbl - MCP Documentation

Introduction

The Hubbl MCP server (https://mcp.hubbl.com/mcp) exposes Hubbl tools and context to AI coding agents and assistants. It uses Streamable HTTP with a Basic authorization header built from your Hubbl API Key and Secret.

Agent Setup

Prerequisites

Before configuring any agent, you will need:

  • A Hubbl API Key and API Secret — obtain these from your Hubbl account settings.
  • Your base64-encoded authorization token, generated from your credentials.

Generate your token

Run the following command for your operating system, substituting your actual API Key and Secret:

Mac and Linux

echo -n "yourApiKey:yourApiSecret" | base64

Windows (PowerShell)

[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("yourApiKey:yourApiSecret"))

The output is your <token>. Your full Authorization header value will be Basic <token>.

Keep your token private. Do not commit it to source control.

Agentforce Vibes

Agentforce Vibes allows you to connect to remote MCP servers to expand its capabilities. You can add Hubbl MCP via the Agentforce Vibes UI in VS Code and modifying its configuration file.

Step 1 — Generate your token

If you have not already done so, follow the Prerequisites steps to generate your <token>.

Step 2 — Configure the Hubbl MCP server

To connect Agentforce Vibes to Hubbl MCP, you'll need to configure it with the correct URL and authorization header.

  1. In VS Code, open the Agentforce Vibes panel.
  2. Click the MCP Servers icon (top right of the panel) to open the MCP Servers interface.
  3. Navigate to the Remote Servers tab.
  4. Click Edit Configuration to open the a4d_mcp_settings.json file.
  5. Add the Hubbl MCP server configuration under mcpServers. Replace <token> with your base64 value:
{
  "mcpServers": {
    "hubbl-mcp": {
      "url": "https://mcp.hubbl.com/mcp",
      "type": "streamableHttp",
      "disabled": false,
      "headers": {
        "Authorization": "Basic <token>"
      }
    }
  }
}

Step 3 — Verify the connection

Save the configuration file and click then navigate to the "Configure" tab in your MCP Servers window. You should see the hubbl-mcp server listed with a green status indicator. Click the arrow to expand the server and you should see the available tools.

MCP Servers Done Marketplace Remote Servers Configure The Model Context Protocol enables communication with locally running MCP servers that provide additional tools and resources to extend Agentforce's capabilities. You can use community-made servers or ask Agentforce to create new tools specific to your workflow (e.g., "add a tool that gets the latest npm docs"). Salesforce DX hubbl-mcp Configure MCP Servers

Claude Code

Claude Code supports two ways to add an MCP server: via the CLI, which stores credentials in a workspace-scoped entry in ~/.claude.json, or manually, by creating a .mcp.json file at the root of your project. Either way, your credentials should be kept private and never committed to source control.

For full details on MCP support in Claude Code, see the official Claude Code MCP documentation.

Step 1 — Generate your token

If you have not already done so, follow the Prerequisites steps to generate your <token>.

Step 2 — Add the Hubbl MCP server

Choose one of the following options:

Option a — Via the Claude Code CLI

Run the following command, replacing <token> with the value you generated above:

claude mcp add --transport http Hubbl-MCP https://mcp.hubbl.com/mcp \
  --header "Authorization: Basic <token>"

The CLI stores the server in a workspace-scoped entry inside ~/.claude.json.

Option b — Manually via .mcp.json

In the root of the project, create a file named .mcp.json with the following content. Replace <token> with the base64 value you generated.

{
  "mcpServers": {
    "Hubbl-MCP": {
      "type": "http",
      "url": "https://mcp.hubbl.com/mcp",
      "headers": {
        "Authorization": "Basic <token>"
      }
    }
  }
}

Then, ensure the file is not accidentally committed to source control:

echo ".mcp.json" >> .gitignore

Step 3 — Restart Claude Code

Fully quit and reopen Claude Code so it picks up the new configuration.

Step 4 — Approve the MCP server

After reloading, Claude Code will display a security prompt in the console:

New MCP server found in .mcp.json: Hubbl-MCP MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the MCP documentation . 1. Use this and all future MCP servers in this project › 2. Use this MCP server 3. Continue without using this MCP server Enter to confirm · Esc to cancel

Select Use this MCP server to allow Claude Code to connect to Hubbl MCP.

If you are using the VSCode extension, just type /mcp into the chat window and follow the prompts.

Verify

Type /mcp in Claude Code and confirm Hubbl MCP appears with a green connected status.

Cline VSCode Extension

Placeholder content for integrating Hubbl MCP with the Cline VSCode Extension.

Step 1 — Generate your token

If you have not already done so, follow the Prerequisites steps to generate your <token>.

Step 2 — Configure the Hubbl MCP server

To connect Cline to Hubbl MCP, you'll need to configure it with the correct URL and authorization header.

  1. In VS Code, open the Cline panel.
  2. Click the Manage MCP Servers icon (bottom left of the panel) to open the MCP Servers interface.
  3. Click the gear icon, then navigate to the Remote Servers tab.
  4. Click Edit Configuration to open the cline_mcp_settings.json file.
  5. Add the Hubbl MCP server configuration under mcpServers. Replace <token> with your base64 value:
  6. Save the file then click the Done button in the Cline panel.
{
  "mcpServers": {
    "hubbl-mcp": {
      "url": "https://mcp.hubbl.com/mcp",
      "type": "streamableHttp",
      "disabled": false,
      "headers": {
        "Authorization": "Basic <token>"
      }
    }
  }
}

Step 3 — Verify the connection

Check the MCP Servers list in your Cline panel. You should see the hubbl-mcp server listed with a green connection status. You can now ask Cline to utilize Hubbl tools directly in your prompts!

MCP Servers Done Marketplace Remote Servers Configure The Model Context Protocol enables communication with locally running MCP servers that provide additional tools and resources to extend Cline's capabilities. You can use community-made servers or ask Cline to create new tools specific to your workflow (e.g., "add a tool that gets the latest npm docs"). See a demo here. hubbl-mcp Configure MCP Servers Advanced MCP Settings

Resources

To view these resources, send a POST request with a body containing a JSON payload similar to the following example. Don't forget to include the mcp_session_id from your initialization request in this request headers.

{
  "jsonrpc": "2.0",
  "method": "resources/read",
  "params": {
    "uri": "hubbl://issue-categories"
  },
  "id": 2345
}

Field Delete Constraints

URI: hubbl://allow-or-prevent-delete

List of all valid 'allowOrPreventDelete' string values for Salesforce lookup-relationship fields (mirrors SF's deleteConstraint). Use these values when constructing RQL filters for the list_org_fields tool.

Value Name
1 Restrict
2 SetNull
3 Cascade

Field Business Statuses

URI: hubbl://business-status

List of all valid 'businessStatus' string values for Salesforce fields. Use these values when constructing RQL filters for the list_org_fields tool.

Value Name
1 Active
2 DeprecateCandidate
3 Deprecated
4 Hidden

Canvas Access Methods

URI: hubbl://canvas-access-method

List of all valid 'canvasAccessMethod' string values for Salesforce connected apps.

Value Name
1 Get
2 Post

Field Compliance Groups

URI: hubbl://compliance-group

List of all valid 'complianceGroup' string values for Salesforce field Data Classification. Use these values when constructing RQL filters for the list_org_fields tool.

Value Name
1 PII
2 HIPAA
3 GLBA
4 PCI
5 COPPA
6 GDPR

Field Encryption Schemes

URI: hubbl://encrypted-scheme

List of all valid 'encryptedScheme' string values for Salesforce Shield-encrypted fields. Use these values when constructing RQL filters for the list_org_fields tool.

Value Name
1 ProbabilisticEncryption
2 CaseSensitiveDeterministicEncryption
3 CaseInsensitiveDeterministicEncryption

Field Types

URI: hubbl://field-type

List of all valid Salesforce field 'type' string values. Use these values when constructing RQL filters for the list_org_fields tool.

Value Name
1 AutoNumber
2 Text
3 MasterDetail
4 ExternalLookup
5 Lookup
6 Html
7 LongTextArea
8 TextArea
9 Address
10 Checkbox
11 Currency
12 Date
13 DateTime
14 Email
15 Location
16 Number
17 Percent
18 Phone
19 Picklist
20 MultiselectPicklist
21 EncryptedString
22 Time
23 Url
24 Id

Issue Categories

URI: hubbl://issue-categories

List of all valid 'category' string values. Agents MUST review these values to ensure correct spelling and casing when constructing RQL filters for the get_org_issues tool.

Value Name
1 Custom Code
2 Data Model
3 Declarative Automation
4 Limits
5 Packages
6 Reports
7 User Management and Security

Efforts

URI: hubbl://issue-efforts

List of all valid 'effort' string values. Agents MUST review these values to ensure correct spelling and casing when constructing RQL filters for the get_org_issues tool.

Value Name
1 Low
2 Medium
3 High

Metadata Types

URI: hubbl://issue-metadata-types

List of all valid 'metadataType' string values. Agents MUST review these values to ensure correct spelling and casing when constructing RQL filters for the get_org_issues tool.

Value Name
2 aura
3 classes
4 components
5 connectedApps
6 fields
7 flows
8 globalValueSets
9 installedPackages
10 licenseUsage
11 lwc
12 objects
13 pages
14 permissionSets
15 profiles
16 reports
17 securityHealthCheckRisks
18 system
19 triggers
20 workflows

Priorities

URI: hubbl://issue-priorities

List of all valid 'priority' string values. Agents MUST review these values to ensure correct spelling and casing when constructing RQL filters for the get_org_issues tool.

Value Name
1 Low
2 Medium
3 High

Well-Architected Categories

URI: hubbl://issue-well-architected-categories

List of all valid 'wellArchitectedCategoryLevelX' (1-4) string values. Agents MUST review these values to ensure correct spelling and casing when constructing RQL filters for the get_org_issues tool. Source information: https://architect.salesforce.com/docs/architect/well-architected/guide

Value Name URL
1 Adaptable Link
2 App Lifecycle Management Link
3 Authentication Link
4 Authorization Link
5 Automated Link
6 Composable Link
7 Data Model Optimization Link
8 Data Security Link
9 Data Volume Management Link
10 Design Standards Link
11 Documentation Link
12 Easy Link
13 Efficiency Link
14 Functional Units Link
15 Intentional Link
16 KPIs Link
17 Maintainability Link
18 Organizational Security Link
19 Readability Link
20 Reliable Link
21 Resilient Link
22 Scalability Link
23 Secure Link
24 Separation of Concerns Link
25 Session Management Link
26 Session Security Link
27 Sharing and Visibility Link
28 Simple Link
29 Technical Debt Link
30 Testing Strategy Link
31 Threat Detection and Response Link
32 Trusted Link
33 Use of Encryption Link

Well-Architected Hierarchy

URI: hubbl://issue-well-architected-hierarchy

Hierarchy definitions of valid paths (levels 1 through 4) for well-architected categories. Agents MUST review this hierarchy to ensure they query valid category combinations for the get_org_issues tool.

Path Details Path Array (Levels 1-4)
Adaptable -> Composable -> Separation of Concerns -> Functional Units [1, 6, 24, 14]
Adaptable -> Resilient -> App Lifecycle Management -> Testing Strategy [1, 21, 2, 30]
Easy -> Automated -> Efficiency -> KPIs [12, 5, 13, 16]
Easy -> Intentional -> Maintainability -> Technical Debt [12, 15, 17, 29]
Easy -> Intentional -> Readability -> Design Standards [12, 15, 19, 10]
Easy -> Intentional -> Readability -> Documentation [12, 15, 19, 11]
Easy -> Simple -> Maintainability -> Technical Debt [12, 28, 17, 29]
Easy -> Simple -> Readability -> Documentation [12, 28, 19, 11]
Trusted -> Reliable -> Scalability -> Data Model Optimization [32, 20, 22, 7]
Trusted -> Reliable -> Scalability -> Data Volume Management [32, 20, 22, 9]
Trusted -> Secure -> Data Security -> Sharing and Visibility [32, 23, 8, 27]
Trusted -> Secure -> Data Security -> Use of Encryption [32, 23, 8, 33]
Trusted -> Secure -> Organizational Security -> Authentication [32, 23, 18, 3]
Trusted -> Secure -> Organizational Security -> Authorization [32, 23, 18, 4]
Trusted -> Secure -> Session Security -> Session Management [32, 23, 26, 25]
Trusted -> Secure -> Session Security -> Threat Detection and Response [32, 23, 26, 31]

Mobile Device Types

URI: hubbl://mobile-device-type

List of all valid 'mobileDeviceType' string values for Salesforce connected apps.

Value Name
1 phone
2 tablet
3 mini

Mobile Platforms

URI: hubbl://mobile-platform

List of all valid 'mobilePlatform' string values for Salesforce connected apps.

Value Name
1 ios
2 android

Package Types

URI: hubbl://package-type

List of all valid 'packageType' string values. Use these values when constructing RQL filters for the list_org_installed_packages tool.

Value Name
1 Managed
2 Unlocked
3 Unmanaged

Field Security Classifications

URI: hubbl://security-classification

List of all valid 'securityClassification' string values for Salesforce field Data Classification. Use these values when constructing RQL filters for the list_org_fields tool.

Value Name
1 Public
2 Internal
3 Confidential
4 Restricted
5 MissionCritical

Tools

To execute these tools over the Model Context Protocol HTTP transport, the body of your request must contain a JSON payload like the following example. By replacing the name and arguments values with the desired tool's details.

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get_org_info",
    "arguments": {
      "orgId": "your-org-id"
    }
  },
  "id": 2346
}

Get Org Connected App

Name: get_org_connected_app

Get a single connected app by id. Returns the full record (Canvas/mobile/OAuth/options config not in list_org_connected_apps). Use list_org_connected_apps to find an id.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
id
number

Connected app ID (matches the id returned by list_org_connected_apps)

Required
}

Response Schema

{
data

A full representation of a connected app including mobile and canvas configuration.

{
id
Integer

Internal Hubbl primary key ID.

isInstalled
Boolean

Indicates if the app is currently installed in the org.

salesforceId
String

The 18-character Salesforce ID of the app record.

salesforceApplicationId
String

The Salesforce application identifier.

label
String

The display name (UI Label) of the connected app.

name
String

The developer name (API Name) of the connected app.

namespacePrefix
String

The namespace prefix associated with the connected app.

description
String

A brief description of the app's purpose.

createdDate
String (date-time)

The timestamp the app was created in Salesforce.

lastModifiedDate
String (date-time)

The timestamp the app was last modified in Salesforce.

userCount
Integer

Number of users who have authorized this app.

usageCount
Integer

Total number of times this app has been used.

firstUsedDate
String (date-time)

The timestamp of the first recorded use.

lastUsedDate
String (date-time)

The timestamp of the most recent use.

canvasAccessMethod
String

The method used to access the canvas app (e.g., SignedRequest, OAuth).

canvasEnabled
Boolean

Indicates if canvas functionality is enabled.

canvasOptions
String

Configuration options for the canvas app.

canvasReferenceId
String

External reference ID for canvas integration.

canvasSelectedLocations
String

Locations where the canvas app is exposed (e.g., Layout, Mobile).

canvasUrl
String

The secure URL for the canvas app.

iconUrl
String

URL for the app icon.

infoUrl
String

URL for additional information about the app.

isRegisteredDeviceOnly
Boolean

Indicates if access is restricted to registered devices.

isUsingAdminAuthorization
Boolean

Indicates if the app uses admin-preauthorized OAuth scopes.

logoUrl
String

URL for the app logo.

mobileAppBinaryId
String

Identifier for the mobile app binary.

mobileAppInstallUrl
String

URL to install the mobile app.

mobileAppInstalledDate
String (date-time)

Date the mobile app was installed.

mobileAppInstalledVersion
String

The specific version of the mobile app currently installed.

mobileAppVer
String

The version string of the mobile app.

mobileDeviceType
String

The targeted device type for the mobile app.

mobileMinOsVer
String

The minimum OS version required for the mobile app.

mobilePlatform
String

The mobile platform (iOS, Android).

mobileSessionTimeout
String

Session timeout configuration for the mobile app.

mobileStartUrl
String

The starting URL for the mobile app experience.

namedUserUvidTimeout
String

Timeout for named user UVIDs.

optionsFullContentPushNotifications
Boolean

Indicates if full content push notifications are enabled.

optionsHasSessionLevelPolicy
Boolean

Indicates if session-level policies are applied.

optionsRefreshTokenValidityMetric
Boolean

Metric for refresh token validity.

pinLength
String

Required PIN length for mobile access.

refreshTokenValidityPeriod
Integer

The period for which a refresh token remains valid.

setupUrl
String

URL to the app's setup page in Salesforce.

startUrl
String

The starting URL for the web app experience.

uvidTimeout
String

Timeout for UVIDs.

isLocal
Boolean

Indicates if the app was created locally in the org.

isBlocked
Boolean

Indicates if the app has been blocked by an administrator.

clientId
String

The consumer key (Client ID) for the connected app.

createdAt
String (date-time)

Internal Hubbl timestamp indicating when this record was first synced.

updatedAt
String (date-time)

Internal Hubbl timestamp indicating when this record was last updated.

}
}

Get Org Field

Name: get_org_field

Get a single Salesforce field by id. Returns the full record (picklist, formula, encryption, compliance, security classification). Use list_org_fields to discover ids.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
id
number

Field ID (matches the id returned by list_org_fields)

Required
}

Get Org Info

Name: get_org_info

Return a summary of information about a Salesforce organization.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
}

Response Schema

{
data
Required
{
id
String

The unique Salesforce identifier for the organization

name
String

The name of the organization

userName
String

The username associated with the organization connection

hubblScore
Integer

The Hubbl score for the organization

complexityScore
Integer

The complexity score for the organization

lastScanDate
String (date-time)

The date and time of the last scan

totalIssueCount
Integer

The total number of issues found in the organization

highSeverityIssueCount
Integer

The number of high severity issues found in the organization

}
}

Get Org Installed Package

Name: get_org_installed_package

Get a single installed package by id. Returns the full record including version segments, package version metadata, and container options. To find an id, use the list_org_installed_packages tool.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
id
number

Installed package ID (matches the id returned by list_org_installed_packages)

Required
}

Response Schema

{
data

A full representation of an installed package.

{
label
String

The display label of the package.

id
Integer

Internal Hubbl primary key ID.

name
String

The developer name of the package.

description
String

A brief description of the package's purpose.

publisherName
String

The name of the organization that published the package.

namespacePrefix
String

The namespace prefix that identifies this package.

majorVersion
Integer

The major version number.

minorVersion
Integer

The minor version number.

patchVersion
Integer

The patch version number.

buildNumber
Integer

The specific build number of the installed version.

releaseState
String

The release state (e.g., Released, Beta).

isDeprecated
Boolean

Indicates whether the package version is deprecated.

isManaged
Boolean

Indicates whether the package is a managed package.

isPasswordProtected
Boolean

Indicates whether the package is protected by a password.

isSecurityReviewed
Boolean

Indicates whether the package has passed Salesforce security review.

salesforceId
String

The 18-character Salesforce ID of the installed package.

salesforceVersionId
String

The Salesforce ID for this specific package version (starts with 04t).

isOrgDependent
Boolean

Indicates whether the package is dependent on the organization's metadata.

isValid
Boolean

Indicates whether the package installation is valid.

packageVersionDescription
String

Description of the specific package version.

packageVersionName
String

Name of the specific package version.

package2ContainerOptions
String

Container options for the package.

isBeta
Boolean

Indicates whether this is a beta version of the package.

packageType
String

The type of the package (e.g., Managed, Unmanaged).

packageId
Integer

The Hubbl ID of the parent package.

packageVersionId
Integer

The Hubbl ID of the package version.

installDate
String (date-time)

The date and time when the package was installed in the org.

isOutdated
Boolean

Indicates whether a newer version of the package is available.

latestVersion
String

The version number of the latest available version of the package.

createdAt
String (date-time)

Internal Hubbl timestamp indicating when this record was first synced.

updatedAt
String (date-time)

Internal Hubbl timestamp indicating when this record was last updated.

}
}

Get Org Issues

Name: get_org_issues

Returns a list of issues for a Salesforce organization. In order to reduce token usage, string values for the category, priority, effort, wellArchitectedCategory, and metadataType fields have been replaced with numeric IDs. Refer to the published MCP resources to map these integer values back to their string representations. The filter parameter will accept either the numeric or the string values as input, but the response will always return the numeric values.

You are highly encouraged to use the 'fields' parameter to explicitly select only the fields you need, further reducing token usage. Note that you can still use any supported field in your 'filter' or 'sort' parameters even if you do not include those fields in your returned 'fields' subset.

More detailed context for each issue can be retrieved using the get_org_recommendation tool, using the issue key returned by this tool as an input parameter.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
limit
number

Number items to return (default 100, max 1000)

offset
number

Number items to skip

fields
string

A comma-separated list of fields to include in the response. If omitted, all fields are returned. Example: priority,effort,title

filter
string

Resource Query Language (RQL) formatted filter criteria.

Note: The filter will accept either the numeric or string values for the priority, effort, metadataType, category, and all wellArchitectedCategoryLevel fields.

Example: "filter": "and(eq(priority, high), eq(effort, 1), in(metadataType, profiles, 17), contains(wellArchitectedCategoryLevel3, security))"

Supported Fields:

  • priority
  • effort
  • wellArchitectedCategoryLevel1
  • wellArchitectedCategoryLevel2
  • wellArchitectedCategoryLevel3
  • wellArchitectedCategoryLevel4
  • metadataType
  • namespace
  • relatedObject
  • category
  • apiName
  • rule
  • title
  • label
  • content

Operators: and(), or(), not(), eq(), ne(), gt(), gte(), lt(), lte(), in(), out(), like(), ilike(), contains(), isNull(), isNotNull().

Defaults to isNull(namespace).

sort
string

JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting).

Supported Fields:

  • priority
  • effort
  • wellArchitectedCategoryLevel1
  • wellArchitectedCategoryLevel2
  • wellArchitectedCategoryLevel3
  • wellArchitectedCategoryLevel4
  • metadataType
  • namespace
  • relatedObject
  • category
  • apiName
  • rule
  • title
  • label
  • content

Prepend with - for descending order.

Defaults to -priority,effort.

}

Response Schema

{
data
Array[
{
key
String

Unique identifier of an issue across all scans of an org

priority
String

The priority level of the recommendation (Low, Medium, High)

effort
String

Estimated effort required to implement the recommendation (Low, Medium, High)

title
String

Human-readable title of the recommendation

wellArchitectedCategoryLevel1
String

The top-level category in the Salesforce Well-Architected framework

wellArchitectedCategoryLevel2
String

The second-level category in the Salesforce Well-Architected framework

wellArchitectedCategoryLevel3
String

The third-level category in the Salesforce Well-Architected framework

wellArchitectedCategoryLevel4
String

The fourth-level category in the Salesforce Well-Architected framework

category
String

The functional category of the recommendation

namespace
String

The Salesforce namespace where the issue was found

apiName
String

The API name of the Salesforce component or metadata item

relatedObject
String

The Salesforce object related to the issue

metadataType
String

The type of Salesforce metadata

updatedAt
String (date-time)

The date and time when the issue record was last updated

}
]
meta

Pagination metadata for the public API, including navigation links.

{
total
Integer

Total number of items

offset
Integer

Current offset

nextOffset
Integer

Next offset value (null if last page)

nextPageUrl
String

URL for the next page (null if last page)

}
}

Get Org Recommendation

Name: get_org_recommendation

Returns detailed information for a specific issue recommendation. Unlike the get_org_issues list tool which returns token-optimized numerical IDs for many fields, this endpoint retains the full text representation for more actionable context.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
issueKey
string

The unique key for tracking an issue across scans of an org.

Required
}

Response Schema

{
data
{
rule
String

The unique rule identifier for the issue

priority
String

The priority level of the recommendation (Low, Medium, High)

effort
String

Estimated effort required to implement the recommendation (Low, Medium, High)

title
String

Human-readable title of the recommendation

content
String

Detailed description or instructions for the recommendation

wellArchitectedCategoryLevel1
String

The top-level category in the Salesforce Well-Architected framework

wellArchitectedCategoryLevel2
String

The second-level category in the Salesforce Well-Architected framework

wellArchitectedCategoryLevel3
String

The third-level category in the Salesforce Well-Architected framework

wellArchitectedCategoryLevel4
String

The fourth-level category in the Salesforce Well-Architected framework

category
String

The functional category of the recommendation

wellArchitectedLevel4Url
String

URL to the documentation for the level 4 Well-Architected category

relatedObject
String

The Salesforce object related to the issue

metadataType
String

The type of Salesforce metadata

isNew
Boolean

Indicates if the recommendation was first introduced in the current scan

isResolved
Boolean

Indicates if the issue was not found in the most recent scan

firstDetectedDate
String (date-time)

The date the this issue was first detected by a Hubbl scan.

lastDetectedDate
String (date-time)

The date the this issue was most recently detected by a Hubbl scan.

key
String

Unique identifier of an issue across all scans of an org

namespace
String

The Salesforce namespace where the issue was found

label
String

A human-readable label for the metadata or component

apiName
String

The API name of the Salesforce component or metadata item

line
Integer

The line number where the issue was identified

isBasic
Boolean

Indicates whether this is a basic health check recommendation

subScoreArea
String

The sub-score area this recommendation affects natively

developerSolutionUrl
String

URL to documentation on how a developer can resolve this issue

adminSolutionUrl
String

URL to documentation on how an administrator can resolve this issue

relativePath
String

Relative path from repository root to the related component

}
}

List Org Connected Apps

Name: list_org_connected_apps

List connected apps connected to the given org. Returns the app name, usage counts, install and last used dates. For further details about a given app, use the get_connected_app tool.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
limit
number

Number items to return (default 50, max 1000)

offset
number

Number items to skip

filter
string

Resource Query Language (RQL) formatted filter criteria.

Example: "filter": "and(eq(isInstalled,true),gte(usageCount,2))"

Supported Fields:

  • id
  • name
  • label
  • namespacePrefix
  • salesforceId
  • clientId
  • isInstalled
  • isLocal
  • isBlocked
  • userCount
  • usageCount
  • createdDate
  • lastModifiedDate
  • firstUsedDate
  • lastUsedDate

Operators: and(), or(), not(), eq(), in(), contains(), gte(), lte(), between(), isNull(), isNotNull().

sort
string

JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting).

Supported Fields:

  • id
  • name
  • label
  • namespacePrefix
  • salesforceId
  • isInstalled
  • isLocal
  • isBlocked
  • userCount
  • usageCount
  • createdDate
  • lastModifiedDate
  • firstUsedDate
  • lastUsedDate

Prepend with - for descending order.

Defaults to -lastUsedDate.

}

Response Schema

Paginated response containing a list of connected apps registered against an organization.

{
data
Array[

A minimal representation of a connected app.

{
id
Integer

Internal Hubbl primary key ID.

isInstalled
Boolean

Indicates if the app is currently installed in the org.

salesforceId
String

The 18-character Salesforce ID of the app record.

salesforceApplicationId
String

The Salesforce application identifier.

label
String

The display name (UI Label) of the connected app.

name
String

The developer name (API Name) of the connected app.

namespacePrefix
String

The namespace prefix associated with the connected app.

description
String

A brief description of the app's purpose.

createdDate
String (date-time)

The timestamp the app was created in Salesforce.

userCount
Integer

Number of users who have authorized this app.

usageCount
Integer

Total number of times this app has been used.

firstUsedDate
String (date-time)

The timestamp of the first recorded use.

lastUsedDate
String (date-time)

The timestamp of the most recent usage of this app in the org.

infoUrl
String

URL for additional information about the app.

isUsingAdminAuthorization
Boolean

Indicates if the app uses admin-preauthorized OAuth scopes.

isBlocked
Boolean

Indicates if the app has been blocked by an administrator.

createdAt
String (date-time)

Internal Hubbl timestamp indicating when this record was first synced.

}
]
meta

Pagination metadata for the public API, including navigation links.

{
total
Integer

Total number of items

offset
Integer

Current offset

nextOffset
Integer

Next offset value (null if last page)

nextPageUrl
String

URL for the next page (null if last page)

}
}

List Org Fields

Name: list_org_fields

List Salesforce fields in an org. Returns id/apiName/label/type, object, custom/formula/lookup flags, recordCount, percentPopulated. Use get_org_field for the full record.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
limit
number

Number of items to return (default 200, max 1000)

offset
number

Number of items to skip

filter
string

Resource Query Language (RQL) formatted filter criteria.

Example: "filter": "and(eq(isCustom,true),gte(percentPopulated,50))"

Supported Fields:

  • id
  • apiName
  • label
  • type
  • object
  • isCustom
  • isFormula
  • isLookup
  • recordCount
  • percentPopulated

Operators: and(), or(), not(), eq(), in(), contains(), gte(), lte(), between(), isNull(), isNotNull().

sort
string

JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting).

Supported Fields:

  • id
  • apiName
  • label
  • type
  • object
  • recordCount
  • percentPopulated

Prepend with - for descending order.

Defaults to -percentPopulated.

}

Response Schema

Paginated response containing a list of Salesforce fields scanned in an org.

{
data
Array[

A minimal representation of a Salesforce field scanned in an org.

{
id
Integer

Internal Hubbl primary key ID.

itemId
Integer

Hubbl item identifier.

sobjectId
Integer

Internal Hubbl ID of the parent SObject.

objectApiName
String

API name of the parent object (e.g. Account, Contact).

apiName
String

API name of the field (e.g. FirstName, Custom_Field__c).

label
String

Display label of the field.

type
String

Salesforce field data type (e.g. Text, Number, Checkbox).

description
String

Description text of the field.

isCustomField
Boolean

Whether this is a custom field (__c suffix).

isUsable
Boolean

Whether the field is usable for querying.

recordCount
Integer

Number of records where this field is populated.

objectRecordCount
Integer

Total number of records in the parent object.

percentPopulated
Number (double)

Percentage of records where this field is populated.

namespace
String

Namespace prefix for managed package fields.

createdAt
String (date-time)

Timestamp when this record was first synced to Hubbl.

updatedAt
String (date-time)

Timestamp when this record was last updated in Hubbl.

}
]
meta

Pagination metadata for the public API, including navigation links.

{
total
Integer

Total number of items

offset
Integer

Current offset

nextOffset
Integer

Next offset value (null if last page)

nextPageUrl
String

URL for the next page (null if last page)

}
}

List Installed Packages

Name: list_org_installed_packages

Returns a list of managed and unmanaged packages installed in a Salesforce organization.

For the full record (version segments, package version metadata), use the get_installed_package tool with the id returned by this tool.

Input Schema

{
orgId
string

The Salesforce Organization ID. e.g. 00D8c0000000000EAE

Required
limit
number

Number of items to return (default 50, max 1000)

offset
number

Number of items to skip

filter
string

Resource Query Language (RQL) formatted filter criteria.

Example: "filter": "and(eq(isManaged,true),eq(isOutdated,true))"

Supported Fields:

  • id
  • name
  • label
  • publisherName
  • namespacePrefix
  • salesforceId
  • salesforceVersionId
  • packageType
  • releaseState
  • isManaged
  • isDeprecated
  • isSecurityReviewed
  • isBeta
  • isOutdated
  • installDate

Operators: and(), or(), not(), eq(), in(), contains(), gte(), lte(), between(), isNull(), isNotNull().

sort
string

JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting).

Supported Fields:

  • id
  • name
  • publisherName
  • installDate

Prepend with - for descending order.

Defaults to -installDate.

}

Response Schema

Paginated response containing a list of installed packages in an organization.

{
data
Array[
{
id
Integer

Internal Hubbl primary key ID.

name
String

The developer name of the package.

label
String

The display label of the package.

description
String

A brief description of the package's purpose.

publisherName
String

The name of the organization that published the package.

namespacePrefix
String

The namespace prefix that identifies this package.

buildNumber
Integer

The specific build number of the installed version.

releaseState
String

The release state (e.g., Released, Beta).

isDeprecated
Boolean

Indicates whether the package version is deprecated.

isManaged
Boolean

Indicates whether the package is a managed package.

isPasswordProtected
Boolean

Indicates whether the package is protected by a password.

isSecurityReviewed
Boolean

Indicates whether the package has passed Salesforce security review.

salesforceId
String

The 18-character Salesforce ID of the installed package.

salesforceVersionId
String

The Salesforce ID for this specific package version (starts with 04t).

isOrgDependent
Boolean

Indicates whether the package is dependent on the organization's metadata.

isValid
Boolean

Indicates whether the package installation is valid.

isBeta
Boolean

Indicates whether this is a beta version of the package.

installDate
String (date-time)

The date and time when the package was installed in the org.

isOutdated
Boolean

Indicates whether a newer version of the package is available.

latestVersion
String

The version number of the latest available version of the package.

createdAt
String (date-time)

Internal Hubbl timestamp indicating when this record was first synced.

updatedAt
String (date-time)

Internal Hubbl timestamp indicating when this record was last updated.

}
]
meta

Pagination metadata for the public API, including navigation links.

{
total
Integer

Total number of items

offset
Integer

Current offset

nextOffset
Integer

Next offset value (null if last page)

nextPageUrl
String

URL for the next page (null if last page)

}
}

Server Info

Name: server_info

Returns metadata about this MCP server instance.

Input Schema

No arguments required

Was this page helpful?