Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:49:50 +08:00
commit adc4b2be25
147 changed files with 24716 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
mxcp: 1
tool:
name: describe_sobject
description: |
Get detailed metadata for a specific Salesforce object, including all field information.
Returns field names, types, labels, and relationship details.
tags: ["salesforce", "metadata", "schema"]
annotations:
title: "Describe Salesforce Object"
readOnlyHint: true
idempotentHint: true
parameters:
- name: object_name
type: string
description: "Name of the Salesforce object to describe"
examples: ["Account", "Contact", "Opportunity", "Lead", "Case"]
return:
type: object
description: "Object metadata with field information"
additionalProperties: true
language: python
source:
file: ../python/salesforce_client.py
tests:
- name: "Describe Account object"
description: "Test describing the standard Account object"
arguments:
- key: object_name
value: "Account"
result_contains:
Name:
type: "string"
Id:
type: "id"

View File

@@ -0,0 +1,37 @@
mxcp: 1
tool:
name: get_sobject
description: |
Retrieve a specific Salesforce record by its ID.
Returns the complete record data with all accessible fields.
tags: ["salesforce", "data", "records"]
annotations:
title: "Get Salesforce Record"
readOnlyHint: true
idempotentHint: true
parameters:
- name: object_name
type: string
description: "Name of the Salesforce object type"
examples: ["Account", "Contact", "Opportunity", "Lead", "Case"]
- name: record_id
type: string
description: "Salesforce record ID (15 or 18 character ID)"
examples: ["001000000000001", "003000000000001AAA"]
return:
type: object
description: "Complete record data"
additionalProperties: true
language: python
source:
file: ../python/salesforce_client.py
tests:
- name: "Get Account record"
description: "Test retrieving an Account record by ID"
arguments:
- key: object_name
value: "Account"
- key: record_id
value: "001000000000001"
result_contains:
Id: "001000000000001"

View File

@@ -0,0 +1,38 @@
mxcp: 1
tool:
name: list_sobjects
description: |
List all available Salesforce objects (sObjects) in the organization.
Optionally filter the list by providing a filter term for fuzzy matching on object names.
tags: ["salesforce", "metadata", "objects"]
annotations:
title: "List Salesforce Objects"
readOnlyHint: true
idempotentHint: true
parameters:
- name: filter
type: string
description: "Optional filter term to match against object names (case-insensitive fuzzy matching)"
default: null
examples: ["Account", "Contact", "Custom"]
return:
type: array
description: "List of sObject names"
items:
type: string
description: "Name of a Salesforce object"
language: python
source:
file: ../python/salesforce_client.py
tests:
- name: "List all objects"
description: "Test listing all available Salesforce objects"
arguments: []
result_contains_item: "Account"
- name: "Filter objects"
description: "Test filtering objects by name"
arguments:
- key: filter
value: "Account"
result_contains_item: "Account"

View File

@@ -0,0 +1,38 @@
mxcp: 1
tool:
name: search
description: |
Search across all searchable Salesforce objects using the native Salesforce search.
This uses the simple SOSL syntax "FIND {search_term}" which automatically searches
all searchable objects and fields.
language: python
source:
file: ../python/salesforce_client.py
parameters:
- name: search_term
type: string
description: "Term to search for across all searchable objects"
examples: ["John", "Acme", "555-1234", "example.com"]
return:
type: array
description: "Search results from all matching objects"
items:
type: object
description: "Search result record"
additionalProperties: true
tags:
- salesforce
- search
- data
annotations:
title: "Search Salesforce Records"
readOnlyHint: true
idempotentHint: true
tests:
- name: "Basic search"
description: "Test searching for a common term"
arguments:
- key: search_term
value: "test"
# Note: Using result type array since search results can be empty or contain records
result: []

View File

@@ -0,0 +1,33 @@
mxcp: 1
tool:
name: soql
description: |
Execute a SOQL (Salesforce Object Query Language) query. Returns query results as an array of records.
For personalized queries (e.g., 'my tasks', 'my opportunities'), use the whoami tool first to get the current user's ID for filtering (e.g., WHERE OwnerId = 'user_id').
tags: ["salesforce", "query", "data"]
annotations:
title: "Execute SOQL Query"
readOnlyHint: true
idempotentHint: true
parameters:
- name: query
type: string
description: "SOQL query string to execute"
examples: ["SELECT Id, Name FROM Account LIMIT 10", "SELECT Id, Email FROM Contact WHERE LastName = 'Smith'"]
return:
type: array
description: "Query results"
items:
type: object
description: "Record data"
additionalProperties: true
language: python
source:
file: ../python/salesforce_client.py
tests:
- name: "Simple Account query"
description: "Test executing a basic SOQL query on Account object"
arguments:
- key: query
value: "SELECT Id, Name FROM Account LIMIT 1"
result_length: 1

View File

@@ -0,0 +1,36 @@
mxcp: 1
tool:
name: sosl
description: |
Execute a raw SOSL (Salesforce Object Search Language) query.
Allows complex search queries with specific object targeting and field selection.
language: python
source:
file: ../python/salesforce_client.py
parameters:
- name: query
type: string
description: "SOSL query string to execute"
examples: ["FIND {test} IN ALL FIELDS RETURNING Account(Id, Name)", "FIND {John} RETURNING Contact(Id, Name, Email)"]
return:
type: array
description: "Search results"
items:
type: object
description: "Search result record"
additionalProperties: true
tags:
- salesforce
- search
- advanced
annotations:
title: "Execute SOSL Query"
readOnlyHint: true
idempotentHint: true
tests:
- name: "Simple SOSL query"
description: "Test executing a basic SOSL search query"
arguments:
- key: query
value: "FIND {test} IN ALL FIELDS RETURNING Account(Id, Name)"
result: []

View File

@@ -0,0 +1,44 @@
mxcp: 1
tool:
name: whoami
title: Current User Information
description: |
Get the current authenticated user's information (user_id, email, name) from OAuth context.
Use this tool before executing personalized SOQL queries to identify the user for filtering records by ownership or assignment.
tags:
- salesforce
- user
- auth
annotations:
readOnlyHint: true
idempotentHint: true
parameters: []
return:
type: object
description: Essential current user information from OAuth context
properties:
user_id:
type: string
description: Salesforce user ID
email:
type: string
description: User's email address
name:
type: string
description: User's full name
preferred_username:
type: string
description: User's preferred username
organization_id:
type: string
description: Salesforce organization ID
instanceUrl:
type: string
description: Salesforce instance URL for the authenticated user
language: python
source:
file: ../python/salesforce_client.py
tests:
- name: whoami_basic
description: Get current user information
arguments: []