Skip to main content
Glama

MCP Salesforce 서버

CI

OAuth 인증을 사용하여 Salesforce와 원활하게 통합되는 Model Context Protocol (MCP) 서버입니다. 이 서버를 통해 Claude와 같은 AI 어시스턴트가 안전하고 일반적인 인터페이스를 통해 모든 Salesforce 조직과 상호작용할 수 있습니다.

✨ 주요 기능

  • 🎯 원활한 인증 - Claude가 인증이 필요한 시점을 자동으로 감지하고 투명하게 처리합니다.

  • 🚀 수동 설정 불필요 - 터미널 명령어나 수동 OAuth 흐름을 실행할 필요가 없습니다.

  • 🔐 OAuth 전용 인증 - 자동 토큰 갱신을 지원하는 안전한 브라우저 기반 설정

  • 🌐 범용 Salesforce 통합 - 사용자 지정 개체 및 필드를 포함한 모든 Salesforce 조직에서 작동

  • 🧠 스마트 설치 학습 - 전체 Salesforce 설정을 분석하여 지능형 지원 제공

  • 🔍 동적 스키마 검색 - Salesforce 구성에 자동으로 적응

  • 🔒 안전한 토큰 저장 - 프로덕션급 보안을 위해 엄격한 권한이 적용된 파일 기반 저장소

  • 🏠 플랫폼 간 홈 디렉토리 저장 - 자격 증명 및 캐시를 사용자 홈 디렉토리에 저장

  • 📝 전체 CRUD 작업 - 모든 Salesforce 레코드 쿼리, 생성, 업데이트 및 삭제

  • 📊 스키마 검사 - 개체 및 필드에 대한 상세 정보 확인

  • 💡 상황 인식 제안 - 지능형 필드 및 개체 이름 제안 제공

  • 💾 포괄적인 백업 시스템 - 모든 Salesforce 파일 시스템을 지원하는 완전한 데이터 및 파일 백업

  • ⏰ 타임머신 기능 - 특정 시점 데이터 복구 및 이력 분석

  • 📁 다중 형식 파일 지원 - 적절한 메타데이터와 함께 ContentVersions, Attachments 및 Documents 백업

Related MCP server: Salesforce MCP Server

🚀 빠른 시작

사전 요구 사항

  • Node.js 18+

  • macOS (안전한 자격 증명 저장을 위해 필요)

  • OAuth가 구성된 Salesforce Connected App

설치 옵션

🎯 권장: NPX 사용 (설치 불필요)

NPX를 사용하여 영구적인 설치 없이 MCP 서버를 실행하세요:

{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["@aiondadotcom/mcp-salesforce"]
    }
  }
}

✅ NPX 사용의 이점:

  • 🔄 항상 최신 상태: 자동으로 게시된 최신 버전 사용

  • 💾 디스크 공간 절약: 영구 설치 불필요

  • 🛡️ 충돌 없음: 전역 패키지 충돌 없음

  • 쉬운 업데이트: 재시작만 하면 자동으로 최신 버전 적용

  • 📋 간편한 구성: 복사-붙여넣기 가능한 MCP 구성

NPX 명령줄 사용법:

# Get version
npx -p @aiondadotcom/mcp-salesforce mcp-salesforce --version

# Get help
npx -p @aiondadotcom/mcp-salesforce mcp-salesforce --help

# Run OAuth setup
npx -p @aiondadotcom/mcp-salesforce mcp-salesforce setup

🔧 대안: 개발 설정

개발 또는 사용자 정의를 위한 방법:

  1. 복제 및 종속성 설치:

    git clone https://github.com/AiondaDotCom/mcp-salesforce.git
    cd mcp-salesforce
    npm install
  2. 자격 증명 구성: 메시지가 표시되면 salesforce_setup 도구를 사용하여 자격 증명을 구성하세요.

  3. 로컬 경로를 사용하여 Claude Desktop에 추가하세요.

🎯 사용 시작

이제 끝입니다! 처음 Salesforce 도구를 사용할 때 Claude가 자동으로 설정 및 인증을 처리합니다.

✨ 대화형 설정 프로세스!

  • salesforce_setup 도구를 사용하여 자격 증명을 구성하세요.

  • Claude가 Salesforce Connected App 세부 정보를 요청합니다.

  • 자격 증명은 홈 디렉토리에 안전하게 저장됩니다.

  • Claude Desktop에서 직접 원활한 OAuth 흐름을 제공합니다.

🧠 스마트 학습 시스템

  • salesforce_learn을 사용하여 전체 Salesforce 설치를 분석하세요.

  • Claude가 모든 사용자 지정 개체, 필드 및 관계를 학습합니다.

  • 특정 설정에 기반한 지능형 제안을 제공합니다.

  • 복잡한 Salesforce 환경을 위한 상황 인식 지원을 제공합니다.

📦 NPM 패키지 상태

패키지 게시 완료!

@aiondadotcom/mcp-salesforce 패키지가 NPM에 게시되어 바로 사용할 수 있습니다.

게시된 패키지 사용

모든 사용자가 NPX를 사용할 수 있습니다:

# Test the published package
npx -p @aiondadotcom/mcp-salesforce mcp-salesforce --version
npx -p @aiondadotcom/mcp-salesforce mcp-salesforce --help

# Run OAuth setup
npx -p @aiondadotcom/mcp-salesforce mcp-salesforce setup

게시 세부 정보

  • 패키지 이름: @aiondadotcom/mcp-salesforce

  • 버전: 1.0.7 (최신)

  • 레지스트리: NPM Public Registry

  • 조직: @aiondadotcom

  • 액세스: 공개

상태:

  • ✅ NPM에 패키지 게시됨

  • ✅ NPX 호환성 확인됨

  • ✅ 바이너리 래퍼 구현됨

  • ✅ 설정 명령 기능함

  • ✅ MCP 구성 준비됨

  • 즉시 사용 가능

