Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SHAPELESS_API_KEYNoYour Shapeless API key (e.g. slk_...). Without this, the server uses the key stored by `shapeless login`.
SHAPELESS_BASE_URLNoOverrides the API host. Default is https://shapelessai.com.

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
{}
prompts
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
meA

Who this credential belongs to: email, plan, credit balance. Needs the read scope.

capabilities_listA

Everything Shapeless can do, live or planned, with the REST routes, MCP tools and CLI lines for each and its page. A planned one says how to get the same outcome today and carries a want door; one with a route answers 501 there until it ships. Needs the read scope (over REST it needs no key).

capabilities_wantA

Ask to be told the day a planned capability ships. Bound to this account's sign-in email; add an email or https webhookUrl to tell somewhere else. Ask the human first. Needs the read scope.

tools_listA

The live catalog of the Shapeless studio agent's tools, each with its JSON Schema input and default price. Every one is also its own MCP tool here (generate_image, generate_footage, edit_footage, render_carousel, web_search, x_pulse and the rest); this is the read for what the deployment serves right now. Needs the read scope.

generate_imageA

Make one image from a prompt written as a scene in prose, in the aspect ratio of the platform it is for, optionally conditioned on up to 6 reference_keys from the media library (a logo, a product shot, an earlier image). quality "premium" is the dearer model. Returns the image as a media key with a URL; put the key in posts_create mediaKeys. SPENDS CREDIT: about $0.016 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

generate_footageA

Generate one short AI video clip from a prompt: one continuous camera move over one subject, silent unless with_audio (more per second). The dearest asset there is; try find_footage first. The clip carries a SynthID watermark and needs an AI-generated label where the platform asks. Returns a media key. SPENDS CREDIT: about $0.18 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

edit_footageA

Cut a video in the media library (an upload, a generated or found clip, a render) down to the moments that matter and get a new media key: keep beats or quoted words from probe_media's transcript (keep_text), or seconds (keep_ranges, remove_ranges). The same call reframes to 9:16, tightens pauses, burns in captions, lays music and places overlays, a logo and a look. Run probe_media first; plan: true reads the paper edit back before rendering. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

render_thumbnailA

Package a finished video with its cover: one frame of it (frame_at, in seconds), three to five words, at most one picture. Filed beside the video as -thumbnail.jpg, so a post that carries the video key gets the cover. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

demo_pageA

A real browser opens a URL and performs the steps you name (type, click, hover, scroll, wait); returns an MP4 media key drawn like a screen-recorded demo, with a cursor and camera that follow each action. A page behind a login demos as its login wall. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

render_carouselA

Render your own HTML and CSS slides to a PDF (a LinkedIn document post) plus one PNG per slide (an Instagram carousel), each a media key. Slides are 1080x1350 unless you pass page; self-contained HTML only, no scripts or external URLs; src="media:" places a library image. A render with clipped or unreadable text is refused with a per-element audit. SPENDS CREDIT: about $0.02 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

speakA

Read up to 2000 characters aloud into a WAV in the media library, in a preset voice (Sulafat, Charon, Kore, Achird, Erinome, Schedar) or a character's own voice id from characters_list, with an energy and a style line. Returns its media key. SPENDS CREDIT: about $0.03 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

caption_fileA

Transcribe a video or audio file in the media library (up to 20 minutes) into a word-timed .srt or .vtt. Filed next to the source; the text also comes back inline. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

plan_musicA

Generate an instrumental music bed from a style (genre, mood, instruments, tempo; never an artist) and get its media key with its beat grid (bpm, beat times), so a video can be cut on the beat. Pass the key as edit_footage's music. SPENDS CREDIT: about $0.06 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

probe_mediaA

Look at a video or audio file in the media library: duration, size, frame rate, loudness, a filmstrip of timestamped frames, frames at chosen seconds, the waveform, and for speech every word with its time and the same words as numbered beats. Read it before edit_footage. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

find_photoA

Fetch one licensed real photograph (stock or Pixabay) or a blank meme template into the media library as a media key. Every result carries its licence; credit it when attributionRequired is true. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

find_footageA

Fetch one licensed real video clip (stock, Pixabay, the Internet Archive, NASA, Wikimedia Commons, reaction GIFs) into the media library as a media key. Search in two to four concrete words. B-roll only: no recognizable faces, logos or branded property. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

find_faceA

Fetch a real photograph of a named person into the media library: their freely licensed Wikipedia portrait first, else the photo they publish themselves. Pass about (company or role) so a common name lands on the right person. Static use only; credit it when attributionRequired is true. Costs a fraction of a cent (about $0.007) from credit; budgetUsd (default 2, max 10) caps it and chargedUsd says what it cost. Needs the write scope.

brand_markA

A company's or product's real logo, ready to place: pass the brand name, and its domain when known. Returns the brand: handle, which colour cuts exist and a PNG media key. Small brands are looked up on the web. Costs a fraction of a cent (about $0.007) from credit; budgetUsd (default 2, max 10) caps it and chargedUsd says what it cost. Needs the write scope.

web_searchA

