Skip to main content
Glama

seo_edit_cluster

Edit SEO cluster details: update name, pillar keyword, description, content mix, and brief assignments. Manage membership by replacing the keywordsMeta array with the complete set of keywords.

Instructions

Edit a cluster's name, pillarKeyword, description, keywordsMeta, contentMix, and/or briefAssignments. Housekeeping op — not part of the main flow. At least one field must be supplied. MEMBERSHIP: there is no separate add/remove-member endpoint. Cluster membership is entirely controlled by keywordsMeta — it is a REPLACEMENT array, not a delta/patch. To add a keyword to the cluster, fetch the cluster's current keywordsMeta (seo_list_clusters with detail="full"), append a new entry {keyword, id, volume, kd, intent, relevance, priority, excluded?} (use the SeoScoredKeyword id from seo_list_keywords / seo_list_keyword_ids), and send the WHOLE array back. To remove a keyword, send the array with that entry omitted. Sending a partial array will drop the missing members from the cluster. contentMix must be an object with blog/tool/comparison/landing fractions summing to 1.0 (the server normalizes small rounding drift). briefAssignments is an array of {keyword, type, ...} entries (type ∈ hub|blog|comparison|tool|landing|skip); duplicate keywords are rejected. Example (rename): {"clusterId":"kwc_123","name":"Better cluster name"}. Example (remove a member): fetch full keywordsMeta, filter out the unwanted keyword, then {"clusterId":"kwc_123","keywordsMeta":[...remaining members]}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoNew cluster name
brandIdNoBrand ID (defaults to active brand)
clusterIdYesCluster ID from seo_list_clusters
contentMixNoContent-type distribution {blog, tool, comparison, landing} — fractions must sum to 1.0
descriptionNoNew description (null clears it)
keywordsMetaNoREPLACEMENT array of cluster members: [{keyword, id?, volume?, kd?, intent?, relevance?, priority?, excluded?}, ...]. This is how membership is added/removed — see tool description.
pillarKeywordNoNew pillar keyword (null clears it)
briefAssignmentsNoPer-keyword brief assignments: [{keyword, type, ...}, ...]
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers thoroughly. It discloses the replacement semantics of keywordsMeta, warns that "Sending a partial array will drop the missing members," explains contentMix normalization of rounding drift, notes duplicate rejection in briefAssignments, and illustrates the exact shape of entries. This level of detail goes far beyond a minimal description.

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

Conciseness5/5

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

The description is front-loaded with the purpose, then uses clear headings and examples to organize the lengthy but necessary details. Every sentence contributes actionable information—no filler or repetition—making the length justified and the structure easy to parse for an AI agent.

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

Completeness5/5

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

Given this is a complex tool with 8 parameters, nested objects, and no output schema, the description covers all necessary ground: field semantics, membership management workflow, contentMix constraints, briefAssignments rules, and examples. It also cross-references sibling tools for fetching current state, making it self-sufficient for correct invocation.

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

Parameters5/5

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

Although the schema already has 100% parameter coverage, the description adds meaningful semantics not present in the schema: the exact structure of keywordsMeta entries, how to fetch the current array, the allowed types for briefAssignments, and the behavioral caveat about partial arrays. This enriches the bare schema definitions and clarifies the intent behind each parameter.

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 specific verb and resource: "Edit a cluster's name, pillarKeyword, description, keywordsMeta, contentMix, and/or briefAssignments." It clearly distinguishes this from related cluster operations by framing it as a "Housekeeping op" and focusing on field-level edits, while sibling tools like seo_merge_clusters or seo_delete_cluster handle different actions.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool for membership changes: "there is no separate add/remove-member endpoint," and provides step-by-step instructions referencing seo_list_clusters and seo_list_keywords. It also sets a precondition ("At least one field must be supplied") and includes practical examples for renaming and removing a member, leaving no ambiguity about the intended workflow.

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

Install Server

Other Tools

Latest Blog Posts

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/bitsandtea/postking-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server