🎉 이제 전 세계 사용자가 NPX 기능을 사용할 수 있습니다!

🔧 구성

Salesforce Connected App 설정

  1. Salesforce 설정에서 새 Connected App을 생성합니다:

    • 앱 이름: MCP Salesforce Integration

    • API 이름: mcp_salesforce_integration

    • 연락처 이메일: 본인 이메일

    • OAuth 설정 활성화: ✅ 예

    • 콜백 URL: http://localhost:9876/callback

      포트 9876은 일반적인 개발 서버(8080, 8000, 3000) 및 잘 알려진 서비스와의 충돌을 피하기 위해 의도적으로 선택되었습니다.

    • 선택된 OAuth 범위:

      • API를 통해 사용자 데이터 관리 (api)

      • 언제든지 요청 수행 (refresh_token, offline_access)

  2. 저장 후 Consumer KeyConsumer Secret을 복사합니다.

자격 증명 구성

애플리케이션을 처음 사용할 때 salesforce_setup 도구를 사용하여 자격 증명을 구성하세요:

  1. 대화형 설정: Claude가 Salesforce 자격 증명을 요청합니다.

  2. Client ID: Salesforce Connected App Consumer Key

  3. Client Secret: Salesforce Connected App Consumer Secret

  4. 인스턴스 URL: Salesforce 조직 URL (예: https://mycompany.salesforce.com)

이 도구는 입력을 검증하고 ~/.mcp-salesforce.json에 제한된 권한(600)으로 자격 증명을 안전하게 저장합니다.

📁 파일 위치:

  • 자격 증명: ~/.mcp-salesforce.json (OAuth 토큰 및 자격 증명 포함)

  • 캐시: ~/.mcp-salesforce-cache/ (학습된 Salesforce 스키마 및 컨텍스트 포함)

  • 플랫폼 간: Windows, macOS 및 Linux에서 작동

상호작용 예시:

Claude: I need to set up your Salesforce credentials first. Please use the salesforce_setup tool with your credentials.

You: Use the salesforce_setup tool with clientId: "3MVG9...", clientSecret: "1234567890...", instanceUrl: "https://mycompany.salesforce.com"

Claude: ✅ Salesforce credentials configured successfully! You can now use other Salesforce tools.

Claude Desktop 통합

🎯 NPX 구성 (권장)

Claude Desktop MCP 구성(~/Library/Application Support/Claude/claude_desktop_config.json)에 다음을 추가하세요:

{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["@aiondadotcom/mcp-salesforce"]
    }
  }
}

🔧 개발/로컬 구성

개발 또는 사용자 정의 설치의 경우:

{
  "mcpServers": {
    "salesforce": {
      "command": "node",
      "args": ["/path/to/mcp-salesforce/src/index.js"]
    }
  }
}

🌐 VS Code MCP 구성

MCP 확장이 포함된 VS Code의 경우:

{
  "servers": {
    "salesforce": {
      "command": "npx",
      "args": ["@aiondadotcom/mcp-salesforce"]
    }
  }
}

📸 데모 스크린샷

다음은 MCP Salesforce 서버가 작동하는 단계별 가이드로, 회사 주소 정보를 확인하고 업데이트하는 실제 사례를 보여줍니다:

1단계: 주소 확인 요청

주소 확인 Claude가 Salesforce의 Aionda GmbH 계정 주소가 현재 웹사이트 주소와 일치하는지 확인하는 모습

2단계: 주소 비교 결과

주소 분석 Claude가 Salesforce 주소가 오래되었음을 식별하고, 현재 Salesforce 데이터와 회사 웹사이트의 실제 주소를 상세히 비교하는 모습

3단계: 자동 주소 업데이트

주소 업데이트 Claude가 Salesforce 계정을 올바른 현재 주소로 성공적으로 업데이트하고, 변경된 필드를 정확히 보여주는 모습

4단계: Salesforce에서 확인

Salesforce 확인 Salesforce의 업데이트된 계정 레코드에서 수정된 주소 정보가 정확하게 반영된 모습

🛠️ 사용 가능한 도구

salesforce_learn

🧠 전체 Salesforce 설치 학습 - 모든 개체, 필드 및 사용자 정의를 한 번 분석하고 이 정보를 로컬에 저장하여 지능형 지원을 제공합니다.

// One-time analysis of the Salesforce installation
{}

// Force complete re-analysis
{
  "force_refresh": true,
  "detailed_relationships": true
}

중요한 이유:

  • Claude가 "TimeTracking__c", "Project__c" 등과 같은 사용자 지정 개체를 학습합니다.

  • 모든 사용자 지정 필드와 데이터 유형을 인식합니다.

  • 특정 구성에 기반한 지능형 제안을 제공합니다.

  • 한 번 실행하면 AI가 영구적으로 혜택을 받습니다.

salesforce_installation_info

📊 학습된 Salesforce 설치 개요 - 사용 가능한 개체, 사용자 지정 필드 및 사용자 정의를 보여줍니다.

// Complete overview of the installation
{}

// Details about a specific object
{
  "object_name": "TimeTracking__c"
}

// Search for specific fields
{
  "field_search": "email",
  "show_custom_only": true
}

salesforce_query

모든 Salesforce 개체에 대해 SOQL 쿼리를 실행합니다.

// Example: Get recent contacts
{
  "query": "SELECT Id, FirstName, LastName, Email FROM Contact WHERE CreatedDate = THIS_MONTH ORDER BY CreatedDate DESC LIMIT 10"
}

🧠 스마트 학습 통합:

  • 설치가 아직 학습되지 않은 경우 자동으로 경고합니다.

  • 사용 가능한 개체와 필드를 제안합니다.

  • 올바른 API 이름을 찾는 데 도움을 줍니다.

salesforce_create

