Skip to main content
Glama

campaignstack_add_manual_exclusion_urls

Add LinkedIn profile URLs to a manual exclusion entry. Each URL is validated and normalized. Duplicate URLs within the same exclusion are skipped and reported. Returns per-URL results indicating success or error. Use campaignstack_get_exclusions to find exclusionId values for manual exclusion entries. Use campaignstack_list_signal_agents to find signal agents.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
exclusionIdYes
profileUrlsYesLinkedIn profile URLs to add to the exclusion list
workspaceIdNoWorkspace ID (required for user keys; workspace keys are bound)

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedInput schema / properties / workspaceId / description
      Previous value: -"Defaults to the API key's workspace"New value: +"Workspace ID (required for user keys; workspace keys are bound)"
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that URLs are validated and normalized, that duplicates within the same exclusion are skipped and reported, and that per-URL results are returned. This goes well beyond the sparse annotations (readOnlyHint=false, destructiveHint=false) by describing actual runtime behavior and response shape. It does not claim any irreversible effects, consistent with annotations.

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

Conciseness5/5

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

Four sentences, all informative: action, validation/dedupe behavior, return format, and dependency lookups. No filler or repeated schema information; it front-loads the purpose and keeps related references at the end.

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

Completeness4/5

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

For a mutating tool with no output schema and minimal annotations, the description covers the key behaviors an agent needs: what is added, how input is handled, what the response reports, and where to find required identifiers. It could add a note on workspaceId behavior or invalid-exclusionId errors, but the schema and existing pointers largely cover those gaps.

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

Parameters4/5

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

Schema coverage is 67%, and the description compensates: it clarifies that profileUrls are validated/normalized and duplicates are handled, and it tells the agent where to obtain exclusionId (get_exclusions). The workspaceId behavior ('required for user keys; workspace keys are bound') is left to the schema, but the description adds enough extra meaning to the required parameters.

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

Purpose5/5

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

The description opens with a precise action: 'Add LinkedIn profile URLs to a manual exclusion entry.' It names the resource (manual exclusion entry) and object (URLs), and distinguishes itself from get_exclusions, list_manual_exclusion_urls, and remove_manual_exclusion_url by its add semantics. This is enough for an agent to select it for append operations.

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

Usage Guidelines4/5

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

It explicitly directs the agent to campaignstack_get_exclusions for finding exclusionId values and campaignstack_list_signal_agents for signal agents, covering prerequisite lookups. However, it does not explicitly contrast this with sibling tools like campaignstack_remove_manual_exclusion_url or campaignstack_list_manual_exclusion_urls, so the 'when not to use' guidance is only implied by the name rather than stated.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation3/5

The tool set is organized into recognizable subdomains with unusually detailed, cross-referencing descriptions that often explicitly distinguish neighboring tools (e.g., craft_message vs craft_followup, add_leads_to_list vs add_lead_to_external_list). However, several clusters have genuinely fuzzy boundaries — the five different 'watch' creation tools (signal_agent, signal_watch, search_watch, competitor_watch, company_employee_watch) and queue_leads vs priority_enrich require careful reading to pick correctly, and the sheer 223-tool volume compounds the risk of misselection.

Naming Consistency4/5

All tools follow a consistent campaignstack_<verb>_<noun> snake_case convention, which is remarkable at this scale and makes the set feel predictable. Minor deviations: priority_enrich inverts the adjective-verb word order, whoami is not verb_noun, and semantically identical permanent-destruction operations are split between delete_* (signal_agent, competitor_watch, campaign) and remove_* (signal_watch, company_employee_watch, lead_list), making the lifecycle verb unpredictable across similar resource types.

Tool Count1/5

At 223 tools this is an extreme surface — more than four times the 50+ threshold for a score of 1 — even though the server covers a genuinely broad platform domain (campaigns, workflows, leads, signals, content, integrations, billing, admin, notifications). No agent can effectively navigate this many options in one MCP server, and many clusters (e.g., five watch types, twelve content-post lifecycle tools, ten review tools) could be substantially consolidated.

Completeness4/5

The surface is remarkably exhaustive: nearly every entity has full CRUD plus lifecycle operations (pause/resume, archive/restore, approve/reject), diagnostics, import/export paths, and cross-tool references, leaving few dead ends. Gaps are minor but real: list_webhook_templates references campaignstack_auto_generate_workflow which is not actually in the tool set, and there is no direct first-DM send tool — send_message requires an existing conversationRef while craft_message only generates text.

Resources