Search the web for current facts, stats or trends. Returns hits (title, url, snippet) and, when available, a synthesized answer grounded in them. SPENDS CREDIT: about $0.015 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

read_pageA

The full clean text of a URL, from a cached copy when the live page blocks robots. Costs a fraction of a cent (about $0.006) from credit; budgetUsd (default 2, max 10) caps it and chargedUsd says what it cost. Needs the write scope.

screenshot_pageA

A real browser renders a URL (JavaScript runs, fonts load) and returns the picture as a media key: the viewport, the full page, or one element by CSS selector, on a phone or laptop viewport. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

record_pageA

A real browser opens a URL and scrolls it smoothly top to bottom; returns an MP4 media key plus its first frame. 8 to 15 seconds reads as one shot. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

capture_tweetA

Draw a public x.com post the way X shows it (avatar, name, text, media still, date, counts) as a 1080px-wide PNG media key, dark or light, optionally under the post it replies to. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

list_page_assetsA

The media a page renders (images, videos, logos, the social preview card), largest first, with real pixel sizes and what each is for. fetch_asset the one you want. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

inspect_page_styleA

A page's visual identity as design tokens: heading and body typefaces, the palette by role as hex, the button radius and its logo, measured as a visitor sees it. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

fetch_assetA

Pull an image, video, audio file or PDF at a public URL into the media library as a media key. A fetched file is reference material until you know you may republish it. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

x_pulseA

An agent searches X live and answers what practitioners are saying about a topic right now, with per-claim citations and engagement evidence. Slow (about 60 seconds) and the dearest search: ask one sharp question. SPENDS CREDIT: about $0.25 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

news_searchA

Fresh, dated journalism on a query from a curated news index, press-release wires filtered out. within_days narrows the window. SPENDS CREDIT: about $0.01 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

concept_searchA

Semantic search for pages and LinkedIn or X posts that mean what you describe rather than match its words: describe a persona saying or feeling something and get real, dated posts and articles. Costs a fraction of a cent (about $0.007) from credit; budgetUsd (default 2, max 10) caps it and chargedUsd says what it cost. Needs the write scope.

community_hotA

The live top of Hacker News or of a subreddit's hot ranking, with scores. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

current_pulseA

How much X is talking about 2 to 6 short phrases right now: 7-day volume, per-day counts, velocity and sample posts for the loudest, with a wave flag when one is big. SPENDS CREDIT: about $0.06 of engine cost a default call, billed with the plan's margin; budgetUsd caps it (default 2, max 10) and chargedUsd says what it cost. Needs the write scope.

related_trendsA

Up to 3 current trends (news, Hacker News, X, refreshed daily) related in meaning to a topic, each with a one-line summary and how current it is. Verify one with web_search before writing on it. Costs a fraction of a cent (about $0.00001) from credit; budgetUsd (default 2, max 10) caps it and chargedUsd says what it cost. Needs the write scope.

find_evidenceA

Semantic search over 322M scholarly works: a claim or topic in, works out with title, year, citation count, venue, url and abstract. Cite only what the abstract supports. Costs a fraction of a cent (about $0.001) from credit; budgetUsd (default 2, max 10) caps it and chargedUsd says what it cost. Needs the write scope.

reference_searchA

Search our judged library of real posts and videos that already performed: give the intent (topic and angle) and get a ranked shortlist with numbers, hook and format. Read the ones you want with reference_read. Costs a fraction of a cent (about $0.00001) from credit; budgetUsd (default 2, max 10) caps it and chargedUsd says what it cost. Needs the write scope.

reference_readA

Read 1 to 3 exemplars from reference_search in full: why they worked, their structure and beats, the transcript and on-screen text, and the recipe to rebuild the format for another brand. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

linkedin_org_lookupA

The verified LinkedIn mention token for a large company, or the companies for a topic, like @Microsoft, ready to paste into a LinkedIn post. Tag only a company it returns. Free: budgetUsd (default 2, max 10) is held while it runs and released. Needs the write scope.

connections_linkA

The one URL the human clicks to connect a social account on a platform (connections_list already carries one per missing platform). Lasts 15 minutes, works only signed in as this account; the platform's own OAuth follows in the browser, then the account shows in connections_list. Needs the write scope.

connections_listA

Connected social accounts (identity only, no tokens), plus connect: one clickable link per platform with no live account, and reconnect on an expired one. Hand the link to the human. Needs the read scope.

jobs_createA

Start a durable job from a goal, optionally with files attached. The run keeps going server-side; returns the job id and its web url to poll or continue. Needs the write scope.

jobs_listA

List jobs with liveness and the web url of each, 200 per page, newest first. A non-null nextCursor means older jobs exist: pass it back as before. Needs the read scope.

jobs_getA

One job in full: transcript, running/idle status, outputs (posts with queue state, media) and its web url. Use jobs_brief when you only need enough to reply. Needs the read scope.

jobs_briefA

Compact context for continuing a conversation: the last messages clipped, an artifact inventory, post statuses, and the web url. Use jobs_get for the full transcript, jobs_continue to reply. Needs the read scope.

jobs_tailA