모든 Salesforce 개체에 새 레코드를 생성합니다.

// Example: Create a new contact
{
  "sobject": "Contact",
  "data": {
    "FirstName": "John",
    "LastName": "Doe", 
    "Email": "john.doe@example.com",
    "Phone": "555-1234"
  }
}

🧠 스마트 컨텍스트: 설치가 학습되면 선택한 개체에 필요한 필드를 자동으로 표시합니다.

salesforce_update

기존 레코드를 업데이트합니다.

// Example: Update a contact's email
{
  "sobject": "Contact",
  "id": "003XX000008b6cYAQ",
  "data": {
    "Email": "new.email@example.com",
    "Phone": "555-5678"
  }
}

🧠 스마트 컨텍스트: 학습된 설치의 필드 권한 및 데이터 유형을 고려합니다.

salesforce_delete

레코드를 삭제합니다 (⚠️ 영구적인 작업).

// Example: Delete a record
{
  "sobject": "Contact", 
  "id": "003XX000008b6cYAQ"
}

salesforce_describe

개체 및 필드에 대한 스키마 정보를 가져옵니다.

// Example: Get Contact object schema
{
  "sobject": "Contact"
}

// Or get list of all available objects
{} // Empty parameters

salesforce_backup

💾 Salesforce를 위한 포괄적인 백업 시스템 - 상세한 복구 정보와 함께 모든 데이터 및 파일의 전체 백업을 생성합니다.

// Create complete backup
{}

// Incremental backup since specific date
{
  "backup_type": "incremental",
  "since_date": "2025-01-01T00:00:00Z"
}

// Backup with specific options
{
  "options": {
    "include_files": true,
    "include_attachments": true,
    "include_documents": true,
    "parallel_downloads": 10
  }
}

백업 항목:

  • 📊 모든 개체 데이터 - 개체당 최대 20개의 필드를 포함한 모든 쿼리 가능한 개체

  • 📁 최신 파일 - 완전한 메타데이터가 포함된 ContentVersions

  • 📎 레거시 첨부 파일 - 올바른 파일 확장자를 가진 클래식 첨부 파일

  • 📄 문서 - 레거시 시스템의 폴더 기반 문서

  • 🏗️ 스키마 정보 - 완전한 개체 구조 및 관계

  • 📋 백업 매니페스트 - 상세 통계 및 복구 정보

백업 구조:

salesforce-backup-2025-06-04T16-16-35-660Z/
├── metadata/           # Schema and object definitions
├── data/              # JSON data of all objects
├── files/
│   ├── content-versions/  # Modern files
│   ├── attachments/       # Legacy attachments
│   └── documents/         # Legacy documents
└── backup-manifest.json   # Backup overview

salesforce_backup_list

📋 사용 가능한 백업 표시 - 통계 및 메타데이터가 포함된 모든 로컬 백업의 개요.

// List all available backups
{}

// Details about a specific backup
{
  "backup_name": "salesforce-backup-2025-06-04T16-16-35-660Z"
}

salesforce_time_machine

⏰ Salesforce 데이터 타임머신 - 서로 다른 백업 시점 간의 데이터 변경 사항을 분석하고 타겟 복구를 가능하게 합니다.

// Compare current state with a backup
{
  "backup_timestamp": "2025-06-04T16:16:35.660Z",
  "object_name": "Account"
}

// Show all changes since a specific backup
{
  "backup_timestamp": "2025-06-04T16:16:35.660Z",
  "show_all_changes": true
}

// Detailed analysis for specific records
{
  "backup_timestamp": "2025-06-04T16:16:35.660Z",
  "object_name": "Contact", 
  "record_id": "003XX000008b6cYAQ"
}

타임머신 기능:

  • 📊 데이터 비교 - 백업과 현재 상태 간의 차이점 표시

  • 🔍 변경 이력 - 어떤 필드가 언제 변경되었는지 확인

  • 🗑️ 삭제된 레코드 - 백업 이후 삭제된 레코드 찾기

  • 📈 성장 분석 - 데이터 개발의 통계적 평가

  • 🎯 타겟 복구 - 변경 사항의 정밀한 식별

salesforce_auth

Salesforce로 인증합니다. 인증이 필요한지 자동으로 감지하고 OAuth 흐름을 처리합니다.

// Example: Standard authentication (detects if needed)
{}

// Example: Force re-authentication even if tokens appear valid
{
  "force": true
}

✨ 주요 기능:

  • 자동 감지: 인증이 필요할 때 Claude가 이 도구를 자동으로 제안합니다.

  • 수동 설정 불필요: npm run setup을 수동으로 실행할 필요가 없습니다.

  • 스마트 인증: 필요할 때만 인증하며, 먼저 기존 토큰을 확인합니다.

  • 원활한 통합: 백그라운드에서 투명하게 작동합니다.

이 도구는 다음과 같은 경우에 자동으로 제안됩니다:

  • 인증 없이 Salesforce 도구를 사용하려고 할 때

  • 토큰이 만료되었을 때

  • 인증 오류가 발생할 때

  • 처음 설정이 필요할 때

🧠 스마트 학습 시스템

학습이 중요한 이유

모든 Salesforce 설치는 다음과 같이 고유합니다:

  • "TimeTracking__c", "Project__c", "CustomerCare__c"와 같은 사용자 지정 개체

  • 표준 개체의 사용자 지정 필드

  • 특정 워크플로우 및 유효성 검사 규칙

  • 개별 데이터 구조

AI의 일반 학습 모델은 표준 Salesforce 개체만 알고 있습니다. 특정 설치에 대한 지식 없이는 AI가 지능형 지원을 제공할 수 없습니다.

학습 작동 방식

  1. 일회성 분석: salesforce_learn이 전체 설치를 분석합니다.

  2. 로컬 문서화: 모든 개체, 필드 및 관계가 로컬에 저장됩니다.

  3. 지능형 지원: Claude가 정확한 제안을 하고 복잡한 질문에 답할 수 있습니다.

