ExD Accelerator MCP Server
The ExD Accelerator MCP Server provides 39 MCP tools to automate the full lifecycle of Adobe Journey Optimizer's Experience Decisioning (ExD) setup — from CSV analysis to placements — without leaving your MCP client.
CSV Analysis & Schema Management
Parse CSV files to infer XDM types and get suggestions for schema fields, eligibility rules, and ranking formulas (read-only, no data written)
Create XDM fieldgroups from CSV column names and attach them to the decisioning schema
Add, deprecate (custom or OOB), and detach fields/fieldgroups
Inspect the full resolved decisioning schema, list fieldgroups, view field definitions, audit logs, and descriptors
Offer Management
Bulk-create offers from CSV rows (with
dry_runpreview mode)Full CRUD: create, list, fetch by ID, and update (JSON Patch) individual offer items
Collections
Full CRUD: create collections with flexible filter constraints (by name, category, custom field, priority, or all offers), list, fetch, update, and delete
Eligibility Rules
Full CRUD: create PQL-based eligibility rules, list, fetch, update, and delete
Ranking Formulas
Full CRUD: create ranking formulas (static priority, custom field, recency-hybrid, or custom PQL), list, fetch, update, and delete
Selection Strategies
Full CRUD: wire collections, eligibility rules, and ranking formulas into selection strategies; list, fetch, update, and delete
Placements
Create and manage channel placements (web, email, push, mobile, in-app); list, fetch, and update
Inventory & Safety
Fetch a full read-only snapshot of all ExD resources in the sandbox (offers, collections, rules, formulas, strategies, placements)
All write operations require explicit
confirmed: true— every tool previews changes before executing, preventing accidental modificationsAutomatically mints and caches IMS tokens from Adobe credentials (Client ID, Client Secret, Org ID, etc.)
Deployment
Run locally as a stdio server (e.g., Claude Desktop) or deploy to Vercel as a Streamable HTTP endpoint for team-shared access, with each user supplying their own Adobe credentials via headers.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ExD Accelerator MCP ServerCreate a new offer from my CSV data for premium users"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ExD Accelerator — MCP Server
AI-native Experience Decisioning lifecycle automation for Adobe Journey Optimizer. End-to-end ExD setup from a single chat conversation: CSV → schema fields → offers → collections → eligibility rules → ranking → selection strategy → placements.
39 MCP tools wrapping AEP Schema Registry and Decisioning APIs. Every write operation previews what it will do and requires explicit confirmed: true before executing.
Live endpoint: https://exd-mcp-server-without-auth.vercel.app/api/mcp
Health: https://exd-mcp-server-without-auth.vercel.app/api/health
Two ways to run this
A. Local stdio (Claude Desktop)
npm install
cp .env.example .env # fill in CLIENT_ID, CLIENT_SECRET, sandbox, schema, catalog
npm start # runs src/stdio.jsThen point Claude Desktop at it (%APPDATA%\Claude\claude_desktop_config.json on
Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on
macOS):
{
"mcpServers": {
"exd-accelerator": {
"command": "node",
"args": ["/absolute/path/to/exd-mcp-server/src/stdio.js"],
"env": {
"CLIENT_ID": "…",
"CLIENT_SECRET": "…",
"ORG_ID": "…@AdobeOrg",
"SANDBOX_NAME": "…",
"TENANT_ID": "…",
"DECISIONING_SCHEMA_URI": "https://ns.adobe.com/…/schemas/…",
"DECISIONING_SCHEMA_ALT_ID": "_….schemas.…",
"ITEM_CATALOG_ID": "xcore:decision-catalog:…"
}
}
}
}Restart Claude Desktop. You'll see the 🔧 tool icon — ExD Accelerator is live.
B. Vercel deployment (for sharing with Adobe coworkers)
Push this repo to GitHub.
Import it in vercel.com/new. Framework preset: Other.
Deploy — Vercel auto-detects
api/mcp.jsas the serverless route.Do not add Adobe credentials to Vercel environment variables. Each coworker supplies their own credentials via HTTP headers when they connect.
Adobe coworker setup
Once deployed at https://your-app.vercel.app, each coworker adds this in their
MCP client config (Claude Desktop, Adobe AO Chat, Claude.ai, etc.):
Setting | Value |
Server URL |
|
Transport | Streamable HTTP |
Auth | None at the transport level — credentials go in headers |
Custom headers (one-time, in the MCP client config — NOT in chat messages):
x-adobe-client-id: <Adobe Dev Console: Client ID>
x-adobe-client-secret: <Adobe Dev Console: Client Secret>
x-adobe-org-id: <IMS Org ID>@AdobeOrg
x-adobe-sandbox: <sandbox name>
x-adobe-tenant-id: <tenant id, e.g. acssandboxgdcthree>
x-adobe-schema-uri: https://ns.adobe.com/<tenant>/schemas/<id>
x-adobe-schema-alt-id: _<tenant>.schemas.<id>
x-adobe-catalog-id: xcore:decision-catalog:<id>The server uses client_credentials to mint a token automatically, caches it per
client_id, and refreshes on expiry. The marketer never sees the token.
Related MCP server: IBM Decision Intelligence MCP Server
Is Vercel a good fit for a production MCP endpoint?
Yes, for this workload. Each MCP tool call is a single short HTTP roundtrip to Adobe Platform APIs — no long-running state, no streaming required, no WebSocket. Vercel's serverless model maps cleanly:
Concern | Verdict |
Stateless requests | ✅ Each MCP call is independent. No session state. |
Cold-start latency | ⚠️ ~300–500ms on first call after idle. Subsequent calls reuse the warm container. |
60s function timeout (Pro tier) | ⚠️ |
10s timeout (Hobby tier) | ⚠️ |
Auto-scaling | ✅ Each coworker's request gets its own invocation. |
HTTPS, custom domain, env-per-deploy | ✅ Built in. |
SSE / long-polling | ❌ Not used here — we run Streamable HTTP with |
When Vercel isn't right: if you need server-initiated notifications, very large bulk operations (hundreds of writes), or stateful sessions across many calls, deploy to a long-lived host (Railway, Render, Fly, ECS) and run the same codebase. The transport layer is the only difference.
All 39 tools
Read-only (no confirmation needed)
# | Tool | What it does |
1 |
| Parses CSV, infers XDM types per column, suggests eligibility rules and ranking formulas. Always call first. No API calls. |
9 |
| Fetches a single offer item by DPS ID |
10 |
| Lists all offers in catalog with pagination |
16 |
| Full inventory: offers, collections, rules, formulas, strategies, placements |
17 |
| Full resolved schema with OOB + tenant fields; accepts |
18 |
| Lists all tenant fieldgroups for the offer item class |
19 |
| Full field definitions inside a specific fieldgroup |
20 |
| Chronological change history for the decisioning schema |
21 |
| Identity, deprecation, display name, relationship descriptors |
27 |
| Fetches a single item collection by DPS ID |
28 |
| Lists all item collections with pagination |
30 |
| Fetches a single eligibility rule by DPS ID |
31 |
| Lists all ExD eligibility rules with pagination (filters to exdRule==true) |
33 |
| Fetches a single ranking formula by DPS ID |
34 |
| Lists all ExD ranking formulas with pagination (filters to exdFunction==true) |
36 |
| Fetches a single selection strategy by DPS ID |
37 |
| Lists all selection strategies with pagination |
39 |
| Fetches a single channel placement by DPS ID |
Write (require confirmed: true)
# | Tool | What it does |
2 |
| Creates XDM fieldgroup from CSV columns, attaches to decisioning schema. Checks for duplicates first. |
3 |
| Creates offer items from CSV rows. Supports |
4 |
| Creates offer collection with filter constraint |
5 |
| Creates PQL eligibility rule |
6 |
| Creates ranking formula (static, custom field, recency-hybrid, custom PQL) |
7 |
| Wires collection + rule + formula into a selection strategy |
8 |
| Creates channel placement via |
11 |
| JSON Patch update on any offer field |
12 |
| Adds a single field to an existing tenant fieldgroup |
13 |
| Sets |
14 |
| Creates |
15 |
| Removes fieldgroup from schema |
22 |
| JSON Patch update on an existing item collection |
23 |
| JSON Patch update on an existing eligibility rule |
24 |
| JSON Patch update on an existing ranking formula |
25 |
| JSON Patch update on an existing selection strategy |
26 |
| Full-replace (PUT) update on an existing channel placement |
29 |
| Permanently deletes an item collection |
32 |
| Permanently deletes an eligibility rule |
35 |
| Permanently deletes a ranking formula |
38 |
| Permanently deletes a selection strategy |
Full CRUD (create/list/lookup/update/delete) is now available for offers, collections, eligibility rules, ranking formulas, and selection strategies. Placements support create/list/lookup/update — no delete endpoint exists for placements in the DPS API.
Confirmation pattern
Every write tool shows a preview and blocks with:
⚠️ CONFIRMATION REQUIRED — no changes made yet
[preview of what will happen]
✅ To proceed, call this tool again with confirmed: trueCall the same tool again with confirmed: true to execute.
Recommended workflow from a fresh CSV
1. parse_csv_and_suggest → analyse CSV, no writes
2. list_schema_fieldgroups → check if fieldgroup already exists
3. create_offer_metadata_fieldgroup → push schema fields (confirmed: true)
4. lookup_decisioning_schema → verify fields attached
5. bulk_create_offers (dry_run) → preview offer payloads
6. bulk_create_offers (confirmed) → create offers
7. list_offer_items → verify
8. create_collection → group offers (confirmed: true)
9. create_eligibility_rule → targeting (confirmed: true)
10. create_ranking_formula → ranking logic (confirmed: true)
11. create_selection_strategy → wire it all together (confirmed: true)
12. create_placement → define channel (confirmed: true)
13. get_setup_summary → verify full setupSample CSV for testing
name,description,category,brand,discount_percent,price,region,priority,start_date,end_date
Summer Glow Kit,Complete summer skincare set,Skincare,GlowCo,20,49.99,US,1,2024-06-01,2024-08-31
SPF Starter Bundle,SPF 30 and 50 combo,Skincare,GlowCo,15,29.99,US,2,2024-06-01,2024-09-30
Loyalty 20% Off,Exclusive 20% for gold members,Discount,GlowCo,20,0,Global,1,2024-01-01,2024-12-31Column mapping:
name→itemName(OOB),description→itemDescription,priority→itemPriority,start_date/end_date→itemCalendarConstraintseverything else →
_<tenant>.<column>(custom fieldgroup)
File layout
exd-mcp-server-without-auth/
├── src/
│ ├── server.js ← buildMcpServer(config) + 21 tool definitions
│ ├── stdio.js ← stdio entry (npm start) — for Claude Desktop
│ └── http-local.js ← local HTTP server for testing the Vercel route
├── api/
│ └── mcp.js ← Vercel serverless route (Streamable HTTP)
├── scripts/
│ └── smoke.js ← smoke test for stdio + HTTP transports
├── vercel.json
├── package.json
├── .env.example
└── .gitignoreSmoke testing
npm install
cp .env.example .env # fill in
npm run smoke # runs stdio + HTTP transport tests, calls real Adobe APIsExpected output ends with All smoke checks passed.
Troubleshooting
Symptom | Likely cause | Fix |
| CLIENT_ID/CLIENT_SECRET not set | Add to |
| Credentials invalid or revoked | Regenerate the OAuth Server-to-Server credential in Adobe Developer Console |
| Credential lacks AEP access | The OAuth credential's product profile needs |
| Wrong org/sandbox | Check |
List offers returns 0 | Wrong | Each sandbox has its own catalog ID |
Tool call exceeds 10s on Vercel Hobby | Bulk operation too large | Upgrade to Pro (60s) or chunk the CSV |
| Resolved by 2.0 — file an issue if you still see this | — |
What this MCP does NOT do (future scope)
Decisioning policy / campaign creation — creates components but not the final AJO policy that ties strategy + placement.
Delete operations — AEP recommends archive over delete.
Audience creation — eligibility rules reference profile attributes but don't create AEP segments.
Cross-channel coherence scoring — would require AEP Query Service integration.
Available Tools
21 toolsadd_schema_fieldB
Add a single new field to an existing tenant fieldgroup. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No | ||
| field_name | Yes | ||
| field_type | No | string | |
| field_title | Yes | ||
| access_token | No | ||
| fieldgroup_id | Yes | ||
| definition_key | No | offerMetadata | |
| field_description | 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 only reveals the confirmation requirement, but omits other behaviors like idempotency, error conditions, or effects on existing fields.
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 (two sentences) and front-loaded with the main action. However, it could be more structured with parameter details.
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 8 parameters and no output schema, the description is too minimal. It fails to explain what each parameter does, how the tool behaves beyond the confirmation flag, or what the response looks like.
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 should compensate. It only explains the 'confirmed' parameter implicitly. The remaining 7 parameters (e.g., field_name, field_type) are left to the agent to infer from their names.
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 a single new field') and the resource ('existing tenant fieldgroup'). It distinguishes from sibling tools like deprecate_schema_field or bulk_create_offers.
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 a prerequisite ('Requires confirmed: true to execute') but does not provide guidance on when to use this tool versus alternatives, such as bulk_create_offers or deprecate_schema_field.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_create_offersA
Bulk-create ExD offer items from CSV rows. Each row becomes one offer. Requires confirmed: true to execute — previews payloads first. Use dry_run: true to inspect full JSON payloads.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | Returns full JSON payloads without calling the API | |
| csv_text | Yes | Full CSV text | |
| confirmed | No | Set to true to execute the write. Leave false to preview. | |
| access_token | No | Bearer token — optional, server will auto-mint if missing | |
| lifecycle_status | No | draft |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses the tool's two-step behavior: preview via dry_run, then execute via confirmed. It implies a write operation but doesn't detail error handling 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 concise sentences front-load the core purpose and key workflow details. Every sentence adds value with 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 5 parameters and no output schema, the description covers the main execution flow and critical flags. It lacks details on return values or error handling but is adequate for 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 coverage is 80%, so the schema already documents most parameters. The description reinforces the dry_run/confirmed workflow but adds little meaning beyond the schema's parameter 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 tool bulk-creates ExD offer items from CSV rows, each row becomes one offer. This is specific and distinct from sibling tools like create_placement or create_ranking_formula.
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 the preview-then-execute workflow using dry_run and confirmed parameters. However, it does not explicitly state when to avoid using this tool (e.g., for single offers) or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_collectionA
Create an offer item collection with a filter constraint. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Collection display name | |
| confirmed | No | Set to true to execute the write. | |
| description | No | ||
| filter_type | Yes | How to filter offers into this collection | |
| access_token | No | ||
| filter_value | No | Value to filter on — required for all filter types except 'all' | |
| custom_field_path | No | Tenant field path for by_custom_field e.g. category |
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. It discloses the confirmation requirement as a behavioral trait (a write with a safety mechanism), but lacks details on idempotency, failure behavior, or other 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?
The description is extremely concise—two sentences totaling 18 words—and front-loads the primary purpose. Every word serves a purpose with 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?
For a tool with 7 parameters, no output schema, and no annotations, the description is insufficient. It omits what the collection is used for, error handling, return values, and how filter constraints work in detail.
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 71% description coverage. The description adds 'with a filter constraint', which relates to filter_type and filter_value but does not explain parameters like access_token or the description field where schema lacks descriptions. It provides no additional parameter 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?
The description clearly states the verb 'create' and the resource 'offer item collection' with the specific feature 'with a filter constraint'. This distinguishes it from sibling tools like 'bulk_create_offers' or 'create_eligibility_rule'.
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 one usage guideline: 'Requires confirmed: true to execute.' However, it does not explain when to use this tool versus other creation tools (e.g., create_placement) 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.
create_eligibility_ruleB
Create a PQL eligibility rule for Experience Decisioning. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Rule display name | |
| confirmed | No | ||
| description | No | ||
| access_token | No | ||
| pql_expression | Yes | PQL expression e.g. profile.loyaltyTier.in(["gold","platinum"]) or true for all visitors |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only discloses that the tool requires 'confirmed: true' to execute, but does not mention idempotency, error states, or side effects like whether the rule is immediately active.
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 consists of two short sentences, each adding value: the first states the purpose and domain, the second provides a critical usage constraint. No filler or 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?
Given 5 parameters, no output schema, and no annotations, the description is too brief. It explains a single behavioral constraint but omits expected return values, error scenarios, or prerequisites beyond 'confirmed: true'. This leaves the agent with significant unknowns.
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 40% with documented parameters 'name' and 'pql_expression'. The description adds the requirement that 'confirmed' must be true, which supplements the schema where 'confirmed' has no description. This somewhat compensates for the low coverage, but the 'access_token' and 'description' parameters remain undocumented.
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 'Create' and resource 'PQL eligibility rule for Experience Decisioning,' which matches the tool name and distinguishes it from siblings like 'create_collection' or 'create_selection_strategy.'
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 a precondition ('Requires confirmed: true to execute') but does not provide explicit guidance on when to use this tool versus alternatives, such as 'create_selection_strategy' or 'create_ranking_formula.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_offer_metadata_fieldgroupA
Create a new XDM fieldgroup from CSV column names and attach it to the ExD decisioning schema. Will check for an existing fieldgroup with the same name first. Requires confirmed: true to execute — previews first.
| Name | Required | Description | Default |
|---|---|---|---|
| csv_text | Yes | Full CSV text — column names become schema fields | |
| confirmed | No | Set to true to execute. Leave false to preview only. | |
| access_token | No | Bearer token — optional, server will auto-mint if missing | |
| fieldgroup_name | No | Display name for the new fieldgroup | Offer Metadata - CSV Import |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses the confirmation requirement and preview behavior, but does not specify what happens if a fieldgroup with the same name exists or what the preview output looks like. The transparency is adequate but incomplete.
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 very concise, consisting of two sentences. The main action is front-loaded, and additional constraints follow. It is efficient with no filler.
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 4 parameters, no output schema, and no annotations, the description covers the core functionality and the key constraint (confirmed flag). However, it lacks details on error handling, prerequisites, and what the preview returns. It is functional but could be more 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 description adds minimal new meaning beyond restating schema descriptions. It does clarify the purpose of csv_text and the confirmed flag's role, but this is largely redundant with 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 it creates an XDM fieldgroup from CSV column names and attaches it to a schema. The verb 'create' and resource 'fieldgroup' are specific, distinguishing it from sibling tools like 'create_collection' or 'add_schema_field'.
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 it checks for existing fieldgroup and requires confirmed:true to execute, implying a preview mode. While it does not explicitly list when to use vs alternatives, the context and sibling names provide differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_placementB
Create a channel placement for Experience Decisioning. Uses /exd-placements endpoint. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| status | No | active | |
| channel | Yes | ||
| confirmed | No | ||
| description | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the endpoint used ('/exd-placements') and the necessity of 'confirmed: true', but lacks details on side effects, authorization needs, or other behavioral traits. With no annotations, the description carries the full burden and does a minimum but adequate job.
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 that front-load the purpose and critical requirement. No fluff, but could be slightly expanded for key parameters.
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 6 parameters, no output schema, and no annotations, the description is incomplete. It does not explain core concepts like placements or channel types, making it hard for an agent to use correctly.
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 only mentions 'name', 'channel', and 'confirmed' indirectly, with some semantics for 'confirmed'. Other parameters (status, description, access_token) are not explained. Insufficient for a 6-parameter tool.
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 it creates a channel placement for Experience Decisioning, with specific verb and resource. However, does not distinguish from sibling creation tools like bulk_create_offers or create_collection.
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 requirement: 'Requires confirmed: true to execute.' This gives usage guidance but no 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.
create_ranking_formulaC
Create a ranking formula for Experience Decisioning. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Formula display name | |
| confirmed | No | ||
| custom_pql | No | ||
| description | No | ||
| access_token | No | ||
| formula_type | Yes | ||
| custom_field_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only mentions the confirmed flag, failing to address side effects (e.g., immediate activation, permissions needed, rollback possibility), rate limits, or any other behavioral context. This is critically insufficient for a creation 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 very short (one sentence plus a requirement), which could be seen as concise, but it is too sparse to be functional. For a tool with 7 parameters, it lacks essential details. It is front-loaded with the main action but fails to convey necessary 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 complexity (7 parameters, no output schema, no annotations), the description is severely incomplete. It does not explain what a ranking formula does, how formula types differ, what the confirmed flag actually controls, or any interaction with other decisioning tools. This leaves an AI agent without critical context.
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 only 14% (only name and formula_type have descriptions). The description adds no explanation for parameters like custom_pql, custom_field_name, description, or access_token. It does not clarify the meaning of formula_type enum values or how they relate to the other parameters.
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 states 'Create a ranking formula for Experience Decisioning', clearly identifying the action (create) and resource (ranking formula) within a specific domain. It does not explicitly differentiate from sibling tools like create_eligibility_rule, but the context provided by the domain name helps distinguish it.
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 'Requires confirmed: true to execute', which provides a basic condition but offers no guidance on when to use this tool versus alternatives, no prerequisites, and no explanation of formula types or their appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_selection_strategyB
Wire a collection, eligibility rule, and ranking formula into a selection strategy. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| priority | No | Static priority score (1 = highest) when no ranking formula is set | |
| confirmed | No | ||
| description | No | ||
| access_token | No | ||
| collection_id | Yes | ID of the item collection e.g. dps:item-collection:xxxxx | |
| ranking_formula_id | No | ID of the ranking formula. Omit for static priority. | |
| eligibility_rule_id | No | ID of the eligibility rule. Omit for all visitors. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only mentions the 'confirmed' requirement and implies a write operation, but does not detail side effects, error handling, or whether it creates or updates a strategy.
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-loading the purpose and adding a key requirement. Every sentence is essential, with 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?
The tool has 8 parameters and no output schema, but the description omits what the tool returns (e.g., created strategy ID). It also lacks details on how parameters like priority or description interact, leaving the agent underinformed.
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 50%, so the description has room to add parameter context. However, it only implicitly references collection, eligibility_rule, and ranking_formula, and adds 'confirmed' requirement. It does not explain non-obvious parameters like description, priority, or access_token.
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 states the tool 'Wires a collection, eligibility rule, and ranking formula into a selection strategy,' which clearly indicates the action and resources involved. It distinguishes from sibling tools that create individual components.
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 the requirement 'confirmed: true to execute,' which is a usage condition. However, it does not provide guidance on when to use this tool versus alternatives, such as creating components separately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deprecate_oob_fieldA
Deprecate an OOB Adobe-managed field on the decisioning schema via a descriptor. Use for standard fields like itemDescription, itemName. For custom tenant fields use deprecate_schema_field. Requires confirmed: true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No | ||
| field_path | Yes | JSON pointer path to the field e.g. /_experience/decisioning/decisionitem/itemDescription | |
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description reveals a behavioral requirement (confirmation) but does not disclose other traits like reversibility, permissions, or side effects. The confirmation flag is noted, which adds some transparency but could be more 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?
The description is three concise sentences with no redundancy. It front-loads the purpose and immediately provides usage guidance and a key behavioral requirement.
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 tool is relatively simple (deprecate a field). The description covers purpose, usage, and a parameter requirement. While it lacks details about the effect of deprecation or return values, these are somewhat implied. Given no output schema, it is fairly 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 only 33% (only field_path has a description). The description adds meaning by explaining that 'confirmed: true' is required and provides an example field path. However, it does not clarify the access_token parameter, leaving some 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 action (deprecate), target (OOB Adobe-managed field), method (via descriptor), and gives examples (itemDescription, itemName). It effectively distinguishes from the sibling tool deprecate_schema_field for custom fields.
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?
Explicitly states when to use this tool ('for standard fields like itemDescription, itemName') and when not to ('for custom tenant fields use deprecate_schema_field'). Also notes the requirement for 'confirmed: true', providing clear usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deprecate_schema_fieldA
Mark a custom tenant fieldgroup field as deprecated. The field remains but is flagged. For OOB Adobe fields use deprecate_oob_field. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No | ||
| field_name | Yes | ||
| access_token | No | ||
| fieldgroup_id | Yes | ||
| definition_key | No | offerMetadata |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that field remains but is flagged, and requires confirmation. No annotations provided, so description carries burden; lacks detail on reversibility or permissions but covers main effect.
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 extraneous text. 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?
Covers key aspects: purpose, alternative, requirement. Missing details on output and definition_key parameter, but sufficient 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?
Description adds meaning by requiring confirmed: true and implying fieldgroup_id/field_name are needed, but does not explain definition_key or access_token. Schema coverage is 0%, so partial compensation.
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?
Describes marking a custom tenant fieldgroup field as deprecated, specifying verb and resource. Distinguishes from sibling deprecate_oob_field for OOB Adobe fields.
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?
Explicitly states when to use alternative (deprecate_oob_field) and requires confirmed: true to execute, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_fieldgroupA
Safely remove a fieldgroup from the decisioning schema. Always shows a dry-run preview first. Requires confirmed: true to execute the removal.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No | ||
| access_token | No | ||
| fieldgroup_id | Yes | Fieldgroup meta:altId OR full $id URI to detach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses key behaviors: safe removal, dry-run preview, and need for confirmation. Does not mention authentication or rate limits, but the safety and preview steps are well communicated.
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 and safety. Every word adds value; no redundancy or fluff.
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 moderate complexity, description covers essential behavior (dry-run, confirmation). Could mention error cases or return format, but overall sufficient 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?
Description adds meaning beyond schema: explains fieldgroup_id can be altId or URI, and that confirmed must be true to execute. Schema coverage is 33%, but description compensates for two of three parameters, leaving access_token undocumented.
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 tool removes a fieldgroup from the decisioning schema, with specific verb 'remove' and resource 'fieldgroup'. Distinguishes from sibling tools like create_collection or add_schema_field.
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 clear when-to-use: when you need to remove a fieldgroup. Mentions the dry-run preview and confirmation requirement, guiding the agent to use the tool safely. Lacks explicit exclusions or alternatives, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fieldgroupB
Fetch the full field definitions inside a specific fieldgroup by its altId. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | ||
| fieldgroup_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only states 'Read-only', which is minimal. With no annotations, description should disclose more about authentication, error handling, rate limits, or response format, but does not.
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 of 13 words, front-loaded with purpose. No unnecessary words, highly concise.
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 lack of output schema and annotations, and only 2 parameters, the description is too brief. Does not specify what 'full field definitions' includes, no example usage, no constraints.
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 add meaning. It mentions 'by its altId' which loosely maps to fieldgroup_id, but there is mismatch in naming. Does not explain access_token or provide any parameter details.
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 verb 'Fetch', the resource 'full field definitions inside a specific fieldgroup', and the identifier 'by its altId'. Distinguishes from siblings like list_schema_fieldgroups which list fieldgroups, not their contents.
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 explicit guidance on when to use or when not to use. Does not mention prerequisites, alternatives, or context compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offer_itemA
Look up a single offer item by its DPS ID. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| access_token | No |
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 only states 'Read-only', which indicates no side effects, but omits critical details such as error handling (e.g., if DPS ID is invalid), authentication requirements, or return format. This leaves significant gaps for a simple lookup 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 extremely concise: two short sentences that front-load the core purpose. Every word earns its place with no redundancy or unnecessary detail.
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 (single object retrieval), no output schema, and no annotations, the description is minimally adequate. It could improve by stating what is returned (e.g., 'Returns the full offer item object') or how errors are handled, but for a basic lookup it provides enough to start.
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 mentions 'DPS ID' but does not explicitly map it to the 'offer_id' parameter, and the 'access_token' parameter is entirely unexplained. The description adds minimal semantic value 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?
The description clearly states the action ('Look up'), the resource ('a single offer item'), and the identifier ('by its DPS ID'), effectively distinguishing it from sibling tools like 'list_offer_items' (listing multiple) and 'update_offer_item' (modification).
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 phrase 'Read-only' implies this tool is for retrieval without side effects, setting clear context. However, it does not explicitly state when to use it versus alternatives like 'list_offer_items' or 'update_offer_item', though the distinction is inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_audit_logB
Fetch the full audit log for the decisioning schema — every change ever made, newest first. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares 'Read-only' behavior and result ordering ('newest first'). With no annotations, the description partially shoulders the transparency burden but omits other potential traits like rate limits, pagination, or effect on system state. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys purpose, scope, ordering, and read-only nature. 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?
For a simple read-only tool with one parameter, the description covers the main purpose and ordering. However, it lacks parameter explanation and usage guidance, making it only minimally adequate.
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 one optional parameter (access_token) with 0% schema description coverage. The description does not mention the parameter at all, providing no meaning beyond the schema. This is a significant gap.
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 'Fetch the full audit log for the decisioning schema', specifying the verb 'Fetch' and the resource. It adds scope details ('every change ever made, newest first') and distinguishes it from sibling mutation or schema management tools.
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 explicit guidance on when to use this tool versus alternatives. The description merely states 'Read-only' but does not explain when to prefer this over other tools like list_schema_descriptors or get_fieldgroup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_setup_summaryA
Full read-only inventory of all ExD resources in the sandbox — offers, collections, rules, formulas, strategies, and placements.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly describes as read-only, which is a key behavioral trait. Lists resources included, but does not mention auth requirements (only hinted by access_token param) or potential side effects. With no annotations, this is reasonably 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?
Single sentence front-loading key information ('full read-only inventory'). No wasted words, efficient and clear.
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 adequately explains what the tool returns (inventory of listed resources) but lacks detail on output structure or format. Sufficient for basic understanding 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 has one parameter (access_token) with 0% description coverage. Description adds no meaning about this parameter, such as its purpose or requiredness. Agent must infer from 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?
Description clearly states it retrieves a full read-only inventory of ExD resources, listing specific resource types (offers, collections, etc.). It distinguishes from sibling tools that focus on individual resource 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?
Implies usage for overview via 'full read-only inventory', but no explicit guidance on when to use this tool versus siblings (e.g., for specific resources) 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.
list_offer_itemsA
List all offer items in the ExD catalog with pagination. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states 'Read-only' and 'with pagination', which are key behavioral traits. This is sufficient for a safe read operation, though it could mention the return format or authentication requirements.
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 short sentences with no redundant information. It front-loads the core purpose and key behavioral note ('Read-only'), 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 lack of annotations, output schema, and parameter documentation, the description is too brief. It does not explain return values, error handling, authentication token usage, or pagination behavior beyond stating its existence.
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 3 parameters but 0% description coverage. The description only mentions 'pagination' without mapping to limit/offset. For an AI agent, this provides minimal guidance on how to use the parameters, despite defaults being present 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 action (List), the resource (offer items), and the scope (in the ExD catalog). It distinguishes this tool from siblings like get_offer_item (single item) and list_schema_descriptors (different resource) by specifying 'offer items'.
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 'Read-only' and 'pagination', which provide basic usage context. However, it does not explicitly state when to use this tool over alternatives like get_offer_item or other list tools, nor does it provide exclusions or guidance on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schema_descriptorsB
List all descriptors on the decisioning schema — identity, deprecation, display name overrides, and relationships. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It states 'Read-only', which is a key behavioral trait. However, it does not disclose authentication requirements, rate limits, pagination behavior, or what happens if access_token is missing. For a simple list tool, this is minimally sufficient.
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—just two short statements. Every word serves a purpose. However, it could be slightly more structured by explaining parameters. No wasted text.
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 (list operation, single optional param, no output schema), the description covers the basic purpose and read-only nature. But it lacks details on return format, pagination, or how to interpret results. Adequate but not 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% and the description fails to mention the single parameter 'access_token' at all. The agent receives no guidance on what this parameter is for, its format, or necessity. This is a significant gap.
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', the resource 'descriptors on the decisioning schema', and enumerates specific descriptor types (identity, deprecation, display name overrides, relationships). It also adds 'Read-only' to indicate safety. This distinguishes it from sibling tools like list_offer_items or list_schema_fieldgroups.
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 explicit guidance on when or when not to use this tool. The description implies use for viewing schema descriptors but does not compare to alternatives or mention prerequisites. This is adequate but lacks deeper context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schema_fieldgroupsC
List all tenant fieldgroups compatible with the Offer Item class. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | ||
| include_global | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only states 'Read-only,' which is a single behavioral trait. It does not disclose auth requirements, pagination behavior, rate limits, or any side effects, which are important 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 sentence of 10 words, which is very concise. However, it may be under-specified, trading completeness for brevity. Nonetheless, it is well-structured 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?
Given the low complexity (2 params, no output schema, no annotations), the description is incomplete. It fails to explain the return format, possible pagination, what 'compatible with the Offer Item class' means, or how to interpret results. The agent lacks sufficient context to use the tool effectively without external knowledge.
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%, and the tool description does not explain any parameter semantics. The two parameters ('access_token' and 'include_global') are not described, leaving the agent without guidance on what they do or how to use them.
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 ('all tenant fieldgroups') with a constraint ('compatible with the Offer Item class'). It also notes it is read-only. However, it does not explicitly differentiate from sibling tools like 'get_fieldgroup' or 'create_offer_metadata_fieldgroup', but the purpose is sufficiently clear.
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. It does not mention prerequisites, exclusions, or context for when to choose this over similar tools like 'list_schema_descriptors' or 'get_fieldgroup'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_decisioning_schemaB
Fetch the full resolved Personalized Offer Items decisioning schema — all fieldgroups, OOB fields, and custom tenant fields. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | ||
| include_deprecated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It declares the tool is 'Read-only', which indicates no side effects. However, it does not explain what 'resolved' means, potential performance implications, or authentication requirements beyond the implied access_token parameter.
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 plus 'Read-only') with no unnecessary words. However, it sacrifices parameter documentation for brevity, which limits its utility.
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 two parameters, no output schema, and no annotations, the description should cover parameter meanings and output expectations. It fails to do so, leaving the agent uncertain about how to invoke the tool and what to expect in return.
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%, yet the description provides no information about the two parameters ('access_token', 'include_deprecated'). The user receives no guidance on their purpose, requiredness, or acceptable values, which is a significant deficiency.
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 ('Fetch') and the resource ('full resolved Personalized Offer Items decisioning schema'), including what it contains (all fieldgroups, OOB fields, custom tenant fields). It distinguishes this tool from siblings like 'get_fieldgroup' and 'list_schema_fieldgroups' by specifying the full resolved schema.
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 fetching the full resolved schema, but does not explicitly state when to use it versus alternatives like 'get_fieldgroup' or 'list_schema_fieldgroups'. 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.
parse_csv_and_suggestA
Parse a product/offer CSV, infer XDM types for each column, and suggest schema fields, eligibility rules, and ranking formulas. Always call this first — no data is written.
| Name | Required | Description | Default |
|---|---|---|---|
| csv_text | Yes | Full CSV text content including headers and all rows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly states the tool is read-only ('no data is written') and describes its analysis actions. However, it does not mention error handling for malformed CSV or specific behavior if schema inference fails, which would improve 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, consisting of two short sentences. The first covers purpose and actions, the second provides critical usage guidance. 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?
The description adequately covers purpose and usage but lacks details about the return format of the suggestions (e.g., structure of proposed fields, eligibility rules). Since there is no output schema, the description could be more complete about what the agent can expect from the tool's 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?
The single parameter 'csv_text' has 100% schema description coverage, so the schema already fully defines it. The description adds no additional semantic meaning beyond what the schema provides, resulting in a baseline score of 3.
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 specific actions: parse CSV, infer XDM types, and suggest schema fields, eligibility rules, and ranking formulas. It also explicitly distinguishes itself from sibling tools by stating 'no data is written,' making it clear as a read-only analysis tool.
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 instructs 'Always call this first — no data is written,' providing clear guidance on when to use this tool (before any writing operations) and implying it is a prerequisite step, effectively differentiating from sibling tools that create or modify data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_offer_itemA
Update fields on an existing offer item using JSON Patch operations. Requires confirmed: true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| patches | Yes | ||
| offer_id | Yes | ||
| confirmed | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that updates use JSON Patch and require 'confirmed: true' to execute, but does not cover side effects, idempotency, error handling, or authorization beyond the access_token parameter.
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 fluff, front-loaded with action and method, immediately followed by a key condition.
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 main purpose and a critical precondition, but missing details on return format, error scenarios, and proper usage of the patches array; no output schema to supplement.
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 to 'patches' by mentioning JSON Patch and to 'confirmed' by stating it must be true, but does not explain 'offer_id' or 'access_token', and schema has no descriptions (0% 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?
Description clearly states verb (update), resource (offer item), and method (JSON Patch operations), distinguishing it from sibling tools like get_offer_item and list_offer_items.
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 use for updating offer items but lacks explicit guidance on when to use versus alternatives, such as comparing with get_offer_item for reading or create_* for new items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action, with clear separation between schema field operations, offer management, placement, rules, strategies, and CSV parsing. Even similar tools like deprecate_oob_field and deprecate_schema_field are explicitly differentiated by the type of field.
Tool names follow a consistent verb_noun pattern in snake_case, with verbs like create, get, list, update, deprecate, detach, parse, and bulk_create. The minor variation between get_, list_, and lookup_ is logically consistent with the cardinality of the result (single vs multiple).
At 21 tools, the count is slightly above the ideal 3-15 range, but the complexity of the ExD domain (schema management, multiple resource types, CSV parsing, auditing) justifies this number. Each tool serves a specific purpose without redundancy.
The tool set covers creation and reading for most resources, but lacks delete operations for offers, placements, rules, formulas, and strategies. Update is only available for offers. This leaves notable gaps that may require manual intervention or cause agent failures.
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
Give your AI agents the tools to build, manage, and run automation workflows.
AI-controlled email ops for campaigns, contacts, segments, analytics, and sending.
Let your AI assistant build pages and courses, manage contacts, and run email campaigns in AXL.
Create, manage, and test business rules directly from your AI agent via the DecisionRules platform.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to manage Optimizely DXP deployments through natural language conversations. Supports code deployment, database operations, content synchronization, and environment management across Integration, Preproduction, and Production environments.42242MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to access and execute automated decision services from IBM Decision Intelligence or IBM Automation Decision Services. It exposes deployed decision operations as tools for platforms like Claude Desktop and IBM watsonx Orchestrate.327Apache 2.0
- AlicenseNot gradedqualityAmaintenanceBridges IBM Operational Decision Manager with AI assistants, enabling decisions as tools for integration with platforms like Watson Orchestrate and Claude Desktop.8Apache 2.0
- FlicenseAqualityCmaintenanceEnables autonomous agents to segment audiences, manage subscribers, and trigger Journey Builder workflows in Salesforce Marketing Cloud through natural language.6173
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/khushi-nayal/Decisioning-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server