Instantly MCP Server
즉시 MCP 서버
Instantly API v2 용 MCP 서버로, 이메일 캠페인 및 리드 관리 기능에 대한 액세스를 제공합니다.
Instantly API에 대하여
Instantly API v2는 다음을 포함하여 Instantly 플랫폼의 다양한 리소스와 기능에 대한 액세스를 제공하는 RESTful API입니다.
캠페인 관리
리드 관리
이메일 처리 및 검증
해석학
계정 관리
차단 목록 관리
그리고 더 많은 것
이 MCP 서버는 가장 일반적으로 사용되는 기능에 쉽게 액세스할 수 있도록 이러한 엔드포인트의 하위 집합을 구현합니다.
Related MCP server: Freshdesk MCP Server
API 참조
Instantly API v2 전체 문서는 다음에서 확인할 수 있습니다.
모든 API 요청에 대한 기본 URL은 https://api.instantly.ai/api/v2 입니다.
도구
이 MCP 서버는 Instantly API v2 엔드포인트에 매핑되는 다음 도구를 구현합니다.
instantly_create_leadAPI 엔드포인트 :
POST /api/v2/leads새로운 리드를 생성하세요
입력:
email(문자열)first_name(선택적 문자열)last_name(선택적 문자열)company_name(선택적 문자열)campaign(선택적 문자열, UUID)list_id(선택적 문자열, uuid)personalization(선택 문자열)website(선택 문자열)phone(선택적 문자열)custom_variables(선택적 객체)
instantly_get_leadAPI 엔드포인트 :
GET /api/v2/leads/{id}ID로 리드 세부 정보 가져오기
입력:
id(문자열, uuid)반품: 리드 세부 정보
instantly_list_leadsAPI 엔드포인트 :
POST /api/v2/leads/list선택적 필터를 사용하여 리드 나열
입력:
campaign(선택적 문자열, UUID)list_id(선택적 문자열, uuid)limit(선택적 숫자)starting_after(선택적 문자열)
반환: 리드 배열
instantly_update_leadAPI 엔드포인트 :
PATCH /api/v2/leads/{id}리드 정보 업데이트
입력:
id(문자열, UUID)first_name(선택적 문자열)last_name(선택적 문자열)company_name(선택적 문자열)personalization(선택 문자열)website(선택 문자열)phone(선택적 문자열)custom_variables(선택적 객체)
instantly_delete_leadAPI 엔드포인트 :
DELETE /api/v2/leads/{id}리드 삭제
입력:
id(문자열, uuid)
instantly_list_campaignsAPI 엔드포인트 :
GET /api/v2/campaigns페이지 매김 지원이 있는 캠페인 목록
입력:
limit(선택적 숫자, 기본값 5, 최대 100)starting_after(선택적 문자열) - 페이지 매김의 경우 이전 응답의next_starting_after값을 사용합니다.status(선택적 숫자) - 상태별로 캠페인 필터링(0: 초안, 1: 활성, 2: 일시 중지, 3: 완료, 4: 실행 중인 하위 시퀀스)
반환: 페이지 정보가 포함된 캠페인 배열
쪽수 매기기:
첫 번째 요청:
starting_after없이 호출이후 페이지: 이전 응답의
next_starting_after값을 사용합니다.더 이상 페이지가 없으면 응답에
next_starting_after값이 포함되지 않습니다.
예: 활성 캠페인만 가져오려면
status: 1사용합니다.
instantly_get_campaignAPI 엔드포인트 :
GET /api/v2/campaigns/{id}캠페인 세부 정보 받기
입력:
id(문자열, uuid)반품: 캠페인 세부 정보
instantly_get_warmup_analyticsAPI 엔드포인트 :
POST /api/v2/accounts/warmup-analytics지정된 이메일 계정에 대한 워밍업 분석 받기
입력:
emails(문자열 배열)반환: 이메일 워밍업 성능에 대한 상태 점수 및 측정항목
이메일 전달성 및 계정 상태 모니터링에 유용합니다.
instantly_test_account_vitalsAPI 엔드포인트 :
POST /api/v2/accounts/test/vitalsInstantly 작업 공간에서 이메일 계정의 상태와 연결성을 테스트하세요.
입력:
accounts(문자열 배열) - 여러 이메일 주소를 한 번에 테스트할 수 있습니다.보고:
전반적인 테스트 상태
성공 및 실패 계정 요약
공급자 세부 정보를 포함한 각 계정에 대한 자세한 정보
실패한 계정에 대한 문제 해결 권장 사항
이메일 계정 구성, 인증 및 API 액세스와 관련된 문제를 식별하는 데 도움이 됩니다.
예:
{"accounts": ["user@example.com", "sales@company.com"]}
instantly_get_campaign_analytics
API 엔드포인트 :
GET /api/v2/campaigns/analytics지정된 기간 동안 캠페인에 대한 성과 지표를 얻으세요
입력:
id(선택적 문자열) - 특정 캠페인의 캠페인 IDstart_date(문자열) - YYYY-MM-DD 형식의 시작 날짜end_date(문자열) - YYYY-MM-DD 형식의 종료 날짜
반환: 오픈율, 응답율, 리드 수 및 기회 데이터를 포함한 포괄적인 측정항목
분석 엔드포인트
Instantly API는 이메일 캠페인과 계정의 성과를 모니터링하기 위한 강력한 분석 엔드포인트를 제공합니다.
Warmup 분석 받기
API 엔드포인트 :
POST /api/v2/accounts/warmup-analytics설명 : 지정된 이메일 계정에 대한 워밍업 분석 데이터를 검색합니다.
필수 범위 :
accounts:read,accounts:all,all:read또는all:all요청 본문 :
지엑스피1
응답 : 보낸 이메일, 받은 편지함 배치, 스팸 배치 및 받은 이메일에 대한 일일 및 집계 데이터와 각 계정의 상태 점수를 제공합니다.
테스트 계정 필수 정보
API 엔드포인트 :
POST /api/v2/accounts/test/vitals설명 : 이메일 계정의 상태 및 연결성을 테스트합니다.
필수 범위 :
accounts:read,accounts:all,all:read또는all:all요청 본문 :
{ "accounts": ["user@example.com"] }응답 : 계정 상태 및 감지된 문제에 대한 자세한 정보가 포함된 성공 및 실패 목록을 반환합니다.
캠페인 분석 받기
API 엔드포인트 :
GET /api/v2/campaigns/analytics설명 : 하나 또는 여러 캠페인에 대한 성과 지표를 검색합니다.
쿼리 매개변수 :
id(선택 사항): 특정 캠페인의 캠페인 IDstart_date: 분석 기간의 시작 날짜end_date: 분석 기간의 종료일
응답 : 다음을 포함한 포괄적인 캠페인 통계를 반환합니다.
총 리드 수
연락된 리드 수
이메일 오픈 카운트
답변 수
반송 횟수
구독 취소된 수
완료된 카운트
보낸 이메일 수
새로운 리드가 연락된 횟수
총 기회
총 기회 가치
요청 매개변수와 응답 형식에 대한 자세한 내용은 Instantly Analytics API 설명서를 참조하세요.
추가 Instantly API 엔드포인트
Instantly API v2에는 다음을 포함하여 이 MCP 서버에 구현되지 않은 많은 다른 엔드포인트가 포함되어 있습니다.
캠페인 관리 :
캠페인 생성:
POST /api/v2/campaigns캠페인 활성화:
POST /api/v2/campaigns/{id}/activate캠페인 일시 중지:
POST /api/v2/campaigns/{id}/pause캠페인 업데이트:
PATCH /api/v2/campaigns/{id}
이메일 :
이메일에 답장:
POST /api/v2/emails/reply이메일 목록:
GET /api/v2/emails이메일 받기:
GET /api/v2/emails/{id}읽지 않은 이메일 개수 세기:
GET /api/v2/emails/unread/count
계정 관리 :
이제 이 엔드포인트를 MCP 서버에서 도구로 사용할 수 있습니다! 아래 "계정 관리 도구" 섹션을 참조하세요.
이메일 확인 :
이메일 확인:
POST /api/v2/email-verification
리드 목록 :
목록 생성:
POST /api/v2/lead-lists리드 목록 나열:
GET /api/v2/lead-lists
사용 가능한 모든 엔드포인트에 대한 전체 참조는 Instantly API Explorer를 참조하세요.
설정
API 키
Instantly 계정 설정에서 Instantly API 키를 받으세요.
Instantly 대시보드에서 통합으로 이동하세요
왼쪽 사이드바에서 "API 키" 섹션을 클릭하세요.
"API 키 생성" 버튼을 클릭하세요
API 키의 이름을 입력하세요
이 키가 액세스할 수 있는 범위를 선택하세요.
API 키를 생성하고 복사하세요(참고: 한 번만 표시됩니다)
Claude Desktop과 함께 사용
claude_desktop_config.json 에 다음을 추가하세요.
도커
{
"mcpServers": {
"instantly": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"INSTANTLY_API_KEY",
"mcp/instantly"
],
"env": {
"INSTANTLY_API_KEY": "<YOUR_API_KEY>"
}
}
}
}엔피엑스
{
"mcpServers": {
"instantly": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-instantly"
],
"env": {
"INSTANTLY_API_KEY": "<YOUR_API_KEY>"
}
}
}
}짓다
Docker 빌드:
docker build -t mcp/instantly -f Dockerfile .입증
Instantly API v2는 Bearer 토큰 인증을 사용합니다. API 키는 모든 요청의 Authorization 헤더에 포함되어야 합니다.
Authorization: Bearer YOUR_API_KEY환경 변수를 통해 API 키를 제공하면 MCP 서버가 이를 자동으로 처리합니다.
특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 약관에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.
계정 관리 도구
이 MCP 서버는 계정 관리를 위해 다음 도구를 구현합니다.
instantly_create_accountAPI 엔드포인트 :
POST /api/v2/accountsInstantly에서 새 이메일 계정을 만드세요
입력:
email(문자열): 계정의 이메일 주소first_name(문자열): 계정과 연결된 이름last_name(문자열): 계정과 연결된 성provider_code(숫자): 공급자 코드(1: 사용자 지정 IMAP/SMTP, 2: Google, 3: Microsoft, 4: AWS)imap_username(문자열): IMAP 사용자 이름imap_password(문자열): IMAP 비밀번호imap_host(문자열): IMAP 호스트(예: imap.gmail.com)imap_port(숫자): IMAP 포트(예: 993)smtp_username(문자열): SMTP 사용자 이름smtp_password(문자열): SMTP 비밀번호smtp_host(문자열): SMTP 호스트(예: smtp.gmail.com)smtp_port(숫자): SMTP 포트(예: 587)daily_limit(선택적 숫자): 일일 이메일 전송 제한tracking_domain_name(선택 문자열): 추적 도메인 이름
instantly_list_accountsAPI 엔드포인트 :
GET /api/v2/accounts자동 페이지 매김 기능으로 즉시 이메일 계정 나열
입력:
limit(선택적 숫자): 페이지당 반환할 계정 수(최대 100개, 기본값 10개)starting_after(선택적 문자열): 이전 페이지의 마지막 항목 ID - 페이지 매김에 사용됨search(선택 문자열): 계정을 필터링할 검색어status(선택적 숫자): 상태 필터(1: 활성, 2: 일시 중지, -1: 연결 오류, -2: 소프트 바운스 오류, -3: 전송 오류)provider_code(선택적 숫자): 공급자 코드 필터(1: 사용자 지정 IMAP/SMTP, 2: Google, 3: Microsoft, 4: AWS)fetch_all(선택 사항, 부울): 모든 페이지를 자동으로 가져와서 포괄적인 요약을 제공할지 여부입니다. 이 옵션을 사용하여 모든 계정에 대한 정보를 가져올 수 있습니다.
쪽수 매기기:
기본 동작: 다음 페이지에 대한 링크가 포함된 단일 페이지 결과를 반환합니다.
fetch_all=true: 모든 페이지를 자동으로 가져와서 다음을 포함한 모든 계정의 포괄적인 요약을 반환합니다.총 계정 수
제공자별 계정 분포
상태별 계정 분포
참고용 계정 샘플
instantly_get_accountAPI 엔드포인트 :
GET /api/v2/accounts/{email}Instantly에서 특정 이메일 계정의 세부 정보를 얻으세요
입력:
email(문자열): 검색할 계정의 이메일 주소
instantly_update_accountAPI 엔드포인트 :
PATCH /api/v2/accounts/{email}Instantly에서 기존 이메일 계정 업데이트
입력:
email(문자열): 업데이트할 계정의 이메일 주소first_name(선택적 문자열): 계정과 관련된 이름last_name(선택적 문자열): 계정과 연결된 성daily_limit(선택적 숫자): 일일 이메일 전송 제한tracking_domain_name(선택 문자열): 추적 도메인 이름skip_cname_check(선택적 부울): 추적 도메인에 대한 CNAME 확인을 건너뛸지 여부remove_tracking_domain(선택적 부울): 계정에서 추적 도메인을 제거할지 여부
instantly_delete_accountAPI 엔드포인트 :
DELETE /api/v2/accounts/{email}즉시 이메일 계정 삭제
입력:
email(문자열): 삭제할 계정의 이메일 주소
instantly_pause_accountAPI 엔드포인트 :
POST /api/v2/accounts/{email}/pause즉시 이메일 계정 일시 중지
입력:
email(문자열): 일시 중지할 계정의 이메일 주소
instantly_resume_accountAPI 엔드포인트 :
POST /api/v2/accounts/{email}/resume일시 중지된 이메일 계정을 즉시 재개합니다.
입력:
email(문자열): 재개할 계정의 이메일 주소
도구 테스트 상태
이 MCP 서버에 구현된 모든 도구가 Instantly API v2에서 제대로 작동하는지 확인하기 위해 철저한 테스트를 거쳤습니다. 테스트 진행 상황은 다음과 같습니다.
# | 도구 이름 | 상태 | 노트 |
1 |
| ✅ 검증됨 | 페이지네이션 지원을 통해 캠페인을 성공적으로 나열합니다. |
2 |
| ❌ 작동하지 않음 | 지속적인 API 오류 - 리드를 나열하려고 할 때 "잘못된 이메일 주소"가 발생합니다. |
3 |
| ✅ 검증됨 | ID 또는 이메일 주소로 리드를 성공적으로 삭제합니다. |
4 |
| ✅ 검증됨 | 적절한 데이터로 새로운 리드를 성공적으로 생성합니다. |
5 |
| ✅ 검증됨 | ID로 리드 세부 정보를 성공적으로 검색합니다. |
6 |
| ✅ 검증됨 | 기존 리드 정보를 성공적으로 업데이트합니다. |
7 |
| ✅ 검증됨 | 모든 이메일 계정을 통계와 함께 성공적으로 나열합니다. |
8 |
| ✅ 검증됨 | 자세한 계정 정보를 성공적으로 검색했습니다. |
9 |
| ✅ 검증됨 | 계정 상태 정보를 성공적으로 검색했습니다. |
10 |
| ✅ 검증됨 | 계정에 대한 워밍업 데이터를 성공적으로 검색했습니다. |
테스트 프로세스와 결과에 대한 자세한 내용은 저장소의 Testing.md를 참조하세요.
알려진 문제
instantly_list_leads도구는 현재 특정 이메일 필터 없이 리드를 나열하려고 할 때 "잘못된 이메일 주소" API 오류를 반환합니다. 이 문제를 해결하기 위해 다음을 포함한 여러 가지 방법을 시도해 보았습니다.이메일 검색을 위한
contacts배열 매개변수 사용빈 요청 본문으로 자동 재시도 구현
다양한 매개변수 서식 접근 방식 우리는 향후 릴리스에서 이 문제를 해결하기 위해 계속 노력할 것입니다.
개발을 위한 설정
이 프로젝트에 기여하거나 개발을 위해 로컬로 실행하고 싶다면:
저장소를 복제합니다.
git clone https://github.com/bcharleson/Instantly-MCP.git cd Instantly-MCP종속성 설치:
npm installInstantly API 키로 루트 디렉토리에
.env파일을 만듭니다.INSTANTLY_API_KEY=your_api_key_here⚠️ 중요 :
.env파일이나 API 키를 버전 관리 시스템에 커밋하지 마세요..env파일은 실수로 커밋되는 것을 방지하기 위해.gitignore파일에 포함됩니다.프로젝트를 빌드하세요:
npm run build서버를 실행합니다:
node dist/index.js
기여하다
참여를 환영합니다! 참여하고 싶으신 분은 다음과 같습니다.
저장소를 포크하세요
기능 브랜치를 생성합니다(
git checkout -b feature/amazing-feature)변경 사항을 만드세요
변경 사항을 커밋하세요(
git commit -m 'Add some amazing feature')브랜치에 푸시(
git push origin feature/amazing-feature)풀 리퀘스트 열기
풀 리퀘스트를 제출하기 전에 다음 사항을 확인하세요.
귀하의 코드는 프로젝트의 코딩 스타일을 따릅니다.
새로운 기능에 대한 테스트를 추가했습니다.
모든 테스트 통과
필요한 경우 문서를 업데이트했습니다.
Available Tools
22 toolscheck_feature_availabilityB
Check which premium features are available with your current Instantly plan and API key permissions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 a read-only check operation, which is safe, but doesn't add context such as whether it requires specific permissions beyond the API key, potential rate limits, or what the return format looks like (e.g., list of features, status). This leaves gaps for a tool with no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool does but lacks details on usage context, behavioral traits, and output format, making it minimally viable but not fully complete for informed agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100% (though trivial with no properties). The description doesn't need to add parameter details, so it meets the baseline of 4 for tools with no parameters, as it doesn't have to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 a specific verb ('Check') and resource ('premium features'), and specifies the context ('with your current Instantly plan and API key permissions'). It doesn't explicitly differentiate from siblings like 'get_account_details', but the focus on feature availability is distinct enough for a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 it's appropriate (e.g., before using premium features) or when not to use it, and doesn't reference sibling tools like 'get_account_details' that might overlap in providing account information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_campaignA
Create a new email campaign with bulletproof three-stage workflow ensuring 100% success rate. Handles both simple requests ("create a campaign") and complex detailed specifications seamlessly.
INTELLIGENT WORKFLOW:
Simple Usage: Just provide basic info (name, subject, body) - tool automatically handles prerequisites
Advanced Usage: Specify all parameters for immediate creation
Guided Mode: Use stage parameter for step-by-step control
THREE-STAGE PROCESS:
Prerequisite Check (
stage: "prerequisite_check"): Validates accounts and collects missing required fieldsCampaign Preview (
stage: "preview"): Shows complete configuration for user confirmationValidated Creation (
stage: "create"): Creates campaign with fully validated parameters
AUTO-STAGE DETECTION: Tool automatically determines appropriate stage based on provided parameters for seamless user experience.
EXAMPLE USAGE:
// Simple: Tool handles everything
create_campaign {"name": "My Campaign", "subject": "Hello", "body": "Hi there"}
// Advanced: Full specification
create_campaign {
"name": "My Campaign",
"subject": "Hello {{firstName}}",
"body": "Hi {{firstName}},\n\nGreat to connect!",
"email_list": ["verified@domain.com"],
"daily_limit": 50
}| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Email body content. Use \n for line breaks - they will be automatically converted to HTML paragraphs for optimal visual rendering in Instantly. Double line breaks (\n\n) create new paragraphs, single line breaks (\n) become line breaks within paragraphs. Example: "Hi {{firstName}},\n\nI hope this email finds you well.\n\nBest regards,\nYour Name". Supports all Instantly personalization variables. Required for creation but can be collected during prerequisite check. | |
| confirm_creation | No | Explicit confirmation for campaign creation (optional). Required when stage is "create" or when tool shows preview. Set to true to confirm you want to proceed with campaign creation. | |
| continue_thread | No | Automatically blank follow-up email subjects for thread continuation (optional, default: false). When true, all follow-up emails (steps 2+) will have empty subjects to maintain email thread continuity. Only applies when sequence_subjects is not provided. If sequence_subjects is provided, this parameter is ignored. | |
| daily_limit | No | Maximum emails to send per day across all sending accounts (optional, default: 50). Higher limits may affect deliverability. Recommended: 20-100 for new accounts, up to 500 for warmed accounts. | |
| days | No | Days of the week to send emails (optional, default: Monday-Friday only). Specify which days the campaign should send emails. Weekend sending is disabled by default for better deliverability. | |
| email_gap_minutes | No | Minutes to wait between individual emails (optional, default: 10). Longer gaps improve deliverability. Minimum 1 minute, maximum 1440 minutes (24 hours). | |
| email_list | No | Array of verified sending account email addresses. Must be exact addresses from your Instantly workspace. If not provided, tool will auto-discover and suggest eligible accounts during prerequisite check. | |
| link_tracking | No | Track link clicks in emails (optional, default: false). When enabled, links are replaced with tracking URLs. | |
| message | No | Shortcut parameter: single string containing both subject and body. First sentence becomes subject, remainder becomes body. Alternative to separate subject/body parameters. | |
| name | No | Campaign name. Choose a descriptive name that identifies the campaign purpose. Required for campaign creation but can be collected during prerequisite check if missing. | |
| open_tracking | No | Track email opens (optional, default: false). When enabled, invisible tracking pixels are added to emails. | |
| schedule_name | No | Schedule name (optional, default: "Default Schedule"). Internal name for the sending schedule. | |
| sequence_bodies | No | Optional array of body content for each sequence step. If provided, must contain at least as many items as sequence_steps. Each string will be used as the body for the corresponding step (index 0 = first email, index 1 = first follow-up, etc.). If not provided, the main "body" parameter will be duplicated across all steps with automatic follow-up prefixes. Use \n for line breaks - they will be automatically converted to HTML paragraphs. | |
| sequence_steps | No | Number of steps in the email sequence (optional, default: 1 for just the initial email). Each step creates an email with the required API v2 structure: sequences[0].steps[i] containing type="email", delay (days before sending), and variants[] array with subject, body, and v_disabled fields. If set to 2 or more, additional follow-up emails are created automatically. Maximum 10 steps. | |
| sequence_subjects | No | Optional array of subject lines for each sequence step. If provided, must contain at least as many items as sequence_steps. Each string will be used as the subject for the corresponding step. Use empty strings ("") for follow-up emails to maintain thread continuity. If not provided, the main "subject" parameter will be used for the first email, and follow-ups will get "Follow-up X:" prefixes. | |
| stage | No | Workflow stage control (optional). "prerequisite_check": Validate accounts and collect missing fields. "preview": Show complete campaign configuration for confirmation. "create": Execute campaign creation. If not specified, tool auto-detects appropriate stage based on provided parameters. | |
| step_delay_days | No | Days to wait before sending each follow-up email (optional, default: 3 days). This sets the delay field in sequences[0].steps[i].delay as required by the API. Each follow-up step will have this delay value. Minimum 1 day, maximum 30 days. | |
| stop_on_auto_reply | No | Stop sending when auto-reply is detected (optional, default: true). Helps avoid sending to out-of-office or vacation responders. | |
| stop_on_reply | No | Stop sending follow-ups when lead replies (optional, default: true). Recommended to keep true to avoid annoying engaged prospects. | |
| subject | No | Email subject line. Supports personalization variables like {{firstName}}, {{lastName}}, {{companyName}}. Example: "Quick question about {{companyName}}". Required for creation but can be collected during prerequisite check. | |
| text_only | No | Send as text-only emails (optional, default: false for HTML). Text-only emails often have better deliverability but no formatting. | |
| timezone | No | Timezone for campaign schedule (optional, default: "America/Chicago"). All timing_from and timing_to values will be interpreted in this timezone. | |
| timing_from | No | Daily start time in HH:MM format (optional, default: "09:00"). Emails will only be sent after this time each day. Example: "09:00" for 9 AM. | |
| timing_to | No | Daily end time in HH:MM format (optional, default: "17:00"). Emails will stop being sent after this time each day. Example: "17:00" for 5 PM. |
TDQS
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 does an excellent job explaining the three-stage workflow, auto-detection logic, and how the tool handles missing parameters. However, it doesn't mention potential side effects like rate limits, authentication requirements, or what happens on failure. The description doesn't contradict any annotations (none provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Intelligent Workflow, Three-Stage Process, Example Usage), but it's quite lengthy at over 500 words. While all content is relevant, it could be more front-loaded with the core purpose. The example usage section is particularly valuable but contributes to the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (24 parameters, no annotations, no output schema), the description does an excellent job explaining the tool's behavior and workflow. It covers the multi-stage nature, parameter handling logic, and usage patterns. The main gap is the lack of output information - since there's no output schema, the description should ideally mention what the tool returns upon successful creation or at different stages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 24 parameters thoroughly. The description adds some context about parameter usage in different stages and provides example usage patterns, but doesn't add significant semantic meaning beyond what's in the schema descriptions. This 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Create a new email campaign with bulletproof three-stage workflow'. It clearly distinguishes from sibling tools like 'get_campaign', 'list_campaigns', or 'update_campaign' by focusing on creation with a specific workflow. The description goes beyond the name by detailing the three-stage process and intelligent workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives. It details three usage modes (simple, advanced, guided) and explains auto-stage detection. It distinguishes from sibling tools by being the primary creation tool, while tools like 'validate_campaign_accounts' or 'update_campaign' serve different purposes. The example usage section further clarifies appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_leadC
Create a new lead
| Name | Required | Description | Default |
|---|---|---|---|
| companyName | No | Company name | |
| custom_fields | No | Custom fields as key-value pairs | |
| Yes | Lead email address | ||
| firstName | No | First name | |
| lastName | No | Last name | |
| personalization | No | Personalization field | |
| website | No | Company website |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Create a new lead' implies a write operation, but it doesn't disclose behavioral traits like required permissions, whether the operation is idempotent, rate limits, or what happens on success/failure. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for its purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what a 'lead' is, what happens after creation, or any error conditions, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so parameters like 'email' (required) and others are documented in the schema. The description adds no additional meaning beyond the schema, such as explaining relationships between fields or usage examples, which aligns with the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new lead' clearly states the verb ('Create') and resource ('lead'), which is better than a tautology. However, it doesn't distinguish this tool from its sibling 'update_lead' or specify what constitutes a 'lead' in this context, making it somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'update_lead' or 'create_lead_list'. It doesn't mention prerequisites, such as needing an email address, or contextual factors like when leads should be created versus updated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lead_listC
Create a new lead list
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | List description | |
| name | Yes | List name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Create a new lead list' implies a write/mutation operation, but it doesn't disclose permissions needed, whether the operation is idempotent, what happens on failure, or what the response contains. For a creation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise with just four words that directly state the tool's purpose. There's zero wasted language, and it's perfectly front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what a 'lead list' is in this system's context, what happens after creation, or how this differs from similar creation tools. The description should provide more context given the tool's complexity and lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (name and description) with their types and requirements. The description doesn't add any parameter semantics beyond what's in the schema, such as format constraints or examples. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new lead list' clearly states the verb ('create') and resource ('lead list'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'create_campaign' or 'create_lead' by specifying what distinguishes a lead list from these other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There are multiple sibling tools for creating resources (create_campaign, create_lead), but the description doesn't explain what a 'lead list' is or when it should be created instead of other entities. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_detailsB
Get detailed information about a specific account including warmup status, SMTP settings, and eligibility for campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address of the account to inspect |
TDQS
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. While it mentions what information is retrieved, it doesn't cover critical aspects like permissions required, error handling (e.g., for non-existent accounts), rate limits, or response format. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get detailed information about a specific account') and adds specifics without redundancy. It could be slightly improved by structuring usage hints, but it avoids waste and is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves detailed account data. It lists information types but doesn't explain the return format, error cases, or dependencies. For a read operation with potential complexity (e.g., warmup status, SMTP settings), more context is needed to ensure the agent can use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'email' clearly documented in the schema. The description adds no additional parameter semantics beyond implying the email is for account identification. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get detailed information') and resource ('about a specific account'), distinguishing it from sibling tools like 'list_accounts' (which lists multiple accounts) and 'update_account' (which modifies accounts). It also specifies the types of information included (warmup status, SMTP settings, campaign eligibility), making the purpose highly specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., whether the account must exist), exclusions (e.g., what happens for invalid emails), or comparisons to siblings like 'list_accounts' (for overviews) or 'verify_email' (for validation). Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaignC
Get details of a specific campaign
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states it 'gets details' without disclosing behavioral traits like read-only nature, error handling, authentication needs, or rate limits. It lacks context on what 'details' includes or how it behaves, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, front-loaded with the core action. It's appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't explain what 'details' are returned, error cases, or how it fits with sibling tools, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the 'campaign_id' parameter. The description adds no meaning beyond this, such as format examples or constraints, but meets the baseline since the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details of a specific campaign' clearly states the verb ('Get') and resource ('campaign'), but it's vague about what 'details' entails and doesn't differentiate from siblings like 'get_campaign_analytics' or 'list_campaigns'. It avoids tautology but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'list_campaigns' for multiple campaigns or 'get_campaign_analytics' for performance data. The description implies usage for a single campaign but doesn't specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaign_analyticsC
Get analytics for campaigns
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | No | Specific campaign ID (optional) | |
| end_date | No | End date (YYYY-MM-DD) | |
| start_date | No | Start date (YYYY-MM-DD) |
TDQS
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 but only states the action without details on permissions, rate limits, output format, or side effects. It lacks critical context for a read operation with optional parameters, making it inadequate for informed use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded and appropriately sized for the tool's complexity, earning full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a read operation with optional parameters, the description is incomplete. It fails to explain what analytics are returned, how optional parameters affect results, or behavioral traits, leaving significant gaps for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are documented in the schema. The description adds no additional meaning beyond implying analytics retrieval, which is already covered by the tool name and purpose. Baseline 3 is appropriate as the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get analytics for campaigns' states a basic purpose (verb+resource) but is vague about what analytics are retrieved or how it differs from sibling tools like 'get_campaign_analytics_overview'. It doesn't specify scope (e.g., metrics, timeframes) or distinguish itself clearly from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_campaign_analytics_overview' or 'get_campaign'. There's no mention of prerequisites, context, or exclusions, leaving the agent with no usage direction beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaign_analytics_overviewC
Get analytics overview for all campaigns
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date (YYYY-MM-DD) | |
| start_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states this is a 'Get' operation, implying read-only behavior, but doesn't address important aspects like authentication requirements, rate limits, error conditions, or what format the 'analytics overview' returns. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description should provide more context about what this tool actually returns and how it differs from sibling analytics tools. The current description is too minimal for a tool that presumably returns analytics data - it doesn't indicate what metrics are included in the 'overview' or what format the results take.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('start_date' and 'end_date') clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, but since the schema provides complete coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get analytics overview for all campaigns' clearly states the verb ('Get') and resource ('analytics overview for all campaigns'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'get_campaign_analytics' or 'get_warmup_analytics', which appear to offer related analytics functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With sibling tools like 'get_campaign_analytics' and 'get_warmup_analytics' available, there's no indication of what differentiates this 'overview' tool from other analytics tools, nor any mention of prerequisites or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_emailC
Get a specific email by ID
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | Email ID/UUID |
TDQS
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 the tool fetches an email but lacks details on permissions required, rate limits, error handling (e.g., for invalid IDs), or response format. This is inadequate for a read operation that might have constraints, scoring low due to minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single, clear sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('Get a specific email by ID') contributes directly to understanding the tool, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is minimal but incomplete. It doesn't cover behavioral aspects like what data is returned or error conditions, which are crucial for effective use. For a basic read tool, more context on output or constraints would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'by ID', which aligns with the single parameter 'email_id' in the schema. Since schema description coverage is 100%, the schema already documents this parameter fully. The description adds no additional semantic context (e.g., ID format or source), so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific email by ID'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'list_emails' by specifying retrieval of a single item rather than listing. However, it doesn't explicitly mention what 'get' entails (e.g., fetching metadata, content, or both), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_email' over 'list_emails' for bulk retrieval or 'reply_to_email' for interaction, nor does it specify prerequisites like needing an email ID from another operation. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_warmup_analyticsC
Get warmup analytics for one or more accounts. API REQUIREMENT: The Instantly API expects an array of email addresses, even for a single account.
| Name | Required | Description | Default |
|---|---|---|---|
| emails | Yes | Array of email addresses to get warmup analytics for (1-100 emails). Use email addresses from list_accounts. | |
| end_date | No | End date (YYYY-MM-DD) - optional | |
| start_date | No | Start date (YYYY-MM-DD) - optional |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the API requirement about array format, which is useful, but fails to describe key behaviors: whether this is a read-only operation, what the return format looks like, if there are rate limits, or authentication requirements. For a tool with 3 parameters and no annotations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the core purpose. The API requirement is relevant but could be integrated more smoothly. No wasted words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It lacks information about return values, error conditions, behavioral constraints, and how it differs from sibling tools. The API requirement note is helpful but doesn't compensate for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all parameters. The description adds the API requirement about using an array even for single emails, which provides some additional context beyond the schema, but doesn't explain parameter interactions or semantics like date range effects. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('warmup analytics for one or more accounts'), making the purpose specific and understandable. However, it doesn't explicitly differentiate this tool from sibling analytics tools like 'get_campaign_analytics' or 'get_account_details', which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'get_campaign_analytics' or 'get_account_details', nor does it mention prerequisites (e.g., that accounts must be warmed up). The API requirement note is technical rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsA
List all sending accounts in the workspace. PREREQUISITE FOR CAMPAIGN CREATION: You MUST call this tool first before creating any campaigns to obtain valid email addresses for the email_list parameter. The returned accounts are the only valid sending addresses that can be used in campaigns.
CRITICAL FOR SUCCESS: Campaign creation will fail if you use email addresses that are not returned by this endpoint. Always use the exact email addresses from this response.
COMPLETE PAGINATION: To get ALL accounts, use one of these approaches:
Set limit=100 or higher (automatically triggers complete pagination)
Set get_all=true (forces complete pagination)
Use limit="all" (string triggers complete pagination)
PAGINATION ALGORITHM: When requesting all accounts, the tool will automatically:
Start with limit=100 per page
Continue fetching until next_starting_after is null or empty results
Report progress: "Retrieved 100... 200... 304 total accounts"
Return complete dataset with validation
ACCOUNT STATUS: Look for accounts with status=1, setup_pending=false, warmup_status=1 for campaign eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| get_all | No | Set to true to force complete pagination and retrieve ALL accounts regardless of limit setting. | |
| limit | No | Number of accounts to return (1-100, default: 20). Use limit=100+ or limit="all" to trigger complete pagination that retrieves ALL accounts automatically. | |
| starting_after | No | ID of the last item from previous page for manual pagination. Not needed when using complete pagination (limit=100+). |
TDQS
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 and does so comprehensively. It explains the pagination algorithm, progress reporting, validation behavior, and account status filtering for campaign eligibility. It also details the three different approaches to trigger complete pagination, which goes well beyond what the input schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (prerequisite, critical note, pagination approaches, algorithm, account status) and uses bold headings effectively. While it contains multiple paragraphs, each sentence earns its place by providing essential information. The front-loaded purpose statement is clear, though some technical details could potentially be streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of pagination behavior, campaign prerequisites, and account eligibility requirements, the description provides complete context despite having no annotations and no output schema. It explains the tool's role in the workflow, how to use it effectively, what to expect from its behavior, and how to interpret the results for downstream operations like campaign creation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. However, the description adds significant value by explaining the interaction between parameters (e.g., how 'limit' interacts with 'get_all' and 'starting_after'), the practical implications of different limit values, and the three different approaches to trigger complete pagination. This provides context beyond the individual parameter descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all sending accounts') and resource ('in the workspace'), distinguishing it from sibling tools like 'get_account_details' which retrieves details for a specific account. It explicitly identifies the resource as 'sending accounts' rather than generic accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: 'PREREQUISITE FOR CAMPAIGN CREATION: You MUST call this tool first before creating any campaigns.' It also explains the consequence of not using it: 'Campaign creation will fail if you use email addresses that are not returned by this endpoint.' This gives clear context for when this tool is necessary versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_keysB
List all API keys
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List all API keys' implies a read-only operation, but it doesn't disclose behavioral traits like authentication requirements, rate limits, pagination, or what 'all' entails (e.g., scope or filters). This is a significant gap for a tool with no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is minimally adequate. However, with no annotations and no output schema, it lacks details on return values or behavioral context, making it incomplete for optimal agent use despite the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, but that's acceptable given the schema completeness, warranting a baseline above 3 for this context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all API keys' clearly states the verb ('List') and resource ('API keys'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'list_accounts' or 'list_campaigns' beyond the resource type, so it's not fully specific to sibling context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, exclusions, or related tools, leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_campaignsA
List campaigns with optional filters and complete pagination support. COMPLETE PAGINATION: To get ALL campaigns, use one of these approaches:
Set limit=100 or higher (automatically triggers complete pagination)
Set get_all=true (forces complete pagination)
Use limit="all" (string triggers complete pagination)
PAGINATION ALGORITHM: When requesting all campaigns, the tool will automatically:
Start with limit=100 per page
Continue fetching until next_starting_after is null or empty results
Report progress: "Retrieved 100... 200... 304 total campaigns"
Return summarized data to prevent size limits
Use get_campaign for full details of specific campaigns
FILTERS: search and status filters work with both single-page and complete pagination modes.
| Name | Required | Description | Default |
|---|---|---|---|
| get_all | No | Set to true to force complete pagination and retrieve ALL campaigns regardless of limit setting. | |
| limit | No | Number of campaigns to return (1-100, default: 20). Use limit=100+ or limit="all" to trigger complete pagination that retrieves ALL campaigns automatically. | |
| search | No | Search term to filter campaigns by name (works with complete pagination) | |
| starting_after | No | ID of the last item from previous page for manual pagination. Not needed when using complete pagination (limit=100+). | |
| status | No | Filter by campaign status (works with complete pagination) |
TDQS
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 and does so comprehensively. It details the pagination algorithm (starting limit, continuation logic, progress reporting), explains that summarized data is returned to prevent size limits, clarifies that filters work with both pagination modes, and specifies that full details require 'get_campaign'. This provides rich behavioral context beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (COMPLETE PAGINATION, PAGINATION ALGORITHM, FILTERS) and uses bullet points effectively. It's appropriately sized for the complexity, though some sentences could be more concise (e.g., the pagination algorithm explanation is somewhat verbose). Overall, it's front-loaded with key information and most content earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (pagination algorithms, multiple modes) and lack of annotations/output schema, the description does an excellent job explaining behavior and usage. It covers the key aspects an agent needs: purpose, pagination approaches, algorithm details, filter compatibility, and relationship to 'get_campaign'. The main gap is lack of explicit sibling tool differentiation, but otherwise it's quite complete for a list operation with advanced features.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 five parameters thoroughly. The description adds some context about how parameters interact (e.g., 'limit=100+ or limit="all" triggers complete pagination', 'starting_after not needed when using complete pagination'), but doesn't provide significant additional semantic meaning beyond what's in the schema descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List campaigns with optional filters and complete pagination support.' It specifies the verb ('list') and resource ('campaigns'), but doesn't explicitly differentiate from sibling tools like 'get_campaign' or 'get_campaign_analytics' beyond mentioning that 'get_campaign' provides full details. The purpose is clear but sibling differentiation is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use complete pagination (with three specific approaches) and mentions that 'get_campaign' should be used for full details of specific campaigns. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_campaign_analytics' or 'list_lead_lists', nor does it provide exclusion criteria for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_emailsC
List emails with filters and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Filter by account | |
| campaign_id | No | Filter by campaign | |
| limit | No | Number of emails to return (1-100, default: 20) | |
| starting_after | No | ID of the last item from previous page for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'filters and pagination', hinting at querying behavior, but fails to disclose critical traits: whether this is a read-only operation, potential rate limits, authentication needs, what happens if filters yield no results, or the format of returned data. For a list tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action ('List emails') and includes key features without redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool with 4 parameters and list functionality. It lacks details on behavioral traits (e.g., safety, limits), return values, or error handling, which are essential for an agent to use it correctly in context with siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 4 parameters. The description adds minimal value by mentioning 'filters and pagination', which aligns with parameters like 'account_id' and 'starting_after', but doesn't provide additional context beyond what's in the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List emails') and mentions key capabilities ('with filters and pagination'), which distinguishes it from sibling tools like 'get_email' (singular) or 'reply_to_email'. However, it doesn't specify what type of emails (e.g., marketing, transactional) or fully differentiate from other list tools like 'list_campaigns' beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., needing an account), exclusions, or compare it to siblings like 'list_campaigns' or 'get_email', leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lead_listsB
List all lead lists with pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of lists to return (1-100, default: 20) | |
| starting_after | No | ID of the last item from previous page for pagination |
TDQS
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 'pagination', which is a key behavioral trait not evident from the schema alone, adding value. However, it lacks details on permissions, rate limits, response format, or error conditions, leaving significant gaps for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List all lead lists') and adds essential context ('with pagination') without waste. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (list operation with 2 parameters) and no output schema, the description is minimally adequate. It covers the basic action and pagination but lacks details on return values, error handling, or integration with siblings. For a tool with no annotations, it should provide more behavioral context to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both parameters ('limit' and 'starting_after'). The description adds no additional parameter semantics beyond implying pagination, which is already covered in the schema's descriptions. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('lead lists'), making the purpose immediately understandable. It distinguishes from siblings like 'create_lead_list' (creation vs listing) and 'list_leads' (lists vs leads), though it doesn't explicitly contrast with other list operations. The description is specific but lacks explicit sibling differentiation beyond the obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, timing considerations, or comparisons with other list operations (like 'list_campaigns' or 'list_leads'). The agent must infer usage from the tool name alone, which is insufficient for optimal selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_leadsC
List leads with filters and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | No | Filter by campaign ID | |
| limit | No | Number of leads to return (1-100, default: 20) | |
| list_id | No | Filter by list ID | |
| starting_after | No | ID of the last item from previous page for pagination | |
| status | No | Filter by status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'filters and pagination' which gives basic behavioral context, but doesn't disclose important traits like whether this is a read-only operation (implied but not stated), rate limits, authentication requirements, error conditions, or what the return format looks like. For a tool with 5 parameters and no output schema, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 6 words, front-loading the core purpose ('List leads') followed by key capabilities ('with filters and pagination'). Every word earns its place with zero redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description is insufficiently complete. While concise, it doesn't compensate for the lack of structured metadata. For a filtering and pagination tool that likely returns complex lead data, the description should provide more context about return format, error handling, or usage examples to help an agent understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds minimal value beyond the schema by mentioning 'filters and pagination' which aligns with parameters like 'campaign_id', 'list_id', 'status' (filters) and 'starting_after' (pagination). However, it doesn't provide additional context about parameter interactions or usage patterns beyond what's already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('leads'), and mentions filtering and pagination capabilities. It distinguishes from other lead-related tools like 'create_lead' or 'update_lead' by focusing on retrieval. However, it doesn't explicitly differentiate from 'list_lead_lists' which might be a sibling tool for listing lead collections rather than individual leads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With sibling tools like 'list_lead_lists' (for listing lead collections) and 'get_campaign' (for retrieving specific campaigns), there's no indication of when this filtered lead listing is preferred over other listing or retrieval methods. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_emailA
Reply to an existing email. IMPORTANT: This can only be used to reply to existing emails, not to send new emails. You must provide the ID of an existing email to reply to. Use campaigns for sending new emails.
| Name | Required | Description | Default |
|---|---|---|---|
| bcc_address_email_list | No | Comma-separated list of BCC email addresses (optional) | |
| body | Yes | Email body content (REQUIRED). Provide either html or text, or both. | |
| cc_address_email_list | No | Comma-separated list of CC email addresses (optional) | |
| eaccount | Yes | The email account to send from (REQUIRED). Must be an email address from list_accounts that exists in your workspace. | |
| reply_to_uuid | Yes | The ID of the email to reply to (REQUIRED). Get this from list_emails or get_email endpoints. | |
| subject | Yes | Reply subject line (REQUIRED). Usually starts with "Re: " |
TDQS
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 clearly indicates this is a mutation operation (reply action) and specifies constraints (requires existing email ID, cannot send new emails). However, it doesn't mention authentication needs, rate limits, error conditions, or what the response looks like, leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with three sentences that each earn their place: states the purpose, provides critical constraint, and gives alternative guidance. It's front-loaded with the core functionality and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description provides good purpose and usage guidance but lacks behavioral details about permissions, response format, or error handling. The 100% schema coverage helps, but more context about the operation's behavior would be beneficial given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 6 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Reply to an existing email') and resource ('email'), distinguishing it from sibling tools like create_campaign for sending new emails. It explicitly differentiates from alternatives by stating 'This can only be used to reply to existing emails, not to send new emails.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 ('reply to existing emails') and when not to ('not to send new emails'), with a clear alternative named ('Use campaigns for sending new emails'). It also mentions prerequisites ('You must provide the ID of an existing email to reply to').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_accountC
Update a sending account
| Name | Required | Description | Default |
|---|---|---|---|
| daily_limit | No | New daily sending limit | |
| Yes | Email address of the account to update | ||
| warmup_enabled | No | Enable/disable warmup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Update' implies a mutation operation, the description doesn't specify permission requirements, whether changes are reversible, rate limits, or what happens when updating fails. For a mutation tool with zero annotation coverage, this is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words ('Update a sending account'), with zero wasted language. It's front-loaded with the core action and resource, making it immediately understandable despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'sending account' means in this context, what values are returned, error conditions, or how this tool relates to other account management tools like 'get_account_details' and 'list_accounts'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 schema itself. The description adds no additional parameter information beyond what's already in the structured schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('a sending account'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from sibling tools like 'update_campaign' or 'update_lead' - it simply describes what it does without comparative context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There's no mention of prerequisites, when this should be used instead of other update tools, or what context would make this appropriate. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_campaignC
Update an existing campaign
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| name | No | New campaign name | |
| status | No | New status |
TDQS
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. 'Update an existing campaign' implies a mutation operation but doesn't specify required permissions, whether changes are reversible, rate limits, or what happens if only some fields are provided. It lacks critical behavioral context for a write operation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple update operation and front-loads the core action. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 doesn't explain what the update does beyond the basic action, what values 'status' can take, whether all fields are optional besides campaign_id, or what the tool returns. For a 3-parameter write operation with zero structured context, more detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (campaign_id, name, status) adequately. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain parameter interactions, constraints, or provide 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing campaign' clearly states the verb ('update') and resource ('campaign'), but it's vague about what specifically gets updated. It doesn't differentiate from sibling tools like 'update_account' or 'update_lead' beyond the resource name, nor does it specify which campaign attributes can be modified beyond what the schema shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing campaign ID), when not to use it, or how it relates to siblings like 'create_campaign' or 'get_campaign'. The description alone gives no context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_leadC
Update a lead
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | Company name | |
| custom_fields | No | Custom fields as key-value pairs | |
| first_name | No | First name | |
| last_name | No | Last name | |
| lead_id | Yes | Lead ID |
TDQS
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. 'Update a lead' implies a mutation operation, but it doesn't describe what happens during the update (e.g., whether it overwrites or merges fields, if custom_fields are additive or replace existing ones), what permissions are required, or what the response looks like (especially since there's no output schema). For a mutation tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words ('Update a lead'), with zero wasted language. It's front-loaded with the core action and resource, making it easy to parse quickly. While it may be overly brief for a mutation tool, it earns full marks for conciseness as every word contributes directly to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with 5 parameters including nested objects), lack of annotations, and no output schema, the description is incomplete. It doesn't address key contextual aspects like what the update does behaviorally, how to handle custom_fields, what happens on success/failure, or how it differs from sibling tools. For a tool that modifies data, this minimal description leaves too many gaps for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 5 parameters clearly documented in the schema (e.g., lead_id as required, company, custom_fields, first_name, last_name). The description adds no additional parameter information beyond what's in the schema, such as examples or constraints. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update a lead' clearly states the verb (update) and resource (lead), making the basic purpose understandable. However, it doesn't specify what aspects of a lead can be updated or differentiate this tool from sibling tools like 'update_account' or 'update_campaign' that also perform updates on different resources. The purpose is clear but lacks specificity about scope and distinction from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., needing an existing lead ID), when not to use it (e.g., for creating new leads, which is handled by 'create_lead'), or compare it to similar tools like 'update_account'. Without any usage context, agents must infer everything from the tool name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_campaign_accountsA
Validate which accounts are eligible for campaign creation. This tool helps debug campaign creation issues by showing the status of all accounts and which ones meet the requirements for sending campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| email_list | No | Optional: Specific email addresses to validate. If not provided, shows all account statuses. |
TDQS
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's function (validation and debugging) and output scope ('shows the status of all accounts'), but lacks details on permissions, rate limits, or error handling, which are important for a tool that might involve account data access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose in the first sentence and efficiently adds context in the second, with no wasted words. Every sentence contributes directly to understanding the tool's use and value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (validation with optional filtering), no annotations, and no output schema, the description is adequate but incomplete. It explains the purpose and usage context but does not cover behavioral aspects like response format or error conditions, which are needed for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 no additional parameter semantics beyond what the schema provides (e.g., it does not explain the format or validation rules for email addresses), relying entirely on the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('validate which accounts are eligible') and resources ('campaign creation'), distinguishing it from siblings like 'list_accounts' or 'get_account_details' by focusing on eligibility validation rather than general listing or retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage ('helps debug campaign creation issues'), but does not explicitly state when not to use it or name specific alternatives among siblings, such as 'check_feature_availability' or 'list_accounts', which might overlap in functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_emailA
Verify if an email address is valid. IMPORTANT: This feature may require a premium Instantly plan or specific API permissions. If you receive a 403 Forbidden error, check: 1) Your Instantly plan includes email verification, 2) Your API key has the required scopes, 3) Contact Instantly support to confirm feature availability.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address to verify (must be valid email format) |
TDQS
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: it's a validation operation (implied read-only), discloses potential access restrictions (premium plan requirements, 403 errors), and provides troubleshooting guidance. It doesn't mention rate limits or response format details, but covers critical operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose first, followed by important operational details. The troubleshooting list is somewhat lengthy but necessary for the access constraints, making it reasonably efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter validation tool with no annotations and no output schema, the description provides good contextual completeness. It covers purpose, usage context, and critical behavioral constraints (access requirements, error handling). The main gap is lack of output format details, but otherwise it's quite comprehensive given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'email' parameter. The description adds no additional parameter information beyond what's in the schema, maintaining the baseline score of 3 for adequate coverage through structured data alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 a specific verb ('verify') and resource ('email address'), and it distinguishes this tool from all sibling tools which focus on campaigns, leads, accounts, or lists rather than email validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool (to verify email validity) and includes important prerequisites (premium plan, API permissions). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools.
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. Dates show when Glama detected each change.
22 tool updates
v1.0.0- First observed
check_feature_availability - First observed
create_campaign - First observed
create_lead - First observed
create_lead_list - First observed
get_account_details - First observed
get_campaign - First observed
get_campaign_analytics - First observed
get_campaign_analytics_overview - First observed
get_email - First observed
get_warmup_analytics - First observed
list_accounts - First observed
list_api_keys - First observed
list_campaigns - First observed
list_emails - First observed
list_lead_lists - First observed
list_leads - First observed
reply_to_email - First observed
update_account - First observed
update_campaign - First observed
update_lead - First observed
validate_campaign_accounts - First observed
verify_email
TDQS
Most tools have distinct purposes targeting specific resources like campaigns, leads, accounts, or emails, with clear boundaries. However, some potential confusion exists between get_campaign_analytics and get_campaign_analytics_overview, as both relate to campaign analytics but differ in scope, which could lead to misselection without careful reading of descriptions.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_campaign, list_accounts, update_lead, and get_campaign_analytics. This predictability makes it easy for agents to understand and navigate the toolset without ambiguity in naming conventions.
With 22 tools, the count is borderline high for an email marketing server, potentially feeling heavy and overwhelming. While it covers a broad domain, some tools might be redundant or overly specialized, making the set less streamlined than ideal for typical agent workflows.
The toolset provides comprehensive CRUD and lifecycle coverage for campaigns, leads, accounts, and emails, including creation, listing, updating, and analytics. It also includes specialized tools like validate_campaign_accounts and reply_to_email, ensuring no obvious gaps for the email marketing domain and supporting robust agent operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage contacts, campaigns, senders, and deliverability via SuperSend API
Manage SiteGPT chatbots and account resources through the SiteGPT API v2.
Send email and read templates, marketing contacts, lists, stats, bounces and unsubscribes.
AI-powered email outreach platform — send campaigns with deliverability tracking.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables interaction with Instantly.ai email outreach platform through 31 tools across accounts, campaigns, leads, emails, and analytics. Supports both local and remote deployment with multi-tenant authentication.27MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Freshdesk API v2 to manage support tickets, contacts, agents, companies, and conversations with built-in authentication, rate limiting, and error handling.30011MIT
- AlicenseBqualityCmaintenanceEnables to interact with Zoho Campaigns API v1.1, supporting OAuth2 authentication, contact and campaign management, bounced contact queries, and more, through natural language.11MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with the Instantly.ai v2 API to manage campaigns, leads, accounts, replies, blocklist, and webhooks, with tools organized into read, write, and dangerous safety tiers.144MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bcharleson/Instantly-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server