워크플로우 예시:

You: "Are there any time tracking entries for July 2025?"

Without Learning:
❌ Claude: "I don't know any object called 'TimeTracking'"

With Learning:
✅ Claude: "I'm checking the 'TimeTracking__c' object for entries from July 2025..."
   Automatically executes the correct SOQL query

학습은 언제 사용해야 하나요?

  • 초기 설정 중 - 설치 후 한 번

  • 주요 변경 후 - 새 사용자 지정 개체가 추가되었을 때

  • 문제가 있을 때 - Claude가 개체나 필드를 찾지 못할 때

무엇을 학습하나요?

  • 모든 SObject (표준 및 사용자 지정)

  • 데이터 유형 및 권한이 포함된 모든 필드

  • 개체 간의 관계

  • 선택 목록 값 및 유효성 검사 규칙

  • 더 나은 유효성 검사를 위한 필수 필드

💡 학습은 한 번만 실행되며 이후 모든 상호작용을 훨씬 더 지능적으로 만듭니다!

💡 사용 예시

🚀 설치 후 첫 단계

  1. 인증: Claude가 인증이 필요한 시점을 자동으로 감지합니다.

  2. 학습 시작:

    You: "Learn my Salesforce installation"
    Claude: Automatically uses the salesforce_learn tool
  3. 설치 탐색:

    You: "Show me an overview of my Salesforce installation"
    Claude: Uses salesforce_installation_info for a summary

🔍 학습된 설치를 통한 지능형 쿼리

You: "Show me all projects from this year"
Claude: Automatically recognizes your "Project__c" Custom Object and creates:
SELECT Id, Name, StartDate__c, Status__c FROM Project__c WHERE CALENDAR_YEAR(CreatedDate) = 2025
You: "Are there any time tracking entries for July 2025?"
Claude: Finds your "TimeTracking__c" object and queries:
SELECT Id, Name, Month__c, Hours__c FROM TimeTracking__c WHERE Month__c = 'July 2025'

쿼리 예시

-- Get all accounts in the technology industry
SELECT Id, Name, Industry, Website FROM Account WHERE Industry = 'Technology'

-- Find contacts created this week
SELECT Id, Name, Email, CreatedDate FROM Contact WHERE CreatedDate = THIS_WEEK

-- Get opportunities closing this quarter
SELECT Id, Name, Amount, CloseDate FROM Opportunity WHERE CloseDate = THIS_QUARTER

사용자 지정 개체 작업

서버가 사용자 지정 개체를 자동으로 검색합니다:

// Describe a custom object
{
  "sobject": "CustomProject__c"
}

// Query custom object
{
  "query": "SELECT Id, Name, CustomField__c FROM CustomProject__c LIMIT 10"
}

// Create custom object record
{
  "sobject": "CustomProject__c",
  "data": {
    "Name": "New Project",
    "CustomField__c": "Custom Value"
  }
}

💾 백업 및 타임머신 기능

🚀 Salesforce 백업 시스템

MCP Salesforce 서버는 전체 Salesforce 설치를 보호할 수 있는 **전문

Available Tools

14 tools
salesforce_authA

Authenticate with Salesforce. Automatically detects if authentication is needed and handles OAuth flow. Call this tool if any Salesforce operations fail due to authentication issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce re-authentication even if current tokens appear valid

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's automatic detection capability and OAuth flow handling. However, it doesn't mention important behavioral aspects like whether this persists authentication across sessions, what permissions are required, or potential rate limits. The description doesn't contradict any annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with three sentences that each serve distinct purposes: stating the core function, describing automatic behavior, and providing usage guidance. It's front-loaded with the primary purpose and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an authentication tool with no annotations and no output schema, the description provides good coverage of the tool's purpose and usage context. However, it doesn't describe what happens after authentication (e.g., token storage, session duration) or potential error scenarios, which would be helpful given the lack of structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'force' clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Authenticate with Salesforce') and resource (Salesforce authentication system). It distinguishes this tool from all sibling tools which perform data operations (query, create, update, backup, etc.) rather than authentication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('Call this tool if any Salesforce operations fail due to authentication issues') and when it automatically triggers ('Automatically detects if authentication is needed'). It also implicitly suggests alternatives by indicating this is specifically for authentication failures rather than general Salesforce operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_backupA

Start comprehensive backups of Salesforce data including all file attachments. Runs asynchronously in background - returns immediately with job ID. Check progress with salesforce_backup_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
backup_typeNoType of backup to perform: 'full' backs up everything, 'incremental' backs up changes since a date, 'files_only' backs up just attachmentsincremental
include_filesNoInclude modern Files (ContentDocument/ContentVersion) in backup
include_attachmentsNoInclude legacy Attachment files in backup
include_documentsNoInclude Document object files in backup
objects_filterNoSpecific objects to backup (empty array = all objects). Example: ['Account', 'Contact', 'CustomObject__c']
since_dateNoISO date for incremental backup - only backup records modified after this date. Format: YYYY-MM-DDTHH:mm:ss.sssZ
compressionNoCompress backup files with gzip to save space
parallel_downloadsNoNumber of parallel file downloads (1-10). Higher values = faster but more API usage

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and discloses key behavioral traits: it's an asynchronous operation ('Runs asynchronously in background'), returns immediately with a job ID, and requires follow-up with another tool. However, it doesn't mention potential side effects like API usage impact or resource consumption.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly focused sentences with zero waste: first states purpose, second explains execution behavior, third provides usage guidance. Every sentence earns its place and information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex backup tool with 8 parameters and no output schema, the description provides good context about the asynchronous nature and workflow. However, it doesn't mention what the job ID looks like or potential error conditions, leaving some gaps for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 8 parameters. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Start comprehensive backups'), resource ('Salesforce data including all file attachments'), and scope ('comprehensive'). It distinguishes from siblings like 'salesforce_backup_status' by indicating this initiates the backup while status checks progress.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('Start comprehensive backups') versus alternatives ('Check progress with salesforce_backup_status'), providing clear guidance on the asynchronous workflow and sibling tool relationships.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_backup_listB

