# Siteleaf — MCP server on mcp.ai > Connect your Siteleaf account and use 35 tools for developer tools straight from your AI agent. Connect with your own API key. A friendly CMS for static sites. Powered by Jekyll, with GitHub sync, and a complete API. By: mcp.ai · official Page: https://mcp.ai/siteleaf ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_siteleaf?ms=1787291520000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/siteleaf/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/siteleaf/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/siteleaf/skill.md Postman collection (v2.1): https://mcp.ai/siteleaf/postman.json ## Tools - siteleaf_cancel_job(job_id: string) — Cancel an active Siteleaf job by job ID. This irreversibly requests that the job stop. - siteleaf_create_collection(path?: string, title: string, output?: boolean, site_id: string, metadata?: object, permalink?: string) — Create a content collection in a Siteleaf site. - siteleaf_create_collection_file(file: object, site_id: string, collection_path: string) — Upload one static file to a Siteleaf collection identified by its path. This action cannot create collection documents or content files with YAML front matter. - siteleaf_create_document(body?: string, date?: string, path?: string, tags?: string[], title: string, site_id: string, metadata?: object, permalink?: string, categories?: string[], visibility?: string, collection_path: string) — Create a document in a Siteleaf collection with content, taxonomy, metadata, and visibility. - siteleaf_create_page(body?: string, date?: string, path?: string, title: string, site_id: string, metadata?: object, permalink?: string, visibility?: string) — Create a page in a Siteleaf site. - siteleaf_create_role(kind: string, site_id: string, user_id: string) — Grant a Siteleaf user an admin, publisher, or writer role on a site. - siteleaf_create_site(empty?: boolean, title: string, domain: string, defaults?: object[], metadata?: object, timezone?: string) — Create a Siteleaf site with its domain, timezone, metadata, and defaults. - siteleaf_delete_collection(site_id: string, collection_path: string) — Permanently delete a Siteleaf collection by site ID and collection path. This cannot be undone. - siteleaf_delete_document(document_id: string) — Permanently delete a Siteleaf document by ID. This cannot be undone. - siteleaf_delete_page(page_id: string) — Permanently delete a Siteleaf page by ID. This cannot be undone. - siteleaf_delete_role(role_id: string) — Delete a Siteleaf role by ID, removing the user's access to its site. - siteleaf_delete_site(site_id: string) — Permanently delete a Siteleaf site by ID. This cannot be undone. - siteleaf_delete_source(site_id: string, source_name: string) — Permanently delete one raw source file from a Siteleaf site. Directories and _config.yml are protected and cannot be deleted. - siteleaf_get_collection(site_id: string, collection_path: string) — Get a collection by site ID and collection path. - siteleaf_get_current_user() — Return the Siteleaf user authenticated by the connected API key. - siteleaf_get_document(document_id: string) — Get a Siteleaf document by ID. - siteleaf_get_job(job_id: string) — Get the complete buffered status stream for a Siteleaf job, including all status events and the latest status details. The call waits until Siteleaf closes the event stream. - siteleaf_get_page(page_id: string) — Get a Siteleaf page by ID. - siteleaf_get_role(role_id: string) — Get a Siteleaf site-access role by ID. - siteleaf_get_site(site_id: string) — Get one Siteleaf site by ID, including its settings and current or most recent preview, publish, and synchronization job states. - siteleaf_get_site_taxonomy(site_id: string) — Return the unique post tags and categories used by a Siteleaf site. - siteleaf_get_source(site_id: string, source_name?: string) — Get raw source-file metadata or list a source directory for a Siteleaf site. - siteleaf_list_collection_files(sort?: string, query?: string, site_id: string, per_page?: integer, next_cursor?: string, collection_path: string) — Search and list static files in a Siteleaf collection with sorting and agent-controlled pagination. - siteleaf_list_collections(site_id: string, per_page?: integer, next_cursor?: string) — List content collections in a Siteleaf site with agent-controlled pagination. - siteleaf_list_documents(sort?: string, query?: string, site_id: string, per_page?: integer, extensions?: string, visibility?: string, next_cursor?: string, collection_path: string) — Search and list documents in a Siteleaf collection with visibility, extension, sorting, and pagination filters. - siteleaf_list_pages(sort?: string, query?: string, site_id: string, per_page?: integer, extensions?: string, visibility?: string, next_cursor?: string) — Search and list pages in a Siteleaf site with visibility, extension, sorting, and pagination filters. - siteleaf_list_site_users(site_id: string, per_page?: integer, next_cursor?: string) — List users who have access to a Siteleaf site with agent-controlled pagination. - siteleaf_list_sites(sort?: string, per_page?: integer, next_cursor?: string) — List sites accessible to the connected Siteleaf account, with optional sorting and agent-controlled pagination. - siteleaf_publish_site(site_id: string) — Start an asynchronous compile-and-publish job for a Siteleaf site and return its job ID. This publishes externally visible site content and does not wait for job completion. - siteleaf_update_collection(title?: string, output?: boolean, site_id: string, metadata?: object, new_path?: string, permalink?: string, collection_path: string) — Update at least one of a collection's title, path, permalink, output behavior, or metadata. - siteleaf_update_document(body?: string, date?: string, path?: string, tags?: string[], title?: string, metadata?: object, permalink?: string, categories?: string[], visibility?: string, document_id: string) — Update at least one of a document's content, path, taxonomy, visibility, metadata, or date. - siteleaf_update_page(body?: string, date?: string, path?: string, title?: string, page_id: string, metadata?: object, permalink?: string, visibility?: string) — Update at least one of a page's content, path, visibility, metadata, or publication date. - siteleaf_update_role(kind: string, role_id: string) — Change an existing Siteleaf role to admin, publisher, or writer. - siteleaf_update_site(title?: string, domain?: string, site_id: string, defaults?: object[], metadata?: object, timezone?: string) — Update at least one of a site's title, domain, timezone, metadata, or Jekyll content defaults. Hosting credentials and repository sync are intentionally not accepted as agent inputs. - siteleaf_upsert_source(file: object, site_id: string, source_name: string) — Create or replace one raw source file in a Siteleaf site. ## Example prompts - "What can I do in Siteleaf?" - "Show me a summary of my Siteleaf account" ## Links Docs: https://mcp.ai/docs/mcps/siteleaf Website: https://mcp.ai/mcps/siteleaf