# DreamAgent

> Build and deploy websites, Telegram and Discord bots from chat via the DreamAgent platform.

- name: io.github.nivethaug/dreamagent
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 94/100
- quality: 66/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.nivethaug%2Fdreamagent
- tools: https://api.protogrid.dev/v1/servers/io.github.nivethaug%2Fdreamagent/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "dreamagent": {
      "type": "http",
      "url": "https://mcp.dreamagent.cloud/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 85
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% ~updated-66d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 66/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 4 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 24 of 24 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: dreamagent_list_projects (idempotentHint); dreamagent_list_global_integrations (idempotentHint); dreamagent_list_project_env (idempotentHint); …
- pass `tools.token_cost`: about 6,854 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 44 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 24, about 6,854 tokens to load them all
- tool set hash: c4f86f5d67b2d7fdfdd079b7d46c8067
- tools last changed: 2026-10-15T12:51:09.076Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.nivethaug/dreamagent.svg)](https://protogrid.dev/servers/io.github.nivethaug/dreamagent)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-15 `dreamagent_create_project` changed (description, inputSchema)
  - before: WRITE ACTION — creates a new DreamAgent project (website, Telegram bot, Discord bot, or AI agent). Use ONLY when the user clearly asks to create/build a new project; not for questions about what to build. CONFIRM BEFORE CALLING — never create on the first mention. In ONE message, present and get the user's explicit go-ahead for: 1. The credential: run dreamagent_list_global_integrations first. If several telegram/discord credentials are saved, list them (id + title) and ask which to use. If exactly one is saved, state which one you will use. Never pick silently. 2. The plan: name, type, and the final description exactly as you will submit it (this is the Prompt Assistant's recommendation summary). Call this tool only after the user confirms. CREATION IS ASYNCHRONOUS: after calling, check dreamagent_get_project_status repeatedly until the project is 'ready' or 'failed' (bots ~2-5 min, websites longer). CREDENTIALS: raw bot tokens are never accepted in chat or as inputs. For Telegram/Discord bots you MUST pass bot_token_integration_id — the ID of a saved credential from dreamagent_list_global_integrations. If none is saved, direct the user to dreamagent.cloud → Settings → Global Integrations. Other saved keys can be imported via global_integration_ids. Credentials are stored as project secrets and are never exposed back. DESCRIPTION = the refined creation brief. Act as a Creative Director / Product Manager, not an architect. Create a concise but complete description of WHAT should be built: - product vision and target audience - user experience and core functionality - design/tone direction - important features and behavior - final expected result Do not include implementation details such as: - technology stack - architecture - database/API implementation - authentication implementation - deployment - CI/CD - testing commands Infer reasonable defaults when missing details are non-critical. Ask for clarification only when missing information materially affects the requested functionality, scope, credentials, or expected result. Prefer the following structure and constraints for each project type, but do not override explicit user requirements: Website: - Project Vision - Design Style - Pages - Hero Experience - Core Features - UI Components - Mobile Experience - Final Expectation - Prefer up to 4 pages unless the user clearly requires more. Telegram bot: - Bot Purpose - Commands - User Flow - Optional AI Features - Integrations when required - Final Expectations - Prefer a compact command set; always include /start and /help unless the user's explicit requirements conflict. Discord bot: - Bot Purpose - Slash Commands - Events - Permissions - Optional AI Features - Final Expectations - Prefer a compact command set; include /help where appropriate. Agent (recurring/scheduled automation with OAuth actions): - Purpose (what it monitors or automates) - Data Sources (which connected OAuth services: YouTube, GitHub, Discord, Notion, X, Google Sheets, Slack — or public APIs) - Schedule (e.g., every 5 minutes / hourly / daily at 9am) and/or Event Triggers (incoming webhook) - Conditions (when to act — thresholds, keywords, state changes) - Delivery Channels (Telegram, Discord, Slack, email — optional) - Final Expectation - Use concrete schedules; note that agents keep persistent state between runs and can call any connected OAuth integration. - Agents do NOT need a bot token unless they deliver via Telegram/ Discord (then a saved credential is required as for bots). SUPERPOWERS: the account may have ready-made AI tools enabled (song/video/image generation, voiceover, lip sync, voice clone, transcription, media processing, PDF tools). If the requested product clearly benefits from one (e.g. an AI song generator website), reflect the FEATURE in the description — DreamAgent wires the tool integration automatically at build time. Check what is enabled with dreamagent_list_superpowers. Do NOT add implemen
  - after: WRITE ACTION — creates a new DreamAgent project (website, Telegram bot, Discord bot, or AI agent). Use ONLY when the user clearly asks to create/build a new project; not for questions about what to build. CONFIRM BEFORE CALLING — never create on the first mention. In ONE message, present and get the user's explicit go-ahead for: 1. The credential: run dreamagent_list_global_integrations first. If several telegram/discord credentials are saved, list them (id + title) and ask which to use. If exactly one is saved, state which one you will use. Never pick silently. 2. The plan: name, type, and the final description exactly as you will submit it (this is the Prompt Assistant's recommendation summary). Call this tool only after the user confirms. NOTE: this tool's schema includes a `confirm` parameter. If YOUR client rejects a `confirm` field as "not allowed by the schema", your cached tool list is STALE (the parameter exists server-side) — tell the user to remove and re-add the DreamAgent connector, then start a new chat. CREATION IS ASYNCHRONOUS: after calling, check dreamagent_get_project_status repeatedly until the project is 'ready' or 'failed' (bots ~2-5 min, websites longer). CREDENTIALS: raw bot tokens are never accepted in chat or as inputs. For Telegram/Discord bots you MUST pass bot_token_integration_id — the ID of a saved credential from dreamagent_list_global_integrations. If none is saved, direct the user to dreamagent.cloud → Settings → Global Integrations. Other saved keys can be imported via global_integration_ids. Credentials are stored as project secrets and are never exposed back. DESCRIPTION = the refined creation brief. Act as a Creative Director / Product Manager, not an architect. Create a concise but complete description of WHAT should be built: - product vision and target audience - user experience and core functionality - design/tone direction - important features and behavior - final expected result Do not include implementation details such as: - technology stack - architecture - database/API implementation - authentication implementation - deployment - CI/CD - testing commands Infer reasonable defaults when missing details are non-critical. Ask for clarification only when missing information materially affects the requested functionality, scope, credentials, or expected result. Prefer the following structure and constraints for each project type, but do not override explicit user requirements: Website: - Project Vision - Design Style - Pages - Hero Experience - Core Features - UI Components - Mobile Experience - Final Expectation - Prefer up to 4 pages unless the user clearly requires more. Telegram bot: - Bot Purpose - Commands - User Flow - Optional AI Features - Integrations when required - Final Expectations - Prefer a compact command set; always include /start and /help unless the user's explicit requirements conflict. Discord bot: - Bot Purpose - Slash Commands - Events - Permissions - Optional AI Features - Final Expectations - Prefer a compact command set; include /help where appropriate. Agent (recurring/scheduled automation with OAuth actions): - Purpose (what it monitors or automates) - Data Sources (which connected OAuth services: YouTube, GitHub, Discord, Notion, X, Google Sheets, Slack — or public APIs) - Schedule (e.g., every 5 minutes / hourly / daily at 9am) and/or Event Triggers (incoming webhook) - Conditions (when to act — thresholds, keywords, state changes) - Delivery Channels (Telegram, Discord, Slack, email — optional) - Final Expectation - Use concrete schedules; note that agents keep persistent state between runs and can call any connected OAuth integration. - Agents do NOT need a bot token unless they deliver via Telegram/ Discord (then a saved credential is required as for bots). SUPERPOWERS: the account may have ready-made AI tools enabled (song/video/image generation, voiceover, lip sync, voice clone, transcription, media processing,
- 2026-10-14 `dreamagent_screenshot_website` changed (title, description) **meaning changed**
  - before: WEBSITE PROJECTS ONLY — capture a screenshot of any public web page by URL. Renders the page with DreamAgent's server-side headless browser and returns the PNG as an MCP image content block (for direct visual inspection) PLUS a public URL you can view, embed, or compare. Use it to: check a website project's live pages after edits or deploys, review a layout for UX issues, capture a design reference the user points at, or verify a page renders correctly. No project id needed — just the URL. Only public http(s) pages; private/internal hosts are rejected.
  - after: WEBSITE PROJECTS ONLY — capture a screenshot of a DreamAgent-hosted page by URL: a deployed project's domain (e.g. my-app.dreamagent.cloud or a connected custom domain) or dreamagent.cloud itself. Best for checking a project's live pages after edits or deploys and reviewing layouts — returns the PNG as an MCP image content block PLUS a public URL. Non-DreamAgent URLs are rejected (this is enforced both here and by the host firewall). No project id needed — just the URL. Only public http(s) pages; private/internal hosts are rejected.
- 2026-10-14 `dreamagent_cancel_chat` changed (title)
- 2026-10-14 `dreamagent_get_edit_progress` changed (title)
- 2026-10-14 `dreamagent_get_chat_status` changed (title)
- 2026-10-14 `dreamagent_release_project_lock` changed (title)
- 2026-10-14 `dreamagent_create_session` changed (title)
- 2026-10-14 `dreamagent_list_sessions` changed (title)
- 2026-10-14 `dreamagent_chat` changed (title)
- 2026-10-14 `dreamagent_get_project_status` changed (title)

Full history: https://api.protogrid.dev/v1/servers/io.github.nivethaug%2Fdreamagent/changes

## Remotes

- https://mcp.dreamagent.cloud/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (24)

- `dreamagent_build_publish`: WRITE ACTION — build & publish a DreamAgent project: rebuilds the
app from the current source files and pushes the new version live.
Use after finishing file edits (dreamagent_write_file) so the user's
changes go live. Pro/paid accounts only.

CONFIRM BEFORE CALLING — tell the user the project will be rebuilt
and redeployed, and call only with confirm=true after they agree.

ASYNCHRONOUS: kick-off returns immediately; check
dreamagent_get_project_status until the project reports 'ready'.
- `dreamagent_cancel_chat`: DESTRUCTIVE — stops an AI edit that is currently running. Use ONLY
when the user explicitly asks to stop/cancel the active edit.
After cancellation, do NOT claim the requested change was
completed — report that it was stopped.

Returns 'Cancellation requested: <backend message>' — e.g. 'Query
cancelled', 'Cancellation requested' (durable run), or 'No active
query found'. Afterwards poll dreamagent_get_chat_status /
dreamagent_get_edit_progress until run_status reports 'cancelled'.
- `dreamagent_chat`: WRITE ACTION — builds, modifies, or fixes an EXISTING project with
a natural-language instruction. Use ONLY when the user clearly asks
for a change ("add X", "fix Y", "change the theme"). If the user is
only asking for advice, analysis, review, or suggestions ("what
could be improved?", "review my bot"), do NOT call this — answer
from the project's info instead; a review request is not an edit.

Describe ONLY the desired change — DreamAgent's AI automatically
handles code, tests, rebuild, and redeployment. Completed changes
are saved and committed automatically.

ASYNCHRONOUS: returns immediately with the session_key; monitor
with dreamagent_get_edit_progress (or dreamagent_get_chat_status
with the returned session key) until a terminal state. Report
success only after run_status reaches 'completed'. Edits consume
the user's AI credits.

ERRORS (actual returns): failures come back as text starting with
'ERROR:'. If the edit was rejected before starting, the text says
'the edit was NOT started' plus the reason — HTTP 402 insufficient
credits, 409 another edit already active, 423 session lock held by
another session, 404 wrong project id, 401 no account connected.
Treat the edit as failed/cancelled only when a status tool says so.

ONE EDIT AT A TIME: never start another modification on the same
project while one is running — check progress first and wait.

SUPERPOWERS: projects can use the account's enabled AI tools
(song/video/image generation, voiceover, lip sync, voice clone,
transcription, media processing, PDF tools). If the user asks to
add or use one ("add song generation", "generate an image feature"),
simply include that in the message — DreamAgent's agent knows the
enabled tools and wires the integration, UI and job handling
automatically. Check the catalog with dreamagent_list_superpowers;
if a tool is disabled, direct the user to dreamagent.cloud ->
Superpowers to enable it first.
- `dreamagent_commit_push`: WRITE ACTION — commit ALL pending changes in a DreamAgent project and
push them to its private GitHub repo. The commit gets its own entry in
the project's session history and version history, so the user can
restore/revert to it in the DreamAgent dashboard.

Use it to (a) commit several MCP writes/deletes as ONE version — write
and delete with auto_commit=false first — or (b) retry a commit after a
failure. Chat-driven edits commit automatically; this tool is for
direct file changes made through MCP.

CONFIRM BEFORE CALLING — show the user what is pending (one
dreamagent_get_file_diff per touched file) and call only with
confirm=true after they agree.
- `dreamagent_create_project`: WRITE ACTION — creates a new DreamAgent project (website, Telegram
bot, Discord bot, or AI agent). Use ONLY when the user clearly asks
to create/build a new project; not for questions about what to build.

CONFIRM BEFORE CALLING — never create on the first mention. In ONE
message, present and get the user's explicit go-ahead for:
1. The credential: run dreamagent_list_global_integrations first.
   If several telegram/discord credentials are saved, list them
   (id + title) and ask which to use. If exactly one is saved,
   state which one you will use. Never pick silently.
2. The plan: name, type, and the final description exactly as you
   will submit it (this is the Prompt Assistant's recommendation
   summary). Call this tool only after the user confirms.

NOTE: this tool's schema includes a `confirm` parameter. If YOUR
client rejects a `confirm` field as "not allowed by the schema",
your cached tool list is STALE (the parameter exists server-side) —
tell the user to remove and re-add the DreamAgent connector, then
start a new chat.

CREATION IS ASYNCHRONOUS: after calling, check
dreamagent_get_project_status repeatedly until the project is
'ready' or 'failed' (bots ~2-5 min, websites longer).

CREDENTIALS: raw bot tokens are never accepted in chat or as inputs.
For Telegram/Discord bots you MUST pass bot_token_integration_id —
the ID of a saved credential from dreamagent_list_global_integrations.
If none is saved, direct the user to dreamagent.cloud → Settings →
Global Integrations. Other saved keys can be imported via
global_integration_ids. Credentials are stored as project secrets
and are never exposed back.

DESCRIPTION = the refined creation brief. Act as a Creative
Director / Product Manager, not an architect.

Create a concise but complete description of WHAT should be built:
- product vision and target audience
- user experience and core functionality
- design/tone direction
- important features and behavior
- final expected result

Do not include implementation details such as:
- technology stack
- architecture
- database/API implementation
- authentication implementation
- deployment
- CI/CD
- testing commands

Infer reasonable defaults when missing details are non-critical.
Ask for clarification only when missing information materially
affects the requested functionality, scope, credentials, or
expected result.

Prefer the following structure and constraints for each project
type, but do not override explicit user requirements:

Website:
- Project Vision
- Design Style
- Pages
- Hero Experience
- Core Features
- UI Components
- Mobile Experience
- Final Expectation
- Prefer up to 4 pages unless the user clearly requires more.

Telegram bot:
- Bot Purpose
- Commands
- User Flow
- Optional AI Features
- Integrations when required
- Final Expectations
- Prefer a compact command set; always include /start and /help
  unless the user's explicit requirements conflict.

Discord bot:
- Bot Purpose
- Slash Commands
- Events
- Permissions
- Optional AI Features
- Final Expectations
- Prefer a compact command set; include /help where appropriate.

Agent (recurring/scheduled automation with OAuth actions):
- Purpose (what it monitors or automates)
- Data Sources (which connected OAuth services: YouTube, GitHub,
  Discord, Notion, X, Google Sheets, Slack — or public APIs)
- Schedule (e.g., every 5 minutes / hourly / daily at 9am) and/or
  Event Triggers (incoming webhook)
- Conditions (when to act — thresholds, keywords, state changes)
- Delivery Channels (Telegram, Discord, Slack, email — optional)
- Final Expectation
- Use concrete schedules; note that agents keep persistent state
  between runs and can call any connected OAuth integration.
- Agents do NOT need a bot token unless they deliver via Telegram/
  Discord (then a saved credential is required as for bots).

SUPERPOWERS: the account may have ready-made AI tools enabled
(song/video/image generation, voiceover, lip sync, voice clone,
transcription, media processing, PDF tools). If the requested
product clearly benefits from one (e.g. an AI song generator
website), reflect the FEATURE in the description — DreamAgent
wires the tool integration automatically at build time. Check
what is enabled with dreamagent_list_superpowers. Do NOT add
implementation details about how the tool is called.
- `dreamagent_create_session`: Create a new development session for a project — a separate
conversation with its own context. Use when the user wants to start
a distinct development topic. A new session does NOT replace or
affect the existing project — earlier sessions remain available.
- `dreamagent_delete_file`: WRITE ACTION — delete one source file from a DreamAgent project.
Hidden/credential files (.env, .git, keys) are rejected. By default the
deletion is immediately committed and pushed (so it is recorded in
session history & version history) — deleted files stay recoverable
via git history / version restore.

CONFIRM BEFORE CALLING — tell the user which file will be deleted and
call only with confirm=true after they agree.
- `dreamagent_design_mode`: WRITE ACTION — redesign a website project's UI to match a design image.
Website projects only.

The user provides an image (screenshot, mockup, AI-generated design)
and instructions. You generate the image (e.g. DALL-E), encode it as
base64, and send it here. DreamAgent's AI will read the image and
redesign the project's frontend to match.

CONFIRM BEFORE CALLING — show the user:
1. The project being redesigned
2. The design instructions
Then call only with confirm=true after they agree.
- `dreamagent_edit_file`: WRITE ACTION — make SMALL targeted changes to an EXISTING file in a
DreamAgent project via exact search/replace. PREFERRED over
dreamagent_write_file for editing existing files: you send only the
changed fragments (never the whole file) — cheaper, immune to payload
size/safety blocks in the calling client, and cannot corrupt unchanged
code. Use dreamagent_write_file only to CREATE files or for full rewrites.

Read the file first (dreamagent_read_file) and copy each 'find' text
EXACTLY as it appears — whitespace and indentation must match. All edits
are validated BEFORE anything is saved; if any 'find' fails to match,
the file is left untouched and the error tells you which edit and why.

CONFIRM BEFORE CALLING — show the user the target file and each planned
find→replace change, then call only with confirm=true.
- `dreamagent_get_chat_status`: Check the progress and final status of a specific AI development
session using its session key. Use this to monitor an asynchronous
edit until it completes, fails, or is cancelled — keep checking
until a terminal state. The session key comes from dreamagent_chat
or dreamagent_list_sessions and is an identifier, not a secret.

Returns (actual fields): 'active=', 'run_status=', 'next_after='
(cursor for the next check), optional 'new_output:' (text produced
since the last check), then either "Still working — poll again" or
a terminal 'done=true' line: finished (with the final output tail),
'the edit was NOT started: <reason>' (rejected early, e.g. HTTP 402
insufficient credits), or 'stream error' (the connection to the run
broke — the server-side run may still have finished; verify with
dreamagent_get_edit_progress).
run_status values: queued | running | cancel_requested | completed |
failed | cancelled | interrupted | unknown.
- `dreamagent_get_edit_progress`: Check the latest AI edit progress for a project using its project
identifier — no session key needed: the project id retrieves the
session holding the latest edit. Use when the user asks whether
their edit is finished, when the session key isn't available
(e.g. a new conversation), and BEFORE starting any new edit.

Returns (actual fields): 'session_key=' (the identifier of the
session this progress comes from), 'edit_active=', 'run_status=',
'chunks=' (output size so far), optional 'recent_output (tail):',
and a terminal 'result:' line: finished (with the final output
tail), 'the edit was NOT started: <reason>' (rejected early,
e.g. HTTP 402 insufficient credits), 'stream error', or 'no run is
currently active'.
run_status values: queued | running | cancel_requested | completed |
failed | cancelled | interrupted | unknown.

Distinct from dreamagent_get_project_status: project status =
creation/deployment state (creating/ready/failed); edit progress =
current AI modification state; chat status (dreamagent_get_chat_status)
monitors one specific session by its session key. If edit_active is
true, do NOT launch another edit for the same project.
- `dreamagent_get_file_diff`: Git diff of one project file against the last commit — shows the
pending (not yet live) changes. Free, read-only. Use after edits to
review exactly what changed before rebuilding.
- `dreamagent_get_project_status`: Check a project's creation/deployment state. Terminal states are
'ready' (built and live) and 'failed'; while a project is being
created it reports progressive phases such as 'creating',
'building', 'deploying', or 'ai_provisioning' — treat any
non-terminal status as still building. Use after
dreamagent_create_project (poll until ready or failed) and
whenever the user asks whether a project is ready or live.

NOTE: this reports the PROJECT's build/deploy state — NOT AI edit
progress. For edits use dreamagent_get_edit_progress.
- `dreamagent_list_commits`: Version history of a DreamAgent project — recent commits (hash,
message, status, timestamp) from its persistent commit log, newest
first. Use it to review what changed and when; the user can restore
any version from the DreamAgent dashboard version-history UI (mention
the short hash so they can find it).
- `dreamagent_list_files`: List the file tree of a DreamAgent project (source files only —
hidden files like .env are excluded). Use before reading or editing
a file to find the correct path.
- `dreamagent_list_global_integrations`: List the user's saved credentials (Global Integrations).

ALWAYS call this before creating any bot project or asking the user
for a token/API key. Saved credentials are referenced BY ID when
creating projects: bot_token_integration_id for bot tokens,
global_integration_ids for other keys. Secret values are never
returned — only IDs and metadata (type, key name, verified, title).

If nothing suitable is saved: direct the user to dreamagent.cloud →
Settings → Global Integrations to add it (one-time, verified,
reusable). Never ask the user to paste tokens in chat.
- `dreamagent_list_project_env`: List a project's environment variables with their details.

Shows each key's name, title, description, docs URL, and category —
values are masked (secrets are never returned). Use to see which
integrations a project already has before adding more, or to answer
"what keys does my project have?".

These are PROJECT-SPECIFIC variables — distinct from the user's
Global Integrations — API-key credentials and connected OAuth services (dreamagent_list_global_integrations).
- `dreamagent_list_projects`: List the user's DreamAgent projects.

Returns each project's name, ID, type, status, and live domain (when
available). Use when the user asks to see, find, select, or check their
projects — and ALWAYS before modifying a project when its ID is not
already known (resolve names to IDs here first).
- `dreamagent_list_sessions`: List a project's development sessions (conversation threads).
Returns each session's identifier (session key) and context so you
can select, continue, or monitor a specific development session —
pass the session key to dreamagent_chat to continue that thread or
to dreamagent_get_chat_status to monitor it. The session key is a
reference used to address a session; it is not an authentication
credential or a secret.
- `dreamagent_list_superpowers`: List DreamAgent Superpowers — the account's ready-made AI tools
(song/video/image generation, voiceover, lip sync, voice clone,
transcription, media processing, PDF tools) with their enabled
state and beta pricing. Read-only; no credits consumed.

Use when the user asks what AI tools/superpowers are available,
whether a specific tool is enabled, or what they can add to a
project. Tools shown as enabled can be used from ANY of the
user's projects through dreamagent_chat (just ask in the message).
- `dreamagent_read_file`: Read a source file from a DreamAgent project. file_path is the
project-relative path (from dreamagent_list_files), e.g.
"src/pages/Home.tsx" or "telegram/main.py". Hidden files (.env) and
binaries are not readable.
- `dreamagent_release_project_lock`: RECOVERY-ONLY — releases a project's editing lock when a stale or
abandoned session blocks new modifications. NOT a normal editing
step, and NEVER a way to bypass an actively running edit.

The lock state is not machine-readable from here: to judge staleness,
check dreamagent_get_edit_progress — if no edit is active but
dreamagent_chat still fails with a lock error, the lock is stale.
Confirm with the user before releasing if they may have the project
open elsewhere.
- `dreamagent_screenshot_website`: WEBSITE PROJECTS ONLY — capture a screenshot of a DreamAgent-hosted
page by URL: a deployed project's domain (e.g. my-app.dreamagent.cloud
or a connected custom domain) or dreamagent.cloud itself. Best for
checking a project's live pages after edits or deploys and reviewing
layouts — returns the PNG as an MCP image content block PLUS a public
URL. Non-DreamAgent URLs are rejected (this is enforced both here and
by the host firewall).

No project id needed — just the URL. Only public http(s) pages;
private/internal hosts are rejected.
- `dreamagent_write_file`: WRITE ACTION — overwrite or create one source file in a DreamAgent
project with the exact content given. For CHANGING an existing file,
prefer dreamagent_edit_file (small targeted find→replace edits — no
need to send the whole file). By default the write is
immediately committed and pushed to the project's GitHub repo and
recorded in its session history & version history (so the user can
restore/revert). Changes go live after the project is rebuilt
(dreamagent_build_publish).

CONFIRM BEFORE CALLING — in ONE message show the user: the target
path and a summary of the change, then call only after they agree.
Never write on the first mention.

MULTI-FILE EDITS: pass auto_commit=false on each write, then call
dreamagent_commit_push once at the end — one commit and one history
entry for the whole batch.

GUARDS (enforced server-side, the same as the in-app code editor):
path stays inside the project, hidden/credential files (.env, .git,
keys) are rejected, content is scanned for malware/shell signatures
and blocked, 2MB size cap. Failed scans return the reason.

The user can undo damage by editing in the DreamAgent editor or
restoring a previous version from version history — still, prefer
precise minimal diffs.