List all available Salesforce backups with their details including timestamp, duration, file counts, and sizes

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes what information is returned but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, potential rate limits, pagination behavior, or error conditions. For a tool listing system backups with no annotation coverage, this leaves critical operational context unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that immediately states the tool's purpose and what information it provides. Every word earns its place by specifying the resource (Salesforce backups) and the exact details included. There's no redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple list operation with no parameters) and the absence of both annotations and output schema, the description is minimally adequate. It tells what the tool does and what information to expect, but doesn't address behavioral aspects like authentication requirements, response format, or error handling. For a backup listing tool in a Salesforce context, more operational context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the empty parameter set. The description appropriately doesn't discuss parameters since none exist, and it adds value by specifying what details are included in the response (timestamp, duration, file counts, sizes). This exceeds the baseline expectation for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('Salesforce backups') with specific details about what information is included (timestamp, duration, file counts, sizes). It distinguishes from siblings like 'salesforce_backup' (create backup) and 'salesforce_backup_status' (check status) by focusing on listing existing backups. However, it doesn't explicitly differentiate from all siblings like 'salesforce_query' which could also retrieve backup data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this tool is appropriate (e.g., 'to see all backups at once' vs. 'salesforce_backup_status' for a specific backup) or any prerequisites. With multiple sibling tools related to backups, this lack of differentiation is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_backup_statusA

Check the status of Salesforce backup jobs. Monitor running, completed, or failed backup operations. Use without parameters to see all jobs, or specify a job_id to get detailed status of a specific backup job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNoOptional: Specific backup job ID to check status for. If not provided, shows status of all backup jobs.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool's behavior: checking status of backup jobs, monitoring running/completed/failed operations, and parameter usage. However, it lacks details on authentication requirements, rate limits, error handling, or response format. For a status-checking tool with no annotations, this is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: two sentences that efficiently cover purpose, usage, and parameter guidance without redundancy. Every sentence adds value, and it's front-loaded with the core purpose. No wasted words or unnecessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (status monitoring with one parameter), no annotations, and no output schema, the description is minimally complete. It explains what the tool does and how to use parameters but lacks details on authentication, response structure, or error conditions. For a tool in a Salesforce context with siblings, it could benefit from more contextual guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the schema fully documenting the single optional parameter 'job_id'. The description adds minimal value beyond the schema: it reiterates that no parameters show all jobs and specifying job_id gives detailed status. This aligns with the schema but doesn't provide additional semantics like format examples or edge cases. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check the status of Salesforce backup jobs' with specific verbs ('check', 'monitor') and resource ('backup jobs'). It distinguishes from sibling 'salesforce_backup' (which likely initiates backups) and 'salesforce_backup_list' (which might list backup configurations rather than job status), though not explicitly named. The purpose is specific but could be more explicit about sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage: 'Use without parameters to see all jobs, or specify a job_id to get detailed status of a specific backup job.' This gives practical guidance on when to use each parameter mode. However, it doesn't explicitly state when to use this tool versus alternatives like 'salesforce_backup_list' or mention prerequisites (e.g., authentication).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_createC

Create a new record in any Salesforce object. Automatically handles required fields validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
sobjectYesSObject API name (e.g., 'Contact', 'Account', 'CustomObject__c'). Use exact API names.
dataYesField values for the new record. Use API field names as keys (e.g., {'FirstName': 'John', 'LastName': 'Doe', 'Email': 'john@example.com'})

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Automatically handles required fields validation,' which adds some context about validation behavior. However, it lacks critical details: it doesn't specify whether this is a write operation (implied but not stated), what permissions are needed, whether it's idempotent, error handling, or response format. For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences that are front-loaded and waste no words. The first sentence states the core purpose, and the second adds a key behavioral trait (validation handling). Every sentence earns its place, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of creating records in Salesforce (a mutation operation), no annotations, and no output schema, the description is incomplete. It should explain more about behavioral aspects like authentication needs, error cases, or what the return value looks like. The current description leaves too many gaps for effective tool use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters ('sobject' and 'data'). The description doesn't add any meaningful semantics beyond what's in the schema—it repeats the idea of creating a record but doesn't clarify parameter usage, constraints, or examples not already covered. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Create') and resource ('new record in any Salesforce object'), making the purpose explicit. It distinguishes from siblings like 'salesforce_update' and 'salesforce_delete' by focusing on creation. However, it doesn't specifically differentiate from all siblings (e.g., 'salesforce_setup' might also involve creation), so it's not a perfect 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'salesforce_create' over 'salesforce_update' for existing records, or when to use 'salesforce_query' to check for duplicates first. There's also no mention of prerequisites like authentication or Salesforce object availability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_deleteA

Delete a record from any Salesforce object. This action is permanent and cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
sobjectYesSObject API name (e.g., 'Contact', 'Account', 'CustomObject__c')
idYesSalesforce record ID to delete (15 or 18 character ID)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates critical traits: the action is permanent and irreversible, which is essential for a destructive operation. However, it doesn't mention authentication requirements, error handling, or rate limits that would be helpful for complete transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences that each earn their place: the first states the purpose, and the second provides crucial behavioral warning. It's front-loaded with the core action and wastes no words, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description covers the permanence aspect well but lacks details on authentication needs, error responses, or success indicators. Given the high stakes of deletion, more context on permissions or confirmation mechanisms would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (sobject and id) thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, such as examples or constraints not covered there. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Delete a record') and resource ('from any Salesforce object'), distinguishing it from siblings like create, update, query, and backup tools. It uses precise language that leaves no ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for deletion scenarios but doesn't explicitly state when to use this tool versus alternatives like salesforce_update for soft deletes or salesforce_backup for data preservation. It provides a caution about permanence but lacks guidance on prerequisites or specific use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_describeA

