Docs: MCP tools reference
Docs / Reference

MCP tools reference

What your agent can do in Markloop: each tool, whether it reads or writes, its parameters and limits.

View as Markdown

Every tool your AI agent can call in Markloop. The server URL is https://app.markloop.io/api/mcp, and sign-in uses OAuth (see Connect your AI tool). Your agent decides when to call these tools; you don't call them yourself.

Markloop's tools never delete anything. Writes add a document, a version, or a comment. Republish adds a new version to a copy you published, so its readers see the new content right away; earlier versions are kept.

Find documents

Who am I

markloop_whoamiRead-only

Shows which workspaces and projects your agent can access.

List projects

markloop_list_projectsRead-only

Lists the projects your agent can work in, with the workspace each one belongs to.

List documents

markloop_list_filesRead-only

Lists the documents in a project, with open comment counts and when each one was last active.

NameTypeRequiredDescription
projectIdstringNoProject id from markloop_list_projects.
sincestring (date-time)NoISO timestamp (e.g. when you last pulled) — adds newMessagesSince per file.

Read and compare

Pull document with comments

markloop_pullRead-only

Gets a document's current content and all open comment threads, so the agent can fix it.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
fileIdstringYesStable document id from markloop_list_files.
sincestring (date-time)NoISO timestamp (e.g. when you last pulled) — marks new messages isNew.
contentModestring (one of: url, inline)Noinline returns the document content directly in the response — use when your environment cannot download the returned URL at all (sandboxed egress).
contentOffsetintegerNoByte offset for the next inline chunk — pass the previous call's nextOffset.
baseVersionIdstringNoPin the read to one version.

Get comment thread

markloop_get_comment_threadRead-only

Gets one comment thread with all its replies and whether it is still open.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
fileIdstringYesStable document id from markloop_list_files/pull.
commentIdstringNoThread root id (from a prior pull).
numberintegerNoStable per-document thread number (from a prior pull/list).

List versions

markloop_list_versionsRead-only

Lists every version of a document and how many comments each version resolved.

NameTypeRequiredDescription
projectIdstringNoProject id from markloop_list_projects.
fileIdstringYesStable document id from markloop_list_files/pull.

Get version

markloop_get_versionRead-only

Gets the content of any version of a document, so the agent can compare versions.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
fileIdstringYesStable document id from markloop_list_files/pull.
versionNointegerYesVersion number from markloop_list_versions.
contentModestring (one of: url, inline)Noinline returns the document content directly in the response — use when your environment cannot download the returned URL at all (sandboxed egress).
contentOffsetintegerNoByte offset for the next inline chunk — pass the previous call's nextOffset.

Publish and update

Request upload

markloop_request_uploadWrites

Prepares an upload link, so the agent can send a file from disk without retyping it.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
filenamestringYesFile name, e.g. Product-Catalog.yaml.
contentTypestringNoe.g. text/html, application/json, application/yaml. Default: "text/html".
sizeintegerNoByte size of the file, e.g. from wc -c — lets the server pick the right upload URL up front.

Create document

markloop_create_fileWrites

Adds a new document to a project and returns a link to view it.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
filenamestringYesFile name, e.g. proposal.html / data.json.
folderPathstringNoRelative folder path, e.g. "specs/2026" or "a/b".
contentTypestringNoDefaults to text/html.
contentstringNoInline content — only for tiny text generated right now (a few KB).
intentstringNointent from markloop_request_upload — preferred for any file on disk.
sizeintegerNoByte size of the uploaded file you uploaded via request_upload.

Push new version

markloop_put_versionWrites

Publishes a new version of a document and marks the comments it addressed.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
fileIdstringYesStable document id from list_files/pull.
baseVersionIdstringYesdocument.baseVersionId from the last pull.
addressedCommentIdsarray of stringNoComment ids you addressed in this version (the rest stay open). Default: [].
contentTypestringNo—
contentstringNoInline content — only for tiny text generated right now (a few KB).
intentstringNointent from markloop_request_upload — preferred for any file on disk.
sizeintegerNoByte size of the uploaded file you uploaded via request_upload.

Publish copy to another project

markloop_publish_documentWrites

Copies a document into another project, such as a client's, as a clean copy without your comments.

NameTypeRequiredDescription
sourceProjectIdstringYesProject the source document lives in (from markloop_list_projects).
fileIdstringYesStable source document id (from markloop_list_files).
targetProjectIdstringYesProject to publish the copy into (e.g. the client's project).
atVersionintegerNoSource version number to publish (from markloop_list_versions).
filenamestringNoName for the copy in the target.
folderPathstringNoRelative folder path in the target, e.g. "client-acme".

Republish copy

markloop_republish_documentReplaces content

Updates a copy you published to another project with newer content. Replaces what its readers see.

NameTypeRequiredDescription
sourceProjectIdstringYesProject the source document lives in.
sourceFileIdstringYesStable id of the source document (the private original).
targetProjectIdstringYesProject the published copy lives in.
targetFileIdstringYesStable id of the published copy (from publish's return / markloop_list_files).
baseTargetVersionIdstringYesdocument.baseVersionId from markloop_pull on the target (concurrency guard).
atVersionintegerNoSource version number to publish (from markloop_list_versions).

Comment

Create comment

markloop_create_commentWrites

Leaves a new comment on a document, pinned to a quote or to an element on the page.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
fileIdstringYesStable document id from markloop_list_files/pull.
textstringYesThe comment body — what you want the reader to see.
anchorTypestring (one of: text, element)No"text" = anchor to a quote (default), "element" = anchor to a CSS selector. Default: "text".
quotestringNoExact text from the current version to anchor to (copy it verbatim from the pulled content, plain text, no tags).
occurrenceintegerNo0-based index if the quote appears more than once. Default: 0.
selectorstringNoCSS selector of the element.
anchorXnumberNoElement anchors only: relative x position inside the element (0..1).
anchorYnumberNoElement anchors only: relative y position inside the element (0..1).

Reply to comment

markloop_reply_commentWrites

Replies to a comment thread, for example to explain a change, and can mark it resolved.

NameTypeRequiredDescription
projectIdstringYesProject id from markloop_list_projects/list_files.
commentIdstringYes—
textstringYesThe reply body (max 10000 characters).
resolvebooleanNoAlso mark the comment resolved (declined/handled). Default: false.

Limits

  • Document size: up to 25 MB per document.
  • Sandboxed agents: files up to 4 MB upload and download through Markloop's own domain, so they work from environments with restricted network access. Larger files go directly to storage.
  • Text sent inline: up to 8 KB per call. The agent uploads anything larger as a file.
  • Workspaces: you can give agents access to up to 10 workspaces.

Hourly limits on writes, counted per person across all connected workspaces:

ActionToolsPer hourPer hour, trial workspace
New documents, versions and published copiesCreate document, Push new version, Publish copy to another project, Republish copy6030
Comments and repliesReply to comment, Create comment12060
Upload linksRequest upload12060