Skip to main content
Glama
brilliantdirectories

brilliant-directories-mcp

Official

updateSingleImagePost

Idempotent

Edit an existing single-image post by ID. Modify only the fields you specify, such as title, status, content, and metadata, without affecting other data.

Instructions

Update a post - Update an existing post record by ID. Fields omitted are untouched. Writes live data.

Use when: editing post content, switching from draft to published (post_status=0->1), updating post title/caption, or correcting post metadata. To move a post to a different post type (rare), pass data_id - but validate the new post type is still in the single-image family.

Required: post_id.

Enums: post_status: 0=Draft (saved but not publicly visible), 1=Published (publicly visible on the site).

post_title rename does NOT update post_filename (the URL slug). post_filename is writable — see Rule: URL slug rename for when to suggest a slug update + redirect. Report post_filename from getSingleImagePost when giving the user a URL.

See also: createSingleImagePost (add new), deleteSingleImagePost (remove permanently).

Returns: { status: "success", message: {...updatedRecord} } - the full updated record after changes applied.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
post_idYes
post_titleNo
post_filenameNoPublic URL slug path (e.g. `blog/my-post-slug`). Writable — BD does NOT regenerate the slug when `post_title` changes. See **Rule: URL slug rename** for when to suggest a slug update + redirect.
post_contentNoPost body HTML. Froala body field — see **Rule: Post-body formatting** (structure, `fr-dib fr-fil`/`fr-fir` float + inline `width: 350px`, landscape Pexels images).
post_statusNo0=Not Published, 1=Published, 3=Pending Approval (rare — set when site admin requires manual moderation before posts go live).
post_captionNoDeprecated. Leave unset unless user explicitly references it.
post_priceNo
post_promoNoJobs-only twin of post_price. On job posts, BD requires post_promo to populate post_price too — send post_promo (BD back-fills post_price). Sending post_price alone leaves post_promo null.
post_imageNoFeature image URL. **LANDSCAPE only — verify orientation via `getImageDimensions` per **Rule: Image dimensions** before commit; bare URL, no `?query`, must end in `.jpg`/`.jpeg`/`.png` (WebP/GIF/AVIF skipped pre-tool per the same rule) — see **Rule: Image URLs**.** Query strings (`?w=1600`, `?auto=compress`) get baked into the imported filename and 404. Pair with `auto_image_import=1` to fetch externals into site storage.
post_categoryNoPer-post-type dropdown value, configured in BD admin on the post type's `feature_categories` field. Discover allowed values via `getSingleImagePostFields(form_name=<post type's form_name>)` -> `post_category.choices[].key`. Pass VERBATIM - BD does not trim whitespace, so leading spaces after commas in `feature_categories` persist in the stored option values.
post_tagsNoComma-separated keywords for the post.
auto_geocodeNoSet to `1` to geocode the post's location. Requires the "Pretty URLs with Google Maps" site feature.
post_meta_titleNo
post_meta_descriptionNo
post_meta_keywordsNo
post_locationNoFull or partial street address (Event/Coupon/Job/geo-enabled post types).
latNo
lonNo
state_snNo
country_snNo
post_live_dateNoCreation date stored on the post. Format: `YYYYMMDDHHmmss` in the site's timezone. BD silently truncates other formats, corrupting the value.
post_start_dateNoScheduled publish date — when the post becomes visible on the public site. Set a future timestamp to schedule (like WordPress's future-publish); set a past timestamp for immediate visibility. REQUIRED on Event post types (marks when the event begins); optional but commonly used on blog/article/news post types for scheduled publishing. Format: `YYYYMMDDHHmmss`. **Event post types: event-local wall-clock** — the time as a visitor in the event's city would read it; do NOT convert to the site's own timezone (a 7 PM Brooklyn event on a Los Angeles-timezoned site stores as `20260616190000`). **Scheduled-publish on blog/article/news types: site timezone.** BD silently truncates other formats, corrupting the value. The wrapper auto-derives `start_time` (`"H:MM AM/PM"`) from this value on `createSingleImagePost` / `updateSingleImagePost` so BD's form-edit time-of-day dropdown stays populated — agent never passes `start_time` directly.
post_expire_dateNoEnd/expiration date. Coupon post types use this for expiration; Event post types use it for end time. Format: `YYYYMMDDHHmmss`. **Event post types: event-local wall-clock** (match `post_start_date`). **Coupons and other post types: site timezone.** BD silently truncates other formats, corrupting the value. The wrapper auto-derives `end_time` (`"H:MM AM/PM"`) from this value on `createSingleImagePost` / `updateSingleImagePost` — agent never passes `end_time` directly.
post_videoNoYouTube/Vimeo URL - Video post types only.
post_jobNoEmployment type - Job post types only.
auto_image_importNo**Auto-import images to site storage.** Set `1` when any external image URL field on this single-image post (e.g. `post_image`) holds a URL - BD fetches the image and saves locally. Without the flag, BD stores the URL as-is; images break if source host goes down. **Recommended default when supplying external image URLs**; omit or set `0` only if user explicitly wants the external URL reference. Supports JPG/PNG/GIF/WebP/SVG. Processing delay: several minutes.
_clear_fieldsNoColumn names to clear to empty string. Available on every `update*` operation. Works on base columns AND EAV/`users_meta` rows (rows preserved with `value=""`). To actually clear a field you MUST use this parameter — sending the field with `""` alone is a no-op (BD drops empty values). To remove a `users_meta` row entirely, use `deleteUserMeta`. See **Rule: Clearing fields**. Example: `_clear_fields: ["h2", "hero_link_url"]`.
Behavior5/5

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

Annotations indicate readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description reinforces these with specifics: 'Writes live data', partial update behavior, post_title vs post_filename independence, _clear_fields mechanism, auto_image_import delay, and geocoding. It adds context about side effects (e.g., post_promo backfills post_price) and format requirements (date formats). No contradiction 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.

Conciseness4/5

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

The description is well-structured with sections (summary, use when, required, enums, behavioral notes, see also, returns). It is front-loaded with the purpose. However, it is verbose due to the complexity of the tool (27 parameters). Some content could be condensed, but the structure aids readability.

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 the tool's complexity (27 parameters, no output schema), the description covers essential aspects: enums, side effects, formatting rules, return structure, and references to related rules. It explains how the tool fits into the broader ecosystem (e.g., create/delete siblings). The description of the return value compensates for the lack of an output schema.

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 description coverage is 63%, so the schema already documents many parameters. The description adds value by explaining key behavioral nuances: post_filename is writable independent of title, _clear_fields usage, post_price/post_promo relationship, date formatting, and auto_image_import behavior. It also clarifies enum values for post_status. While not covering every parameter, it significantly enhances understanding beyond the schema.

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 clearly states 'Update a post - Update an existing post record by ID. Fields omitted are untouched. Writes live data.' This specifies the verb (update), resource (single image post), and key behavior (partial update). It also distinguishes from siblings by listing createSingleImagePost and deleteSingleImagePost in the 'See also' section.

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 'Use when:' section provides explicit scenarios: editing post content, switching draft to published, updating title/caption, correcting metadata. It also mentions the rare case of moving to a different post type with caution. Required parameters (post_id) and enum meanings are explained. The description gives clear guidance on when to use this tool versus create or delete.

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/brilliantdirectories/brilliant-directories-mcp'

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