Watch a job's run: replays its events from the cursor, then follows live until the run ends, 60 seconds pass, or 200 events. Returns {live, cursor, events} - resume with that cursor. {live: false} means no run stream to attach to; the job may still have finished work, so read jobs_get. Needs the read scope.

jobs_continueA

Send another message to a job, optionally with files attached - also the way to resume a stuck or failed run with full history. Needs the write scope.

jobs_runA

Press Run on the job's newest proposed plan - the approval click a headless caller has nobody to make. Use it after a turn ended with a plan waiting; deliverables still land as proposed drafts. Needs the write scope.

jobs_stopA

Stop a running job. Needs the write scope.

posts_listA

The post queue: proposed drafts, scheduled posts, published history. Needs the read scope.

posts_getA

One post's live state, with the url that opens it in the calendar for the human. Needs the read scope.

posts_approveA

PUBLISHES CONTENT: approving moves proposals to the schedule, and they will go out. Needs the publish scope.

posts_dismissA

Cancel posts: proposed, scheduled, failed or handed-off. Nothing already publishing or published is touched. Pass the user's reason when they gave one; it teaches the agent their taste. Needs the write scope.

posts_publishA

PUBLISHES CONTENT NOW: pushes a queued post to the platform immediately. Needs the publish scope.

posts_createA

PUBLISHES CONTENT: puts a post you wrote on the rail for one connected account (connections_list), at a time, in the account's next free queue slot, or now. Read platforms_list first for the platform's limits and settings schema. Free plan: 10 posts a day (402 free_daily_cap says when the day resets). Needs the publish scope.

platforms_listA

Every platform the rail posts to: text limit, media rules, whether documentTitle is required, first-comment support, and the JSON Schema for its settings. Read it before posts_create. Works with any key (read scope or none).

characters_listA

The account's actors: who they are, what their voice is, and which parts are locked. voiceDescription is the casting direction a designed voice was written from - read it before designing another one, and reuse the actor that already fits. Needs the read scope.

characters_voiceA

SPENDS CREDIT: gives an actor a voice. description designs one from casting direction (kept on the character, so later runs can reuse the actor); sampleMediaKey clones a real voice and requires consent: true - the user's own attestation that they hold the rights. Returns the voice id, a preview clip and what it cost. Needs the write scope.

brain_onboardingA

What is still open in Brand Memory, as the questions a human answers, with hints. Ask the human, write the answers as markdown under the question headings with brain_write at the item's path, then call again until open is empty. Needs the read scope.

brain_treeB

Brand Memory's file list with the completion ring. Needs the read scope.

brain_readB

Read one Brand Memory file. Needs the read scope.

brain_writeB

Write one Brand Memory file (.md paths only) - the agent grounds future posts in it. Needs the write scope.

brain_importA

Import a local .md, .txt, .pdf or .docx document into Brand Memory. Needs the write scope.

assets_listA

The media library: brand uploads and generated media. Needs the read scope.

assets_uploadA

Upload a local image, video, audio file or PDF to the brand library; returns its mediaKey. For a file the chat should see, attach it to jobs_create/jobs_continue instead. Needs the write scope.

agents_listA

The agent roster (the API calls them strategies). Needs the read scope.

agents_saveA

Create an agent (no id) or edit one (with id). Setting autoPublishPosts arms publishing without human approval and needs the publish scope; everything else needs write.

agents_wakeA

PUBLISH-SCOPED: wake an agent now; it plans and proposes (or with auto-publish, posts) immediately. Returns the conversation it woke into and its web url. Needs the publish scope.

Prompts

Interactive templates invoked by user choice

NameDescription
continueContinue a Shapeless conversation from where it left off

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 65 tools

Disambiguation3/5

Most tools have distinct resource+action targets, but the search/pulse family (web_search, news_search, concept_search, x_pulse, current_pulse, related_trends, community_hot, find_evidence, reference_search) overlaps heavily in purpose, and brain_*/jobs_* clusters have several near-neighbors (jobs_get vs jobs_brief vs jobs_tail). The rich descriptions help distinguish them, but an agent could easily misselect among the many semantic-search variants.

Naming Consistency4/5

Nearly everything is snake_case with two systematic patterns: resource_verb for scoped operations (posts_create, brain_read, jobs_get, characters_voice) and verb_noun for generic actions (generate_image, find_photo, edit_footage, render_carousel). Minor outliers like 'me', 'speak' and 'plan_music' break the pattern slightly, but the convention is largely predictable.

Tool Count2/5

65 tools is a very heavy surface, well past the point where an agent can hold the catalog in mind. Given the platform's breadth (generation, search, publishing, Brand Memory, jobs, agents) many tools do earn their place, but the count still demands excessive selection effort.

Completeness5/5

The surface covers full lifecycles across every domain: posts (list/get/create/approve/dismiss/publish), jobs (create/list/get/brief/tail/continue/run/stop), Brand Memory (read/write/tree/import/onboarding), agents and media assets, plus generation, editing, transcription and rich search. No obvious dead ends.

Maintenance

ActivityActive
ResponsivenessNo issues