Get detailed schema information for any Salesforce object, including all fields, data types, and permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
sobjectNoSObject API name to describe (e.g., 'Contact', 'Account', 'CustomObject__c'). Leave empty to get list of all available objects.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool's behavior as retrieving schema information, which is a read-only operation, but does not disclose other traits such as authentication requirements, rate limits, or error handling. The description is accurate but lacks depth for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the tool's purpose and key details. It is front-loaded with the main action and resource, with no redundant or unnecessary information, making it highly concise and effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (metadata retrieval with one optional parameter) and lack of annotations and output schema, the description is reasonably complete. It covers the purpose and parameter behavior, but could improve by mentioning authentication needs or output format. It is adequate for a read-only tool with good schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds value by clarifying that leaving the parameter empty returns a list of all available objects, which is not explicitly stated in the schema description. This enhances understanding beyond the schema's basic parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'detailed schema information for any Salesforce object', specifying the content includes 'all fields, data types, and permissions'. It distinguishes from siblings like salesforce_query (data retrieval) and salesforce_create/update/delete (mutations) by focusing on metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for schema exploration, but does not explicitly state when to use this tool versus alternatives. It mentions getting a list of all available objects when the parameter is empty, which provides some context, but lacks guidance on prerequisites (e.g., authentication) or comparisons to other tools like salesforce_setup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_installation_infoA

Returns comprehensive information about the learned Salesforce installation, including all object details, field specifications, relationships, permissions, and customizations from the learned installation data.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameNoSpecific object for detailed information (optional). Example: 'Account', 'Contact', 'CustomObject__c'
field_searchNoSearch for fields with this name or label (optional)
show_custom_onlyNoShow only custom objects and custom fields
include_relationshipsNoInclude relationship information between objects
detailed_fieldsNoShow detailed field information including data types, constraints, and metadata
include_permissionsNoInclude detailed permission information for objects and fields
max_fields_per_objectNoMaximum number of fields to show per object (default: all fields)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool as a read-only operation ('Returns comprehensive information'), which is appropriate, but lacks details on performance characteristics (e.g., response time for large installations), error handling, or data freshness. It adds some context about the scope of information returned but doesn't fully compensate for the absence of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the core purpose ('Returns comprehensive information') and efficiently lists the key components. There's no wasted verbiage, and every phrase adds value by specifying the scope of data returned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a 7-parameter tool with no annotations and no output schema, the description is adequate but incomplete. It covers the tool's purpose and data scope well, but doesn't address behavioral aspects like response format, pagination, or error conditions. For a metadata retrieval tool with rich parameters, more context on output structure would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description doesn't add any parameter-specific semantics beyond what's in the schema, such as explaining interactions between parameters or providing usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Returns comprehensive information') and resources ('Salesforce installation, including all object details, field specifications, relationships, permissions, and customizations'). It distinguishes itself from siblings like salesforce_query or salesforce_describe by focusing on 'learned installation data' rather than live operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying 'learned installation data,' suggesting it should be used for metadata retrieval rather than live Salesforce operations. However, it lacks explicit guidance on when to use this tool versus alternatives like salesforce_describe or salesforce_setup, and doesn't mention prerequisites such as needing prior learning via salesforce_learn.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_learnA

Analyzes the complete Salesforce installation and creates local documentation of all objects, fields, and customizations. This should be run once after initial setup to enable intelligent assistance.

ParametersJSON Schema
NameRequiredDescriptionDefault
force_refreshNoForces a complete re-analysis even if documentation already exists
include_unusedNoIncludes unused/inactive fields and objects in the documentation
detailed_relationshipsNoAnalyzes detailed relationships between objects

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: it performs analysis and creates local documentation, implying a read-only or data-gathering operation without explicit mutation. However, it lacks details on permissions required, execution time, rate limits, or what 'local documentation' entails (e.g., format, location), leaving gaps in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, consisting of two sentences that directly state the tool's purpose and usage guidelines without unnecessary details. Every sentence earns its place by providing essential information, making it efficient and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (analyzing a complete Salesforce installation) and the absence of both annotations and an output schema, the description is somewhat incomplete. It covers the high-level purpose and timing but lacks details on output format, error handling, or dependencies (e.g., requiring authentication via salesforce_auth). This leaves gaps for an AI agent to fully understand the tool's behavior and results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with all three parameters well-documented in the input schema (force_refresh, include_unused, detailed_relationships). The description does not add any parameter-specific information beyond what the schema provides, such as explaining interactions between parameters or default behaviors. Baseline 3 is appropriate as the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('analyzes', 'creates') and resources ('complete Salesforce installation', 'local documentation of all objects, fields, and customizations'). It distinguishes itself from siblings like salesforce_describe or salesforce_query by focusing on comprehensive documentation creation rather than specific queries or descriptions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool ('run once after initial setup to enable intelligent assistance'), which gives clear context for its primary use case. However, it does not specify when not to use it or mention alternatives among the sibling tools, such as when to choose salesforce_describe instead for less comprehensive analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_learn_contextA

