Marketo MCP Server
Marketo MCP 서버
Adobe Marketo Engage를 위한 Model Context Protocol 서버입니다. Claude Desktop, Cursor 및 기타 MCP 호환 클라이언트가 Marketo REST API에 직접 인증된 방식으로 액세스할 수 있도록 지원합니다. 자연어를 사용하여 양식, 스마트 리스트, 채널, 리드, 활동 및 리스트를 읽고 쓸 수 있습니다.
목적
마케팅 운영, 성장 및 RevOps 팀은 Marketo UI를 클릭하며 양식을 복제하거나, 자산을 승인하거나, 리드를 조회하거나, 스마트 리스트를 감사하는 데 많은 시간을 소비합니다. Marketo MCP 서버는 이러한 REST API 작업을 LLM 에이전트에 연결하여 다음과 같이 명령할 수 있게 합니다:
"양식 1234를 Q2 웨비나 폴더로 복제하고 승인해 줘."
"alex@example.com 리드의 최근 활동을 보여줘."
"'Lifecycle Nurture'라는 새 이메일 채널을 만들어 줘."
…그러면 모델이 사용자를 대신하여 실제 Marketo API 호출을 실행합니다.
Related MCP server: Dynamic Form MCP
목차
기능
양식 관리 — Marketo Asset API를 통해 양식 나열, 검사, 복제 및 승인
스마트 리스트 작업 — 스마트 리스트 나열 및 검사
채널 CRUD — 채널 생성, 읽기, 업데이트 및 삭제
리드 데이터베이스 — ID 또는 이메일로 리드 가져오기, 대량으로 리드 생성 또는 업데이트, 리드 삭제
활동 및 변경 로그 — 모든 리드에 대한 활동 및 필드 변경 사항 가져오기
리스트 멤버십 — 정적 리스트에 리드 추가 또는 제거
프로그램 관리 — 프로그램 나열, 검사, 복제 및 프로그램 멤버 검색
이메일 작업 — QA를 위한 이메일 나열, 검사 및 샘플 이메일 발송
자동 인증 — 토큰 캐싱 및 갱신을 포함한 OAuth 2.0 클라이언트 자격 증명 흐름
Stdio 전송 — Claude Desktop, Cursor 및 stdio를 지원하는 모든 MCP 클라이언트에서 즉시 작동
빠른 시작
옵션 A — Smithery (권장)
npx -y @smithery/cli install @alexleventer/marketo-mcp --client claude프롬프트에 따라 Marketo 기본 URL, 클라이언트 ID 및 클라이언트 시크릿을 붙여넣으세요.
옵션 B — npx (설치 불필요)
MCP 클라이언트 구성(예: claude_desktop_config.json)에 다음을 추가하세요:
{
"mcpServers": {
"marketo": {
"command": "npx",
"args": ["-y", "marketo-mcp"],
"env": {
"MARKETO_BASE_URL": "https://123-ABC-456.mktorest.com/rest",
"MARKETO_CLIENT_ID": "your-client-id",
"MARKETO_CLIENT_SECRET": "your-client-secret"
}
}
}
}옵션 C — 소스에서 빌드
git clone https://github.com/alexleventer/marketo-mcp.git
cd marketo-mcp
npm install
npm run build빌드 시 출력된 구성 블록을 MCP 클라이언트에 복사하세요.
전제 조건
Node.js 18 이상
Marketo API 자격 증명 (LaunchPoint 서비스의 클라이언트 ID 및 클라이언트 시크릿)
REST API 액세스가 활성화된 Marketo 인스턴스
MCP 호환 클라이언트 — Claude Desktop, Cursor, Cline 등
Marketo API 자격 증명 획득 방법
Marketo 관리자 페이지에 로그인
Admin → Integration → LaunchPoint로 이동
New → New Service를 클릭하고 서비스 유형을 Custom으로 설정한 뒤 표시 이름(예:
MCP Server)을 지정필요한 권한(Read-Only Assets, Read-Write Lead 등)을 가진 API 전용 사용자를 할당
Client ID와 Client Secret을 저장
base URL은 Admin → Integration → Web Services → REST API Endpoint에서 확인 가능 (
/rest/v1/*를 제외하고https://<munchkin>.mktorest.com/rest만 유지)
구성
모든 구성은 환경 변수를 통해 이루어집니다:
변수 | 필수 | 설명 |
| 예 | REST 엔드포인트 (예: |
| 예 | LaunchPoint 서비스 클라이언트 ID |
| 예 | LaunchPoint 서비스 클라이언트 시크릿 |
로컬 개발을 위해 .env.example을 .env로 복사하세요.
사용 가능한 도구
도구 | 설명 | |
| 양식 나열 (`status: draft | approved |
| ID로 단일 양식 가져오기 | |
| 대상 폴더로 양식 복제 | |
| 초안 양식 승인 | |
| 스마트 리스트 나열 | |
| ID로 스마트 리스트 가져오기 | |
| 채널 나열 | |
| ID로 채널 가져오기 | |
| 새 채널 생성 | |
| 기존 채널 업데이트 | |
| 채널 삭제 | |
| 숫자 ID로 리드 가져오기 | |
| 이메일 주소로 리드 조회 (필터 API) | |
| 리드 대량 생성 또는 업데이트 (호출당 최대 300개) | |
| 리드 삭제 | |
| 리드 활동 가져오기 (페이지네이션) | |
| 리드 필드 변경 이력 가져오기 | |
| 리드가 속한 리스트 가져오기 | |
| 정적 리스트에 리드 추가 | |
| 정적 리스트에서 리드 제거 | |
| 프로그램 나열 (유형, 폴더, 태그 또는 날짜 범위로 필터링) | |
| ID로 프로그램 가져오기 | |
| 프로그램과 모든 로컬 자산을 폴더로 복제 | |
| 프로그램 멤버인 리드 가져오기 | |
| 이메일 나열 (상태별 필터링) | |
| ID로 이메일 가져오기 | |
| QA를 위한 샘플/미리보기 이메일 발송 |
각 도구는 zod로 검증된 타입 인수를 허용하며 원시 Marketo JSON 응답을 반환합니다. 필드 수준의 세부 정보는 Adobe Marketo REST API 참조를 확인하세요.
Claude Desktop에서 사용
Claude Desktop 설치
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) 또는%APPDATA%\Claude\claude_desktop_config.json(Windows)에서 구성 파일을 엽니다.빠른 시작의
mcpServers블록을 붙여넣습니다.Claude Desktop을 재시작합니다.
Cursor / 기타 MCP 클라이언트에서 사용
stdio 서버를 지원하는 모든 MCP 클라이언트에서 작동합니다. 빌드된 바이너리를 가리키도록 설정하세요:
{
"mcpServers": {
"marketo": {
"command": "npx",
"args": ["-y", "marketo-mcp"],
"env": { "MARKETO_BASE_URL": "...", "MARKETO_CLIENT_ID": "...", "MARKETO_CLIENT_SECRET": "..." }
}
}
}속도 제한
Marketo는 여러 API 속도 제한을 적용합니다. 배치 작업을 실행할 때 다음을 유의하세요:
제한 | 값 |
단기 | 인스턴스당 20초마다 100회 호출 |
일일 | 하루 50,000회 호출 |
동시 | 10개의 동시 연결 |
대량 가져오기 | 파일당 10MB, 10개의 동시 작업 |
대량 내보내기 | 하루 500MB, 2개의 동시 작업 |
606 Max rate limit reached 오류가 발생하면 20초 대기 후 재시도하세요. Marketo REST API는 경우에 따라 Retry-After 헤더를 반환합니다.
문제 해결
증상 | 예상 원인 |
| 잘못된 클라이언트 ID/시크릿, 또는 LaunchPoint 사용자에 REST API가 활성화되지 않음 |
| API 전용 사용자가 해당 엔드포인트에 대한 역할 권한이 없음 (예: Asset API vs Lead Database API) |
| Marketo는 20초당 100회 호출로 제한 — 호출을 배치 처리하고 지연 시간 추가 |
| 폴더/양식/리드 ID가 존재하지 않거나 다른 작업 공간에 있음 |
인증은 되지만 요청이 멈춤 |
|
MCP 인스펙터를 사용하여 로컬에서 도구 호출을 검사할 수 있습니다:
npm run inspector개발
src/
├── index.ts # MCP server + all tool registrations
├── auth.ts # OAuth token manager (caches until expiry)
└── constants.ts # Env var bindingsnpm run dev # Run with ts-node + .env
npm run typecheck # Type-check without emit
npm run lint # ESLint
npm run format # Prettier
npm run build # Compile to build/기여
이슈 및 풀 리퀘스트는 github.com/alexleventer/marketo-mcp에서 환영합니다.
리포지토리 포크
기능 브랜치 생성
npm run lint && npm run typecheck실행PR 생성
라이선스
ISC — LICENSE 참조.
키워드: marketo mcp server, marketo model context protocol, marketo claude, marketo ai, adobe marketo mcp, marketo api claude desktop, marketo automation llm, marketo engage mcp
Available Tools
27 toolsmarketo_add_lead_to_listA
Add one or more leads to a static list by list ID. Accepts an array of lead IDs. Max 300 leads per call.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| leadIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses important behavioral traits: accepts array of IDs and a maximum of 300 leads per call. However, it does not mention idempotency, error handling, or prerequisites.
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?
Two sentences with no extraneous words. The first sentence states the core purpose, the second adds key context (array format and limit). All content is essential.
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 output schema and no annotations, the description covers the main aspects: purpose, parameters, and a critical limit. It lacks return value info and error conditions, but for a simple add operation it is reasonably 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 0%, so the description adds meaning by explaining that listId identifies a static list and leadIds is an array of lead IDs. This matches the required parameters and clarifies their purpose.
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 (add), the resource (leads to a static list), the input method (by list ID), and key details (accepts array, max 300). This differentiates it from siblings like marketo_remove_lead_from_list.
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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention scenarios to avoid (e.g., dynamic lists, batches over 300). It only describes the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_approve_formB
Approve a draft form, making it available for use in landing pages and embeds. Optionally include an approval comment.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | ||
| comment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only says 'making it available' but omits details like permissions required, irreversibility, or what happens if form is already approved.
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?
Two sentences, no redundant information, front-loaded with the core action and effect. Efficient and scannable.
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 simple approve action, description covers basics but lacks context on edge cases (e.g., form not in draft) and return value. No output schema further limits 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?
Schema has 0% description coverage. The description adds minimal meaning beyond the schema: 'optionally include an approval comment' repeats comment's optionality; formId is not described. No parameter details like format or constraints.
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 ('Approve a draft form') and the effect ('making it available for use in landing pages and embeds'), distinguishing it from siblings like marketo_clone_form or marketo_get_form_by_id.
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 on when to use this tool vs alternatives (e.g., when form is not in draft, or when to use marketo_clone_form). No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_clone_formA
Clone an existing form into a destination folder. The cloned form is created in draft status and must be approved before use.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | ||
| name | Yes | ||
| description | No | ||
| folderId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description correctly discloses that the result is in draft status and requires approval. This adds behavioral context beyond what the schema provides. No contradictions are present.
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?
Two concise sentences: the first covers the primary action and target, the second adds a critical behavioral note. No extraneous content.
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?
The description lacks information about return values, error conditions, or success/failure indicators. Given the absence of an output schema and low parameter documentation, the description does not provide sufficient context for complete tool 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 0% description coverage. The tool description only mentions 'destination folder' without explaining each parameter's meaning (e.g., formId, name, description, folderId). This leaves the agent to infer from parameter names 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 action ('Clone'), resource ('existing form'), and target ('destination folder'). It distinguishes itself from sibling tools like marketo_approve_form or marketo_get_form_by_id by specifying the cloning operation.
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 notes that the clone is created in draft status and must be approved, implying a workflow with marketo_approve_form. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_clone_programA
Clone an existing program into a destination folder. Clones all local assets (emails, landing pages, smart campaigns) within the program. The cloned program is created with the same channel.
| Name | Required | Description | Default |
|---|---|---|---|
| programId | Yes | ||
| name | Yes | ||
| folderId | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavioral traits. It explains that all local assets are cloned and the channel is preserved, but it does not address potential side effects (e.g., whether program memberships are cloned), required permissions, or rate limits. The description lacks depth beyond the core 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 three sentences long, each sentence adding distinct value: purpose, scope of cloning, and channel preservation. It is front-loaded with the essential verb and resource, and no extraneous information is present.
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?
The description covers the input scope well but omits important details such as the return value (e.g., the new program's ID) and error conditions (e.g., what happens if the source program does not exist). Given that there is no output schema, the description should provide minimal expectations for the response.
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% description coverage, placing the burden on the description. While the description implies the roles of programId (source program) and folderId (destination folder), it does not explicitly define name or description parameters. The meaning of these parameters is left to inference, which is insufficient for a schema with no additional 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 action ('Clone'), the resource ('existing program'), the destination ('destination folder'), and specifies what content is cloned ('local assets such as emails, landing pages, smart campaigns'). It also mentions the cloned program retains the same channel. This effectively distinguishes it from sibling tools like marketo_clone_form or marketo_create_channel.
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 implies usage for duplicating an existing program, which contrasts with creating a new program from scratch (no create program tool exists among siblings). However, it does not explicitly state when to use this tool versus cloning a specific form (marketo_clone_form) or other alternatives, nor does it mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_create_channelA
Create a new program channel. Channels must have a unique name and type. The type determines which program types can use this channel.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| type | Yes | ||
| applicationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that channels must have unique name and type, and that type determines program type compatibility. However, it lacks details on error handling, idempotency, or side effects of creation.
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?
Two sentences front-loaded with purpose, no unnecessary words. Efficient and to the point.
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 output schema and 4 parameters with 0% coverage, the description covers critical constraints but omits response format and optional parameter purpose. It is minimally complete for a simple create tool.
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 coverage is 0%, so description must explain parameters. It adds meaning for 'name' and 'type' (unique constraints, type's role) but does not address 'description' or 'applicationId', leaving half the parameters undefined.
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 'Create a new program channel' with a specific verb and resource. It also adds constraints (unique name and type, type determines program types) that distinguish it from sibling tools that read, update, or delete channels.
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 implicitly indicates use when creating a new channel. Sibling tool names clearly differentiate read (get_channels, get_channel_by_id), update, and delete operations, providing context without explicit when-not statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_create_or_update_leadA
Bulk create or update leads (upsert). Accepts an array of lead records with standard and custom fields. Deduplicates by lookupField (default: email). Max 300 leads per call.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| lookupField | No | ||
| partitionName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses upsert behavior, dedup logic, and batch limit, but lacks details on merge semantics for existing fields, authorization needs, rate limits, or error handling. Adequate but could be richer.
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 two sentences, front-loaded with the core action 'upsert'. Every word adds value: verb, resource, limit, dedup key. No redundancy.
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?
Missing output schema and annotations, the description covers input and constraints but omits response format (e.g., success/error status for each lead) and partial failure behavior. It is adequate for a simple batch tool but not 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 0%, so the description must compensate. It explains the 'input' parameter as an array of lead records with standard and custom fields, and mentions lookupField and default email. However, it does not detail 'partitionName' or customFields structure, leaving 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 'Bulk create or update leads (upsert)' and specifies accepting arrays with standard/custom fields, dedup by lookupField, and max 300 leads. This distinctly separates it from sibling tools like marketo_add_lead_to_list or marketo_delete_lead.
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 explicitly indicates when to use this tool (for upserting leads) and provides constraints (max 300 per call). It implicitly suggests batch usage, but does not explicitly state when not to use it or mention alternatives, though sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_delete_channelA
Delete a channel by ID. Fails if any programs are currently using this channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that deletion fails if programs use the channel. No other behavioral traits like irreversibility, permissions, or side effects. With no annotations, more details would be beneficial.
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?
Two sentences, no unnecessary words. Front-loaded with verb and resource.
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 simple delete tool with one parameter, the description covers the key failure condition. Missing details on return value or confirmation, but adequate given tool 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?
The description adds no information about the channelId parameter beyond what the schema provides ('by ID'). With 0% schema description coverage, the description should compensate but does not.
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?
Explicit verb 'Delete' with resource 'channel by ID'. Includes crucial constraint about program usage, distinguishing it from marketo_create_channel, marketo_update_channel, and marketo_get_channel_by_id.
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?
Mentions failure condition (programs using channel) but does not explicitly state when to use versus alternatives or recommend checking channel usage first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_delete_leadA
Permanently delete a lead by its numeric ID. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must carry the burden of behavioral disclosure. It correctly flags the destructive nature ('permanently delete', 'cannot be undone'), but lacks additional transparency about permissions, side effects, or response behavior.
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—two sentences with no extraneous words. Every sentence serves a purpose: stating the action and emphasizing irreversibility.
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 simplicity of the tool (one parameter, no output schema), the description provides adequate context: what it does, how to identify the lead, and the permanence. Minor gaps exist (e.g., no explanation of the response), but overall it is sufficiently 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?
The input schema has 0% parameter description coverage, and the description merely reiterates that the ID is numeric. It adds minimal value beyond the schema's type constraint, failing to explain the format or valid range of the leadId.
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 (delete), the resource (lead), and the method (by numeric ID). It distinguishes the tool from siblings like marketo_get_lead_by_id and marketo_create_or_update_lead, which perform different operations.
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 explicit guidance on when to use this tool versus alternatives. While it warns about permanence ('cannot be undone'), it does not offer context about prerequisites, typical use cases, or 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.
marketo_get_channel_by_idA
Retrieve a single channel by its numeric ID. Returns the channel definition including progression statuses and their success mappings.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description indicates a read operation ('Retrieve', 'Returns') and describes the return shape. However, it does not mention error conditions, authentication needs, or what happens if the channel ID is invalid, which could be important for an agent.
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, well-structured sentence that conveys the essential information without extraneous words. Every part is meaningful.
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 simple single-parameter retrieval tool, the description covers purpose and return shape. It would benefit from mentioning error behavior or permissions, but overall it is adequate given the tool's simplicity and lack of output schema.
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 has 0% description coverage for the only parameter 'channelId'. The description merely calls it a 'numeric ID', which is redundant with the schema type (number). No additional semantic or constraints are provided.
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 retrieves a single channel by numeric ID, and specifies it returns progression statuses and success mappings. This distinguishes it from sibling like marketo_get_channels which returns a list.
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 implies usage when you have a channel ID, but does not explicitly state when to use this over alternatives or list prerequisites. Usage is clear from name and description but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_channelsB
List all program channels in the instance. Channels define the progression statuses available to programs (e.g., Webinar: Invited > Registered > Attended).
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates a read operation but does not mention pagination or performance implications despite input schema having maxReturn and offset.
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?
Two concise sentences with no fluff, though could benefit from brief parameter notes.
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?
Missing output schema and parameter details; for a simple list tool it's acceptable but incomplete for an agent to use confidently.
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?
Input schema has 0% parameter description coverage and the description does not explain maxReturn or offset parameters, leaving the agent to infer their meaning.
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?
Explicitly states 'List all program channels in the instance' and explains what channels are, clearly differentiating from create/delete/update siblings.
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?
Implied usage for listing channels, but no guidance on when to use this vs get_channel_by_id or other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_email_by_idA
Retrieve a single email by its numeric ID. Returns full email metadata including subject, from address, reply-to, template, and folder location.
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It states it returns metadata, implying a read-only operation, but does not explicitly confirm safety, permissions, or rate limits. Adequate but lacks explicit behavioral disclosure.
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?
Very concise single sentence that front-loads the action. However, could be slightly more structured by separating purpose and return fields.
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 output schema, description lists key return fields (subject, from address, etc.), providing enough context for a simple retrieval. Lacks error handling or response format details, but acceptable for a straightforward tool.
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 coverage is 0% for the parameter 'emailId'; the description adds only 'numeric ID', which is already evident from the type. Does not explain where to obtain the ID or any constraints beyond numeric type.
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 identifies the action (retrieve), the resource (a single email by numeric ID), and distinguishes from siblings like 'marketo_get_emails' by specifying it returns full metadata for one email.
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?
Implies usage when you have a numeric ID, but does not explicitly state when to use this vs. alternatives like 'marketo_get_emails' for listing or 'marketo_send_sample_email' for sending. No exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_emailsA
List email assets in Marketo. Filter by approval status (approved/draft) and paginate with maxReturn/offset. Returns email metadata including subject line, from address, and template ID.
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | ||
| offset | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description lists return fields (subject, from, template ID) but doesn't explicitly state read-only nature or other behavioral traits like authentication or rate limits.
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?
Two sentences, front-loaded with purpose, no unnecessary 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?
Returns field info compensates for no output schema; covers filtering and pagination; could mention scope (all emails?), but sufficient for a list tool.
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 coverage is 0%; description adds meaning for status (approved/draft) and mentions pagination, but does not fully explain maxReturn and offset behavior.
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?
Clearly states 'List email assets in Marketo' with a specific verb and resource. Distinguishes from sibling tools like marketo_get_email_by_id.
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?
Implicitly tells when to use for listing emails with filtering and pagination, but lacks explicit comparison to alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_form_by_idA
Retrieve a single form by its numeric ID. Returns full form metadata including fields, submit button, and thank-you page configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must self-disclose behavioral traits. It states the output is 'full form metadata' but does not mention error behavior (e.g., if ID is invalid), side effects (none expected), or any operational constraints. For a simple read operation, this is minimally adequate but not rich.
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?
Single sentence is direct and front-loaded. No redundant or extraneous information. Every word serves a 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 tool's simplicity (one parameter, no output schema), the description adequately covers purpose, input, and output. Missing elements like error handling are minor for a getter. Slightly incomplete due to lack of usage context but sufficient for basic invocation.
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 0%, so the description must compensate. It adds 'by its numeric ID' which reiterates the schema's type constraint. No additional meaning about the parameter's format, validation, or relationship to other data is provided.
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 ('Retrieve'), the resource ('single form'), the identifier ('by its numeric ID'), and the output ('full form metadata'). It distinguishes itself from the sibling 'marketo_get_forms' (which returns multiple forms) and other getters like 'marketo_get_email_by_id'.
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 on when to use this tool versus alternatives (e.g., 'marketo_get_forms' for listing forms, or other ID-based retrievers). Does not specify prerequisites, exclusions, or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_formsA
List forms in the Marketo instance. Filter by approval status (approved/draft) and paginate with maxReturn/offset. Returns form metadata including URL, status, and folder location.
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | ||
| offset | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes the operation as listing (read-like) but does not explicitly state it is non-destructive, safe, or idempotent. Adequate but not rich.
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?
Two concise sentences front-load the main action and cover purpose, filtering, pagination, and output. No wasted 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?
Given no output schema, description mentions returned fields (URL, status, folder location). Covers purpose and parameters well, though could mention default pagination values or rate limits.
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 0%, but the description fully explains all three parameters: status (approved/draft), maxReturn and offset for pagination. Provides meaning beyond raw 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?
Description clearly states the verb 'list' and resource 'forms' with scope 'Marketo instance'. It distinguishes from siblings like marketo_get_form_by_id by implying a list vs. specific form 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 implies use for listing forms with filtering and pagination, but does not explicitly contrast with sibling tools like marketo_get_form_by_id. Clear context but lacks explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_lead_activitiesA
Fetch activity records for a specific lead. Filter by activity type IDs (e.g., 1=Visit Webpage, 2=Fill Out Form, 6=Send Email). Supports cursor-based pagination via nextPageToken.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | ||
| activityTypeIds | No | ||
| nextPageToken | No | ||
| batchSize | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses cursor-based pagination via nextPageToken but does not mention error handling, rate limits, or ordering. Reasonably transparent for a read 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?
Two sentences are front-loaded: first declares purpose, second adds filtering and pagination. No redundant or verbose language.
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 4 parameters (1 required) and no output schema, the description explains three parameters but omits batchSize and does not describe the response format or limits. Adequate but with 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 0%. The description compensates by explaining activityTypeIds (with examples) and nextPageToken for pagination. However, batchSize is not explained, and leadId's purpose is implied. Adds significant meaning beyond 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?
Description clearly states 'Fetch activity records for a specific lead' with a specific verb and resource. It distinguishes from sibling tools like marketo_get_lead_by_id and marketo_get_lead_changes by focusing on activities.
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 mentions filtering by activity type IDs and cursor-based pagination, providing clear usage context. It does not explicitly state when not to use or mention alternatives, but the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_lead_by_emailB
Look up a lead by email address using the Marketo leads filter API. Optionally specify which fields to return. Returns matching lead records.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should fully disclose behavioral traits. It mentions 'using the Marketo leads filter API' but does not address rate limits, authentication, error handling for missing emails, or duplicate handling. 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 two sentences, concise and front-loaded. However, it could be slightly more efficient by merging the second and third sentences.
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?
No output schema exists, and the description omits return format, error scenarios, and pagination. For a lookup tool with sibling mutation tools, this is incomplete.
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 coverage is 0%, so the description must compensate. It only states 'Optionally specify which fields to return,' adding minimal value. No explanation of valid fields or format is provided.
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 function: 'Look up a lead by email address' using the Marketo API, with optional field selection and returning matching records. This distinguishes it from siblings like get_lead_by_id.
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 implies usage for retrieving a lead by email but offers no explicit guidance on when to use this tool versus alternatives like get_lead_by_id or create_or_update_lead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_lead_by_idB
Retrieve a lead by its numeric Marketo ID. Optionally specify which fields to return (defaults to standard fields). Returns lead record with all requested field values.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation ('Retrieve') but does not explicitly state that the tool is read-only or disclose any side effects, permissions, or error handling. Lacks transparency beyond the basic action.
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?
Two concise sentences with no extraneous information. Front-loaded with the primary purpose, and the second sentence adds relevant detail about parameter usage.
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 simplicity of the tool (single lead retrieval with optional fields) and no output schema, the description covers the essential purpose and parameter semantics. Could be improved by mentioning response format or error behavior.
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 0%, but the description adds meaning: it clarifies that 'fields' is optional and defaults to standard fields. This compensates for the lack of 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 (retrieve), resource (lead by numeric Marketo ID), and the optional fields feature. It is specific but does not explicitly differentiate from sibling tools like marketo_get_lead_by_email or marketo_get_lead_activities.
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 on when to use this tool versus alternatives (e.g., get_lead_by_email). No mention of prerequisites or conditions that would make this tool inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_lead_changesA
Fetch field-change history for a specific lead. Optionally filter to specific field names. Useful for auditing data changes and tracking lead lifecycle progression.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | ||
| fields | No | ||
| nextPageToken | No | ||
| batchSize | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It correctly implies a read operation but does not detail pagination behavior, sorting, or date ranges. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence states the core action, the second adds optional filtering and use cases. Efficient and front-loaded.
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?
No output schema, yet the description does not mention what the response contains (e.g., list of changes with fields like timestamp, old/new values). Missing essential info for the agent to understand the return value.
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?
With 0% schema description coverage, the description must compensate. It explains 'leadId' and 'fields' filtering but omits 'nextPageToken' (pagination) and 'batchSize'. Only partial value added.
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 verb 'Fetch' and resource 'field-change history' are specific and clear. It distinguishes itself from siblings like marketo_get_lead_by_id (current state) and marketo_get_lead_activities (activities, not changes).
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?
States it's 'useful for auditing data changes and tracking lead lifecycle progression', providing clear context for when to use. It does not explicitly exclude cases, but the purpose is well-implied given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_lead_listsA
Get all static lists that a lead belongs to. Supports cursor-based pagination via nextPageToken. Returns list IDs and names.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | ||
| batchSize | No | ||
| nextPageToken | No |
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 pagination and return fields but does not disclose side effects (likely read-only), error handling, or rate limits. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first defines purpose, second adds pagination and output. No redundant words or extraneous 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 simple tool (3 params, no output schema), description adequately covers purpose, pagination, and return shape. Could mention that lists are static only, but overall sufficient.
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?
With 0% schema description coverage, the description adds meaning: 'Supports cursor-based pagination via nextPageToken' explains pagination, and 'Returns list IDs and names' hints at output. leadId is obvious, but batchSize is not explained.
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 'Get all static lists that a lead belongs to', specifying the verb and resource. It distinguishes from siblings like marketo_get_lead_by_id or marketo_add_lead_to_list by focusing on list membership.
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 implies usage for retrieving lists for a lead. It mentions pagination but does not explicitly state when not to use or compare to alternatives like marketo_get_lead_activities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_program_by_idA
Retrieve a single program by its numeric ID. Returns full program metadata including channel, status, costs, tags, and folder path.
| Name | Required | Description | Default |
|---|---|---|---|
| programId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. While it indicates a read operation (retrieve), it does not explicitly state no side effects, required permissions, or behavior on invalid IDs. The description is adequate but lacks explicit non-mutation confirmation.
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 concise sentence, front-loading the core action and resource, then listing return elements. No superfluous words, making it efficient and easy to parse.
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 low complexity (1 required param, no output schema), the description covers the main purpose, return content, and ID type. It could briefly mention error handling or permissions, but overall it is sufficiently complete for a simple retrieval tool.
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 has one parameter (programId) with 0% description coverage. The description mentions 'by its numeric ID', adding minimal context that the ID is numeric, but does not fully describe the parameter’s purpose, constraints, or how to obtain it. More detail would be beneficial.
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 specifies the action (Retrieve), resource (single program), key identifier (numeric ID), and expected return content (full metadata with channel, status, costs, tags, folder path). This differentiates it from sibling tools like get_programs or get_program_members.
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 implies usage when a specific program is needed, but it omits explicit guidance on when to use this tool versus alternatives, such as get_programs for listing all programs or get_program_members for members. No prerequisites, exclusions, or comparison to siblings are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_program_membersA
Get leads that are members of a specific program. Optionally specify which fields to return. Supports cursor-based pagination via nextPageToken. Returns member status alongside lead data.
| Name | Required | Description | Default |
|---|---|---|---|
| programId | Yes | ||
| fields | No | ||
| batchSize | No | ||
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Mentions pagination and return data but lacks explicit read-only indication, rate limits, or side effects. No annotations to offset.
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?
21-word sentence packed with essential information without redundancy.
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?
Covers required and optional parameters, pagination, and return data. No output schema, but description adequately specifies output.
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?
Adds meaning for programId, fields, and nextPageToken beyond the schema. batchSize is not described but can be inferred from pagination 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?
Clearly states the action ('Get leads'), the resource ('members of a specific program'), and optional features (field selection, pagination). Distinguishes from siblings like marketo_get_programs.
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?
Tells when to use (get program members) and mentions options, but no exclusions, prerequisites, or alternatives for cases like leads not in a program.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_programsA
List programs in Marketo. Filter by type (filterType: id, programType, folder, tag) with filterValues, or by date range (earliestUpdatedAt/latestUpdatedAt). Paginate with maxReturn/offset. Returns program metadata including channel, status, costs, and tags.
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | ||
| offset | No | ||
| filterType | No | ||
| filterValues | No | ||
| earliestUpdatedAt | No | ||
| latestUpdatedAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It correctly implies a read-only operation ('List programs') and mentions return data, but lacks details on authentication needs, rate limits, or potential side effects. The description is adequate but not richly transparent.
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, comprising two efficient sentences. The first sentence states the primary action, and the second covers parameters and return data. No extraneous 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 tool has 6 parameters, no required fields, and no output schema, the description covers the main aspects: filtering, pagination, and return fields (channel, status, costs, tags). It misses details like sorting, error responses, or default pagination limits, but is reasonably complete for a list operation.
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 adds significant meaning beyond the raw schema: it explains filterType's enumerated values (id, programType, folder, tag), the role of filterValues, date range parameters, and pagination controls. However, it omits details like value format or default behaviors, which slightly reduces clarity.
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 'List programs in Marketo' and details the filtering and pagination options, making the tool's purpose unambiguous. It distinguishes from siblings like get_program_by_id which retrieves a single program.
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 explains how to use the tool with filter types, values, date range, and pagination, but does not explicitly state when to use it over alternatives or when not to use it. The sibling list provides context but no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_smart_list_by_idA
Retrieve a single smart list by its numeric ID. Returns the smart list definition including filter rules and membership criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| smartListId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It clarifies the return value includes filter rules and membership criteria, but does not state that it is a read-only operation, or disclose potential error states, rate limits, or permissions.
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?
Two concise sentences clearly communicate the action and the return content without any superfluous 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 simplicity of the tool (single parameter, no annotations, no output schema), the description adequately covers purpose and basic return content. However, it lacks usage guidance and behavioral transparency, which are needed for full 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?
With 0% schema description coverage, the description adds minimal value: it confirms the ID is 'numeric', which is already evident from the schema type 'number'. No additional constraints, format, or examples are provided.
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 uses the clear verb 'Retrieve' and specifies the resource 'a single smart list by its numeric ID'. It directly contrasts with the sibling tool 'marketo_get_smart_lists', which retrieves multiple lists, making the purpose distinct.
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 implies usage when a specific numeric ID is known but does not explicitly state when to use this tool over alternatives like 'marketo_get_smart_lists' or how to obtain the ID. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_get_smart_listsA
List smart lists in the Marketo instance. Paginate with maxReturn (default 200) and offset. Returns smart list metadata including filter rules and folder location.
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides key behavioral details: it is a read operation, paginates via maxReturn and offset, and returns smart list metadata including filter rules and folder location. No contradictions.
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 two sentences, no extraneous words, and front-loads the essential function.
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 simple list operation with two optional parameters and no output schema, the description covers the action, pagination, and return contents; lacks only offset default value.
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 coverage is 0%, but the description explains the purpose of maxReturn (with default 200) and offset for pagination, adding meaning beyond the bare 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 action 'List' and the resource 'smart lists in the Marketo instance', distinguishing it from siblings like marketo_get_smart_list_by_id which fetches a single smart list.
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 implies usage for listing all smart lists with pagination, but does not explicitly contrast with sibling tools or explain when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_remove_lead_from_listA
Remove one or more leads from a static list. Accepts an array of lead IDs. Max 300 leads per call.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| leadIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it removes leads (destructive action) and limits batch size, but lacks details on permissions, reversibility, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose followed by a constraint. No unnecessary words or redundant 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 simple parameters and no output schema, description adequately covers operation and batch limit. Lacks details on edge cases (e.g., leads not in list, multiple lists) but sufficient for a straightforward removal tool.
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 has 2 params with 0% description coverage. Description clarifies leadIds as 'array of lead IDs' but does not explain listId, though its name is self-explanatory. Adds some value but incomplete.
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 'Remove one or more leads from a static list', specifying the verb (remove), resource (leads from a static list), and implicitly distinguishing it from the sibling tool 'marketo_add_lead_to_list'.
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?
Provides a key constraint (Max 300 leads per call) and clear usage context, but does not explicitly mention when not to use this tool or direct to alternatives like marketo_add_lead_to_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_send_sample_emailA
Send a sample/preview of an email to a specified email address. Optionally render with a specific lead's data by passing leadId. Useful for QA before approving.
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | ||
| emailAddress | Yes | ||
| textOnly | No | ||
| leadId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It states it sends a sample email but does not disclose that it actually dispatches a real email, nor does it mention permissions, rate limits, or side effects.
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?
Two sentences, no wasted words. Front-loaded with the core action, followed by optional detail and use case. Ideal 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 0% parameter descriptions, the description covers main purpose and two params but misses required emailId explanation, the fact that it actually sends an email, and any response or error information.
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 coverage is 0%, so description must explain parameters. It adds meaning for emailAddress and leadId, but does not explain emailId (the email to send) or textOnly flag, leaving half the parameters underspecified.
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 sends a sample/preview of an email to a specified address, and distinguishes from siblings like get_email or get_lead by focusing on the send action for QA purposes.
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 context ('Useful for QA before approving'), but does not mention when not to use or list alternatives, leaving some gaps for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketo_update_channelA
Update an existing channel's properties (name, description, type). Cannot change progression statuses after creation.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| name | No | ||
| description | No | ||
| type | No | ||
| applicationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions a limitation on progression statuses but omits details on side effects, authentication needs, or error conditions, which are important for an update 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 extremely concise: one sentence stating the purpose and a critical constraint. No wasted words, front-loaded with the verb 'Update'.
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 (5 simple params, no output schema), the description addresses the core action and one key limitation. However, it lacks usage details for parameters and expected behavior on partial updates, making it only adequately 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?
The description lists three updatable properties (name, description, type) but does not explain channelId, applicationId, or their roles. With 0% schema coverage, it adds only partial meaning beyond raw types.
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 updates an existing channel's properties (name, description, type) and distinguishes itself from sibling tools like create_channel and delete_channel by being a modification operation.
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 a clear constraint ('Cannot change progression statuses after creation') but does not explicitly mention when to use this tool versus alternatives like get_channel_by_id or create_channel, though the context implies use for modification.
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.
7 tool updates
v1.1.0- Added
marketo_clone_program - Added
marketo_get_email_by_id - Added
marketo_get_emails - Added
marketo_get_program_by_id - Added
marketo_get_program_members - Added
marketo_get_programs - Added
marketo_send_sample_email
16 tool updates
v1.0.0- Added
marketo_add_lead_to_list - Added
marketo_create_channel - Added
marketo_create_or_update_lead - Added
marketo_delete_channel - Added
marketo_delete_lead - Added
marketo_get_channel_by_id - Added
marketo_get_channels - Added
marketo_get_lead_activities - Added
marketo_get_lead_by_email - Added
marketo_get_lead_by_id - Added
marketo_get_lead_changes - Added
marketo_get_lead_lists - Added
marketo_get_smart_list_by_id - Added
marketo_get_smart_lists - Added
marketo_remove_lead_from_list - Added
marketo_update_channel
4 tool updates
- First observed
marketo_approve_form - First observed
marketo_clone_form - First observed
marketo_get_form_by_id - First observed
marketo_get_forms
TDQS
Scored across 27 tools
All tools target distinct resources and actions (leads, forms, emails, programs, channels, smart lists) with no overlapping purposes, making it easy for an agent to select the correct tool.
All tools follow a consistent 'marketo_verb_noun' pattern (e.g., marketo_add_lead_to_list, marketo_get_form_by_id), with clear and predictable naming throughout.
27 tools is appropriate for a comprehensive marketing automation platform covering multiple subdomains (leads, forms, emails, programs, channels, smart lists). Each tool has a clear purpose and none seem redundant.
Coverage is strong for leads (CRUD) and channels (full lifecycle), but missing create/delete for forms and emails, and missing create/delete for programs. This leaves notable gaps that may require workarounds.
Maintenance
Related MCP Connectors
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Model Context Protocol server for Studex tools, notifications, and profile integrations
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for todo.vu task management and time tracking.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables interaction with the Tradovate API for managing trading contracts, positions, orders, and accounts.1MIT
- FlicenseAqualityDmaintenanceA server that implements the Model Context Protocol for managing dynamic forms, allowing users to create, retrieve, and handle responses for web forms via the @dynamicfrm/js library.4-
- FlicenseDqualityDmaintenanceA comprehensive Model Context Protocol server that enables interaction with the Klaviyo API, providing tools and resources for managing customer profiles, lists, segments, campaigns, flows, and various marketing automation features.473-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for Marketing Connect AI integrations that provides tools, resources, and prompts for AI models to interact with marketing systems and data.-