Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REDSTUDIO_API_KEYYesYour RedStudio API key. Create it in the dashboard under API Keys and tick "Site builder access". The key only works for your site.
REDSTUDIO_API_URLNoOptional API base URL. Defaults to the production API (https://example.test/api/v1/external in the example).https://redstudio.ie/api/v1/external
NODE_TLS_REJECT_UNAUTHORIZEDNoSet to 0 for a local server with a self-signed certificate.0

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_siteB

Get site-wide settings: customer, public site URL, global CSS, head JS and rendering settings (GDPR popup, theme colours, robots.txt, maintenance mode, reCAPTCHA public key).

update_siteB

Update site-wide settings. Only provided fields change. global_css applies to every page; head_js is raw HTML injected into (use it for / tags such as fonts and analytics).

set_faviconB

Upload the site favicon (png, ico, svg, jpg, gif, webp; max 2MB) from a local path or URL. Replaces the previous one.

set_logoB

Upload the site logo image used by the CMS templates and email branding. Replaces the previous one.

list_pagesA

List the customer's pages (summary only, no html/css/js). Use get_page for content.

get_pageA

Get one page with full html, css and js. Pass either id or permalink.

create_pageA

Create a page. The permalink becomes the public URL path ("home" for the homepage) and must be unique; reserved paths like shop, post, events, donate are rejected.

update_pageA

Update a page. Only the fields you pass are changed; html, css and js are replaced wholesale when given. A revision is recorded.

delete_pageB

Soft-delete a page by id.

list_componentsA

List the customer's components (summary only, no html/css/js). Use get_component for content.

get_componentA

Get one component with full html, css and js. Pass either id or permalink.

create_componentB

Create a component. Components are site-wide parts (navigation, footer, signature) or reusable blocks.

update_componentA

Update a component. Only the fields you pass are changed; html, css and js are replaced wholesale when given. A revision is recorded.

delete_componentB

Soft-delete a component by id.

list_redirectsA

List path redirects (from_permalink -> to_permalink) for the site.

create_redirectA

Create or replace a redirect from one path to another. Checked before page lookup. http_code 301 (default) or 302.

delete_redirectC

Delete a redirect by id.

list_mediaA

List the customer media library (images, PDFs) with public URLs to use in page HTML.

upload_mediaA

Upload an image or PDF (jpg, png, gif, svg, webp, pdf; max 10MB) from a local file path or a remote URL. Returns the public URL to reference in HTML.

delete_mediaA

Delete a media item by id. Pages referencing its URL will show a broken asset.

get_booking_setupA

Get the booking block setup: timezone, notice period, how far ahead people can book, buffers, weekly hours per day, and meeting types.

update_booking_setupB

Update booking settings and weekly hours. availability maps a day (MONDAY..SUNDAY) to a list of ["HH:MM","HH:MM"] ranges; a day sent replaces that day, [] closes it, days not sent are unchanged.

create_meeting_typeC

Create a bookable meeting type shown in the booking block.

update_meeting_typeB

Update a meeting type; only provided fields change. Set enabled=false to hide it.

delete_meeting_typeA

Delete a meeting type with no bookings (otherwise disable it).

list_postsB

List blog posts (paginated, 15 per page).

get_postB

Get a single blog post by id.

create_postB

Create a blog post. Defaults to draft unless draft=false.

update_postB

Update a blog post. Only provided fields change; tags replace the full set.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 29 tools

Disambiguation5/5

Each tool maps to a distinct resource+action pairing (pages, posts, components, media, redirects, booking, meeting types, site). Even superficially similar tools like set_favicon, set_logo, and upload_media are clearly delineated by their descriptions (site asset vs. media library). An agent can reliably pick the right tool.

Naming Consistency5/5

Uniform verb_noun snake_case pattern throughout: list_/get_/create_/update_/delete_ for CRUD resources and set_/upload_ for singleton assets. No mixing of conventions or casing styles.

Tool Count3/5

29 tools is heavy, exceeding the comfortable 3-15 range. However the count is justified by broad legitimate scope (8 resource domains each needing multiple operations), and the surface is well-organized rather than padded. It leans over-provisioned but each tool roughly earns its place.

Completeness4/5

Pages, components, meeting types, and redirects have solid lifecycle coverage, and site/booking settings are get+update. Notable gaps: no delete_post (posts have no deletion path) and media lacks an update/rename operation, forcing workarounds.