Learn and store personal/business context about the user and their Salesforce data model relationships. This helps provide better context-aware assistance across sessions. PROACTIVELY CAPTURE AHA MOMENTS: Whenever you discover something important about the user's workflow, business processes, preferences, challenges, or breakthrough insights during conversations, automatically use store_learning to preserve this knowledge. Look for moments when the user reveals key information, expresses frustration, shares successful strategies, or has realizations - these are valuable learnings that should be stored immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: start_interview (begin learning), answer_question (provide answers), show_context (display stored context), reset_context (clear all), suggest_questions (get intelligent questions based on data model), quick_setup (explain everything in one go), store_learning (AUTOMATICALLY capture breakthrough insights, aha moments, user preferences, workflow patterns, pain points, or any valuable context discovered during conversation)
question_idNoID of the question being answered (when action is 'answer_question')
answerNoAnswer to the question (when action is 'answer_question')
context_typeNoType of context to focus on (for show_context and suggest_questions). Can be any section name like 'personal', 'business', 'data_model', 'technical_preferences', etc., or 'all' for everythingall
full_nameNoYour full name (for quick_setup)
emailNoYour email address (for quick_setup)
roleNoYour professional role/position (for quick_setup)
company_nameNoYour company name (for quick_setup)
industryNoYour company's industry (for quick_setup)
business_process_descriptionNoComplete description of your business processes, how you use Salesforce, what you do, etc. (for quick_setup)
sectionNoContext section to store the learning in (for store_learning). Use descriptive names that capture the nature of the insight: 'aha_moments' for breakthrough realizations, 'pain_points' for challenges discovered, 'workflow_insights' for process discoveries, 'preferences' for user likes/dislikes, 'success_patterns' for what works well, 'technical_discoveries' for system insights, etc. Will be created dynamically if it doesn't exist.
keyNoKey name for the learning (for store_learning). Use specific, descriptive names that capture the insight: 'critical_realization_about_X', 'main_frustration_with_Y', 'breakthrough_solution_for_Z', 'preferred_approach_to_A', 'discovered_workflow_pattern_B', etc. Be specific about what was learned.
valueNoValue/content of the learning (for store_learning)
overwriteNoWhether to overwrite existing values for the same key (for store_learning). Default: false

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the tool stores context across sessions for better assistance, proactively captures insights during conversations, and automatically triggers 'store_learning' for valuable moments. However, it doesn't cover potential limitations like storage capacity, session persistence details, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but could be more front-loaded. The first sentence states the core purpose clearly, but the second sentence is lengthy and repetitive, detailing proactive capture scenarios that are somewhat redundant with the schema's 'store_learning' description. Some trimming could improve efficiency without losing key guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 parameters, no output schema, no annotations), the description does a good job covering purpose and proactive usage. It explains the tool's role in context-aware assistance and when to invoke it, but lacks details on output format, error cases, or how stored context integrates with other tools. The schema compensates well for parameter documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents all 14 parameters thoroughly. The description adds minimal parameter-specific semantics beyond the schema, mainly emphasizing the 'store_learning' action for proactive capture. It doesn't provide additional meaning for parameters like 'section' or 'key' beyond what's in their schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Learn and store personal/business context about the user and their Salesforce data model relationships' and 'helps provide better context-aware assistance across sessions.' It specifies the verb ('learn and store') and resource ('context'), but doesn't explicitly differentiate from sibling tools like 'salesforce_learn' or 'salesforce_setup' beyond the context focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool: 'PROACTIVELY CAPTURE AHA MOMENTS: Whenever you discover something important... automatically use store_learning to preserve this knowledge.' It lists specific scenarios (user reveals key information, expresses frustration, shares successful strategies, or has realizations) and names the specific action ('store_learning'), offering clear alternatives for other actions via the input schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_queryB

Execute SOQL queries against any Salesforce object. Supports SELECT, WHERE, ORDER BY, LIMIT, and other SOQL features.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSOQL query string (e.g., 'SELECT Id, Name FROM Account WHERE Industry = \'Technology\' LIMIT 10'). Use proper SOQL syntax with single quotes for string literals.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose whether this is read-only (implied by 'query' but not stated), authentication requirements, rate limits, error handling, or what happens with malformed queries. The description adds minimal behavioral context beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that efficiently convey core functionality. The first sentence states the purpose, and the second adds useful context about supported features. No wasted words, though it could be slightly more front-loaded with critical behavioral information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a query tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., query results format), error conditions, authentication needs, or limitations. Given the complexity of Salesforce queries and lack of structured fields, more contextual information is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single 'query' parameter. The description adds marginal value by mentioning SOQL features (SELECT, WHERE, etc.) and implying broad object support, but doesn't provide additional syntax or format details beyond what's in the schema description. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Execute SOQL queries against any Salesforce object' with specific verb ('Execute') and resource ('SOQL queries against any Salesforce object'). It distinguishes from obvious siblings like create/delete/update by focusing on querying, though it doesn't explicitly differentiate from salesforce_time_machine_query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'Supports SELECT, WHERE, ORDER BY, LIMIT, and other SOQL features,' suggesting this is for querying data. However, it doesn't provide explicit guidance on when to use this vs. alternatives like salesforce_time_machine_query or salesforce_describe, nor does it mention prerequisites like authentication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_setupC

