Tools
Every MCP tool, generated from the live tool list.
MCP tools
The 109 tools an agent gets over MCP. Each one calls a single API endpoint in-process, with the same permission checks, and returns that endpoint's response. tools/list shows only the tools the caller's role can use.
Remote: POST http://api.webly.ai/v1/mcp with Authorization: Bearer wb_… or OAuth. Local: npm run mcp with WEBLY_API_KEY set. MCP always needs a key or a signed-in person; person tools are hidden from API-key connections. READ tools change nothing, WRITE tools create or change something, and DELETE tools delete something or take it offline.
Websites
READ
list_websites{ limit?, cursor? }WRITE
create_website{ name, kind?, slug?, subdomain?, description? }READ
get_website{ websiteId }WRITE
update_website{ websiteId, name?, slug?, description? }WRITE
rename_subdomain{ websiteId, label }DELETE
delete_website{ websiteId }WRITE
restore_website{ websiteId }WRITE
start_website_transfer{ websiteId, toOrganizationId? }WRITE
cancel_website_transfer{ websiteId }READ
get_pending_transfer{ websiteId }WRITE
accept_website_transfer{ code }WRITE
create_claim_code{ none }WRITE
claim_anonymous_site{ token }Source and versions
WRITE
deploy_files{ websiteId, files?, deletes?, replace?, expectedHeadVersion?, message? }READ
get_source_summary{ websiteId }READ
list_source_files{ websiteId, target?, version?, prefix? }READ
read_source_files{ websiteId, paths, target?, version? }WRITE
delete_source_files{ websiteId, paths, expectedHeadVersion?, message? }READ
list_versions{ websiteId, limit?, cursor? }READ
list_changes{ websiteId, from?, to? }WRITE
restore_head{ websiteId, to }Deployments
READ
get_deployment_status{ websiteId, target?, version? }WRITE
ensure_deployment{ websiteId, target?, version? }Framework source
WRITE
acquire_edit_lease{ websiteId }READ
list_source_tree{ websiteId, type?, nameGlob?, lines?, target?, version? }READ
read_source_file{ websiteId, files, target?, version? }WRITE
put_source_file{ websiteId, leaseToken, file, content, message? }WRITE
str_replace{ websiteId, leaseToken?, files, dryRun? }DELETE
delete_source_file{ websiteId, leaseToken, file }WRITE
set_page_route{ websiteId, leaseToken, page, route }WRITE
set_metadata{ websiteId, leaseToken, page?, metadata }READ
search_source{ websiteId, pattern, isRegex?, caseSensitive?, nameGlob?, type?, contextLines?, maxMatchesPerFile?, filesOnly?, target?, version? }READ
diff_source_file{ websiteId, type, name?, from?, to? }READ
check_head{ websiteId, target?, version? }Publishing
WRITE
rebuild_website{ websiteId, target?, version? }WRITE
publish_website{ websiteId }DELETE
unpublish_website{ websiteId }WRITE
rollback_website{ websiteId, version }Analytics
READ
get_analytics{ websiteId, period?, from?, to?, interval?, limit? }READ
query_analytics{ websiteId, startAt, endAt, dimension?, limit?, path?, referrer?, country?, device?, browser?, os?, hostname?, event?, utmSource?, utmCampaign? }READ
get_analytics_timeseries{ websiteId, startAt, endAt, series?, unit?, timezone?, maxPoints?, compare? }READ
get_realtime_analytics{ websiteId }Pages
WRITE
create_page{ websiteId, path, title?, content?, published? }READ
list_pages{ websiteId, limit?, cursor? }READ
get_page{ websiteId, pageId }WRITE
update_page{ websiteId, pageId, title?, content?, published? }DELETE
delete_page{ websiteId, pageId }Blog
WRITE
add_blog_post{ websiteId, title, body, excerpt?, date?, tags?, cover?, slug?, publish?, publishAt? }WRITE
update_blog_post{ websiteId, post, title?, body?, excerpt?, date?, tags?, cover?, slug?, publish?, publishAt? }READ
list_blog_posts{ websiteId, status?, limit? }READ
get_blog{ websiteId }CMS
READ
get_schema{ websiteId }WRITE
create_collection{ websiteId, displayName, slug?, description?, fields? }READ
list_collections{ websiteId, limit?, cursor? }READ
get_collection{ websiteId, collectionId }WRITE
add_field{ websiteId, collectionId, key, type, displayName, required?, isUnique?, config? }WRITE
update_field{ websiteId, fieldId, displayName?, required?, isUnique?, config? }DELETE
delete_field{ websiteId, fieldId }WRITE
update_collection{ websiteId, collectionId, displayName?, description? }DELETE
delete_collection{ websiteId, collectionId }WRITE
create_item{ websiteId, collectionId, data, slug?, publishedAt?, publishAt? }READ
list_items{ websiteId, collectionId, published?, search?, filter?, filterLogic?, sort?, limit?, cursor?, depth? }READ
get_item{ websiteId, itemId, depth? }READ
find_item{ websiteId, collectionId, slug, depth? }WRITE
update_item{ websiteId, itemId, data?, slug?, position? }DELETE
delete_item{ websiteId, itemId }WRITE
restore_item{ websiteId, itemId }WRITE
publish_item{ websiteId, itemId, published?, publishAt? }READ
get_backreferences{ websiteId, itemId, depth? }Assets
READ
list_assets{ websiteId, kind?, category?, search?, limit?, cursor? }WRITE
begin_asset_upload{ websiteId, filename, mimeType, byteSize, description?, category?, altText? }WRITE
finalize_asset_upload{ websiteId, assetId }READ
get_asset{ websiteId, assetId }WRITE
update_asset{ websiteId, assetId, description?, category?, altText? }DELETE
delete_asset{ websiteId, assetId, permanent? }WRITE
import_assets{ websiteId, items }WRITE
create_image_variant{ websiteId, assetId, width?, height?, fit?, format?, quality? }objects
WRITE
begin_object_upload{ websiteId, files, folder?, expiresIn? }WRITE
resume_object_upload{ websiteId, objectId }WRITE
finalize_object_upload{ websiteId, ids }READ
list_objects{ websiteId, folder?, cursor?, limit? }READ
list_archive_entries{ websiteId, objectId }DELETE
delete_object{ websiteId, objectId }DELETE
delete_folder{ websiteId, folder }WRITE
rename_object{ websiteId, objectId, name }WRITE
move_object{ websiteId, objectId, folder? }WRITE
label_folder{ websiteId, folder, label }storage
READ
list_uploads_in_progress{ websiteId? }DELETE
clear_uploads_in_progress{ websiteId? }Forms
READ
list_forms{ websiteId }READ
list_form_submissions{ websiteId, form, status?, limit?, cursor? }READ
get_form_submission{ websiteId, form, submissionId }WRITE
update_form_submission{ websiteId, form, submissionId, status }DELETE
delete_form_submission{ websiteId, form, submissionId }Billing
READ
get_billing{ none }Domains
WRITE
add_domain{ websiteId, hostname }READ
list_domains{ websiteId }READ
get_domain{ websiteId, domainId }WRITE
verify_domain{ websiteId, domainId }WRITE
set_primary_domain{ websiteId, domainId }DELETE
remove_domain{ websiteId, domainId }Me
READ
whoami{ none }API keys
WRITE
create_api_key{ name?, access, expiresAt? }READ
list_api_keys{ websiteId?, status?, limit?, cursor? }READ
get_api_key{ keyId }WRITE
update_api_key{ keyId, name?, expiresAt?, access? }DELETE
rotate_api_key{ keyId }DELETE
revoke_api_key{ keyId }Audit log
READ
list_audit_log{ eventType?, websiteId?, actorId?, limit?, cursor? }