170 lines
7.0 KiB
Markdown
170 lines
7.0 KiB
Markdown
# Salesforce MCP Server - Tools Manifest
|
|
|
|
## Summary
|
|
**Total Tools: 96**
|
|
**Target: 60-80** ✅ **EXCEEDED**
|
|
|
|
All tools follow the naming convention `sf_verb_noun` and are organized into 14 logical categories.
|
|
|
|
## Tool Breakdown by Category
|
|
|
|
### 1. Accounts (`src/tools/accounts.ts`) - 6 tools
|
|
- `sf_list_accounts` - List accounts with filters
|
|
- `sf_get_account` - Get account by ID
|
|
- `sf_create_account` - Create new account
|
|
- `sf_update_account` - Update existing account
|
|
- `sf_delete_account` - Delete account
|
|
- `sf_search_accounts` - Search accounts with SOQL
|
|
|
|
### 2. Contacts (`src/tools/contacts.ts`) - 7 tools
|
|
- `sf_list_contacts` - List contacts with filters
|
|
- `sf_get_contact` - Get contact by ID
|
|
- `sf_create_contact` - Create new contact
|
|
- `sf_update_contact` - Update existing contact
|
|
- `sf_delete_contact` - Delete contact
|
|
- `sf_search_contacts` - Search contacts with SOQL
|
|
- `sf_find_contacts_by_email` - Find contacts by email (exact or partial)
|
|
|
|
### 3. Leads (`src/tools/leads.ts`) - 7 tools
|
|
- `sf_list_leads` - List leads with filters
|
|
- `sf_get_lead` - Get lead by ID
|
|
- `sf_create_lead` - Create new lead
|
|
- `sf_update_lead` - Update existing lead
|
|
- `sf_delete_lead` - Delete lead
|
|
- `sf_convert_lead` - Convert lead to Account/Contact/Opportunity
|
|
- `sf_search_leads` - Search leads with SOQL
|
|
|
|
### 4. Opportunities (`src/tools/opportunities.ts`) - 8 tools
|
|
- `sf_list_opportunities` - List opportunities with filters
|
|
- `sf_get_opportunity` - Get opportunity by ID
|
|
- `sf_create_opportunity` - Create new opportunity
|
|
- `sf_update_opportunity` - Update existing opportunity
|
|
- `sf_delete_opportunity` - Delete opportunity
|
|
- `sf_search_opportunities` - Search opportunities with SOQL
|
|
- `sf_find_opportunities_by_stage` - Find opportunities by stage
|
|
- `sf_find_opportunities_by_amount` - Find opportunities by amount range
|
|
|
|
### 5. Cases (`src/tools/cases.ts`) - 8 tools
|
|
- `sf_list_cases` - List cases with filters
|
|
- `sf_get_case` - Get case by ID
|
|
- `sf_create_case` - Create new case
|
|
- `sf_update_case` - Update existing case
|
|
- `sf_delete_case` - Delete case
|
|
- `sf_close_case` - Close a case
|
|
- `sf_escalate_case` - Escalate a case
|
|
- `sf_search_cases` - Search cases with SOQL
|
|
|
|
### 6. Tasks (`src/tools/tasks.ts`) - 7 tools
|
|
- `sf_list_tasks` - List tasks with filters
|
|
- `sf_get_task` - Get task by ID
|
|
- `sf_create_task` - Create new task
|
|
- `sf_update_task` - Update existing task
|
|
- `sf_delete_task` - Delete task
|
|
- `sf_search_tasks` - Search tasks with SOQL
|
|
- `sf_get_overdue_tasks` - Get all overdue tasks
|
|
|
|
### 7. Events (`src/tools/events.ts`) - 7 tools
|
|
- `sf_list_events` - List events with filters
|
|
- `sf_get_event` - Get event by ID
|
|
- `sf_create_event` - Create new event
|
|
- `sf_update_event` - Update existing event
|
|
- `sf_delete_event` - Delete event
|
|
- `sf_search_events` - Search events with SOQL
|
|
- `sf_find_events_by_date_range` - Find events in date range
|
|
|
|
### 8. Campaigns (`src/tools/campaigns.ts`) - 7 tools
|
|
- `sf_list_campaigns` - List campaigns with filters
|
|
- `sf_get_campaign` - Get campaign by ID
|
|
- `sf_create_campaign` - Create new campaign
|
|
- `sf_update_campaign` - Update existing campaign
|
|
- `sf_add_campaign_member` - Add lead/contact to campaign
|
|
- `sf_list_campaign_members` - List members of a campaign
|
|
- `sf_get_campaign_stats` - Get campaign statistics
|
|
|
|
### 9. Reports (`src/tools/reports.ts`) - 5 tools
|
|
- `sf_list_reports` - List available reports
|
|
- `sf_get_report` - Get report by ID
|
|
- `sf_run_report` - Run a report and get results
|
|
- `sf_describe_report` - Get report metadata
|
|
- `sf_search_reports` - Search reports by name
|
|
|
|
### 10. Dashboards (`src/tools/dashboards.ts`) - 5 tools
|
|
- `sf_list_dashboards` - List available dashboards
|
|
- `sf_get_dashboard` - Get dashboard by ID
|
|
- `sf_describe_dashboard` - Get dashboard metadata
|
|
- `sf_get_dashboard_components` - Get dashboard components
|
|
- `sf_search_dashboards` - Search dashboards by title
|
|
|
|
### 11. Users (`src/tools/users.ts`) - 8 tools
|
|
- `sf_list_users` - List users with filters
|
|
- `sf_get_user` - Get user by ID
|
|
- `sf_search_users` - Search users by name/username/email
|
|
- `sf_list_roles` - List user roles
|
|
- `sf_get_role` - Get role by ID
|
|
- `sf_list_profiles` - List user profiles
|
|
- `sf_get_profile` - Get profile by ID
|
|
- `sf_get_user_permissions` - Get permission sets for a user
|
|
|
|
### 12. Custom Objects (`src/tools/custom-objects.ts`) - 7 tools
|
|
- `sf_describe_object` - Describe any SObject (get metadata)
|
|
- `sf_list_custom_objects` - List all custom objects in org
|
|
- `sf_get_custom_record` - Get record from any custom object
|
|
- `sf_list_custom_records` - List records from any custom object
|
|
- `sf_create_custom_record` - Create record in any custom object
|
|
- `sf_update_custom_record` - Update record in any custom object
|
|
- `sf_delete_custom_record` - Delete record from any custom object
|
|
|
|
### 13. SOQL (`src/tools/soql.ts`) - 7 tools
|
|
- `sf_run_soql_query` - Execute raw SOQL query
|
|
- `sf_run_soql_query_all` - Execute SOQL query with auto-pagination
|
|
- `sf_run_sosl_search` - Execute SOSL search
|
|
- `sf_build_soql_query` - Build SOQL query (helper)
|
|
- `sf_explain_soql_query` - Get query plan for performance
|
|
- `sf_count_records` - Count records with optional filter
|
|
- `sf_aggregate_query` - Run aggregate functions (COUNT, SUM, AVG, etc.)
|
|
|
|
### 14. Bulk API (`src/tools/bulk-api.ts`) - 7 tools
|
|
- `sf_bulk_create_job` - Create bulk job for large operations
|
|
- `sf_bulk_upload_data` - Upload CSV data to bulk job
|
|
- `sf_bulk_close_job` - Close job and start processing
|
|
- `sf_bulk_get_job_status` - Get job status
|
|
- `sf_bulk_get_successful_results` - Get successful results (CSV)
|
|
- `sf_bulk_get_failed_results` - Get failed results with errors (CSV)
|
|
- `sf_bulk_abort_job` - Abort a running job
|
|
|
|
## Features
|
|
|
|
### Comprehensive Coverage
|
|
✅ Standard Objects: Account, Contact, Lead, Opportunity, Case, Task, Event
|
|
✅ Marketing: Campaign, Campaign Members
|
|
✅ Analytics: Reports, Dashboards
|
|
✅ Admin: Users, Roles, Profiles, Permissions
|
|
✅ Custom Objects: Generic CRUD for any custom object
|
|
✅ Query: SOQL, SOSL, aggregations
|
|
✅ Bulk Operations: Bulk API 2.0 for large datasets
|
|
|
|
### Technical Features
|
|
- **Type Safety**: Full TypeScript types from `src/types/index.ts`
|
|
- **Error Handling**: Leverages client retry logic and error handling
|
|
- **Pagination**: Support for LIMIT/OFFSET and automatic pagination
|
|
- **Relationships**: SOQL joins for related objects (e.g., Account.Name, Owner.Name)
|
|
- **Flexible Queries**: Custom WHERE clauses, ORDER BY, filtering
|
|
- **Performance**: Query plan analysis, bulk operations for scale
|
|
|
|
### API Compliance
|
|
- REST API v59.0
|
|
- Proper field name mapping (camelCase input → PascalCase Salesforce fields)
|
|
- SalesforceId type safety with branded types
|
|
- Composite API support (up to 25 subrequests)
|
|
- Bulk API 2.0 for large data operations
|
|
|
|
## TypeScript Compilation
|
|
✅ All files compile without errors (`npx tsc --noEmit`)
|
|
|
|
## Quality Metrics
|
|
- **96 tools** across **14 categories**
|
|
- **Average: 6.86 tools per category**
|
|
- **Range: 5-8 tools per category** (well-balanced)
|
|
- **Naming consistency**: 100% follow `sf_verb_noun` pattern
|
|
- **Type safety**: 100% TypeScript with strict types
|