Configure Salesforce credentials (Client ID, Client Secret, Instance URL)

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYesSalesforce Connected App Client ID (Consumer Key)
clientSecretYesSalesforce Connected App Client Secret (Consumer Secret)
instanceUrlYesSalesforce Instance URL (e.g., https://mycompany.salesforce.com)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states what parameters to configure. It doesn't disclose whether this persists credentials, requires authentication, has side effects, returns confirmation, or handles errors. 'Configure' implies a write/mutation operation but lacks behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single sentence with zero waste. Every word contributes directly to the tool's purpose. The structure is front-loaded with the core action and immediately specifies what's being configured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a credential configuration tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after configuration, whether credentials are validated, what the expected outcome is, or how this interacts with other Salesforce tools. The complexity of credential management warrants more complete guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are fully documented in the schema. The description lists the three parameters by name but adds minimal semantic context beyond what's already in the schema descriptions. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Configure') and the resource ('Salesforce credentials') with specific parameters listed. It distinguishes this as a setup/configuration tool rather than data operations like query or create, but doesn't explicitly differentiate from sibling 'salesforce_auth' which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'salesforce_auth' or other setup-related tools. The description implies this is for initial credential configuration but doesn't specify prerequisites, timing, or whether this should be used before other Salesforce operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_time_machine_queryB

Query historical Salesforce data from backups using Time Machine functionality. Supports point-in-time queries, comparisons, and record history tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYesThe Time Machine operation to perform
targetDateNoTarget date for point-in-time queries (ISO 8601 format)
startDateNoStart date for comparison queries (ISO 8601 format)
endDateNoEnd date for comparison queries (ISO 8601 format)
objectTypeNoSalesforce object type to query (e.g., Account, Contact, ContentVersion)
recordIdNoSpecific record ID for history tracking
filtersNoOptional filters to apply to the query (field-value pairs, supports wildcards with *)
backupDirectoryNoPath to backup directory (defaults to ./backups)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool's capabilities (queries, comparisons, history tracking) but lacks critical behavioral details: it doesn't specify whether this is a read-only operation, what permissions are required, how results are returned (e.g., format, pagination), or any rate limits. For a complex query tool with 8 parameters, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: a single sentence states the core purpose, followed by a second sentence listing key operations. Every sentence earns its place by conveying essential information without redundancy or fluff. It's efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, no output schema), the description is incomplete. It covers the purpose and high-level operations but misses behavioral context (e.g., read/write nature, permissions, output format) and doesn't compensate for the lack of annotations or output schema. For a tool that queries historical data with multiple operation types, more guidance is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value beyond the schema: it mentions 'point-in-time queries, comparisons, and record history tracking,' which loosely maps to the 'operation' enum values, but doesn't provide additional syntax, format, or usage details for parameters. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Query historical Salesforce data from backups using Time Machine functionality.' It specifies the verb ('query'), resource ('historical Salesforce data'), and mechanism ('Time Machine functionality'). However, it doesn't explicitly differentiate from sibling tools like 'salesforce_query' or 'salesforce_backup_list' beyond mentioning 'historical' data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by listing supported operations ('point-in-time queries, comparisons, and record history tracking'), which helps identify when to use this tool. However, it doesn't provide explicit guidance on when to choose this over alternatives like 'salesforce_query' (for current data) or 'salesforce_backup_list' (for backup metadata), nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

salesforce_updateC

Update an existing record in any Salesforce object. Requires the record ID and field values to update.

ParametersJSON Schema
NameRequiredDescriptionDefault
sobjectYesSObject API name (e.g., 'Contact', 'Account', 'CustomObject__c')
idYesSalesforce record ID (15 or 18 character ID)
dataYesField values to update. Only include fields you want to change (e.g., {'Email': 'newemail@example.com', 'Phone': '555-1234'})

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'Requires the record ID and field values to update,' implying a mutation operation, but doesn't cover critical aspects like permissions needed, whether updates are reversible, rate limits, error handling, or what the response looks like. This is a significant gap for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded in a single sentence, with no wasted words. It efficiently conveys the core action and requirements, though it could be slightly more structured by separating purpose from prerequisites.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., side effects, authentication), doesn't explain return values, and provides minimal usage guidance, making it inadequate for safe and effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'Requires the record ID and field values to update,' which restates what the schema says. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Update') and resource ('existing record in any Salesforce object'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from siblings like 'salesforce_create' or 'salesforce_delete', which would require mentioning it modifies existing records rather than creating new ones or removing them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), compare to siblings like 'salesforce_create' for new records or 'salesforce_query' for reading, or specify scenarios where this update is appropriate, leaving the agent without contextual usage cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv1.2.1
    • First observedsalesforce_auth
    • First observedsalesforce_backup
    • First observedsalesforce_backup_list
    • First observedsalesforce_backup_status
    • First observedsalesforce_create
    • First observedsalesforce_delete
    • First observedsalesforce_describe
    • First observedsalesforce_installation_info
    • First observedsalesforce_learn
    • First observedsalesforce_learn_context
    • First observedsalesforce_query
    • First observedsalesforce_setup
    • First observedsalesforce_time_machine_query
    • First observedsalesforce_update

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between salesforce_describe and salesforce_installation_info, both providing schema details, which could cause confusion. Additionally, salesforce_learn and salesforce_learn_context both involve learning aspects, though their focuses differ slightly (installation vs. personal context).

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a 'salesforce_' prefix, and they use clear verbs (e.g., create, delete, query) paired with nouns or actions. This predictability makes the set easy to navigate and understand.

Tool Count5/5

With 14 tools, the server is well-scoped for managing Salesforce operations, covering authentication, CRUD, querying, backups, and setup. Each tool serves a specific function without unnecessary bloat, fitting the domain's complexity appropriately.

Completeness5/5

The tool set provides comprehensive coverage for Salesforce interactions, including full CRUD operations (create, query, update, delete), schema exploration (describe, installation_info), backup management, authentication, setup, and advanced features like time machine queries. No significant gaps are apparent for the intended domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to securely interact with Salesforce CRM data through SOQL queries, CRUD operations, and metadata exploration. Supports connecting to Salesforce objects like Accounts, Contacts, and Opportunities via OAuth 2.0 authentication.
    8
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Salesforce CRM by executing SOQL queries and performing CRUD operations on records such as Leads. It supports secure OAuth 2.0 authentication and provides management for both standard and custom Salesforce fields.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables interaction with Salesforce orgs to perform operations like querying data with SOQL, managing records, and executing Apex code. It provides configurable access levels and support for both standard and Tooling APIs via natural language interfaces.
    11
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Provides AI agents with secure access to Salesforce data and operations, enabling natural language interaction with CRM for sales, marketing, and executive teams.
    6
    5
    -

Appeared in Searches