# 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
