Reference
MCP tools reference
Every tool Memrio exposes over MCP: browse, search_pages, get_page, the write tools, and Writer-only agent tools.
3 read tools are always present. 7 write tools appear only when “Can edit pages” is on. 3 agent-management tools appear only for the workspace Writer. All tools return text content; JSON results are pretty-printed JSON strings.
Read tools#
browse
List every page in the agent page set with its use-when instructions. Call this first — it is the catalog the agent picks from. No arguments.
{
"pages": [
{
"pageId": "pg_7f3a",
"title": "Refund policy",
"alwaysInclude": false,
"useWhen": ["Use whenever a customer asks about refunds, returns, or chargebacks."]
}
]
}search_pages
Keyword filter over the page set. Titles weigh more than body text. Returns up to 8 hits with a short excerpt. Prefer browse unless the set is large.
| Argument | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Keywords to search for |
get_page
Return the packed page: title, instructions, content, attached file text, and any pages or files its instructions say to use. Fails if the page is not in the set.
| Argument | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | From browse or search_pages |
Write tools#
get_page_source
Editable registry markdown for a page, including drafts, plus title, tags, status, parent, path, and whether a version is in review. Read this before update_page.
| Argument | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes |
create_page
Create a page. With parentId it becomes a subpage under that parent (use this to split a topic or add a child in the tree). Without parentId it is top-level and is added to the agent page set automatically.
| Argument | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | Max 200 chars |
| markdown | string | yes | Registry markdown body |
| parentId | string | no | Page id from browse — nests a subpage under that page |
| tags | string[] | no | Up to 20 |
| changeSummary | string | no | Shown to reviewers |
update_page
Replace the whole body, title, or tags. Send the complete rewritten page — this is not a patch.
| Argument | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | |
| changeSummary | string | yes | One line |
| markdown | string | no | Complete new body |
| title | string | no | |
| tags | string[] | no |
append_to_page
Add blocks to the end of a page without touching existing content. Good for logging a decision or adding an example.
| Argument | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | |
| markdown | string | yes | Blocks to append |
| changeSummary | string | yes | One line |
prepare_file_upload
Returns a short-lived S3 PUT URL. PUT the file bytes to uploadUrl with the given Content-Type header. Do not send file contents to the MCP server.
| Argument | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | Page that will own the file |
| filename | string | yes | |
| contentType | string | yes | Must match the PUT header |
attach_file
Create the file record after the PUT. Pass the s3Key from prepare_file_upload. Optional extractedText is packed into the page for other agents.
| Argument | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | |
| s3Key | string | yes | From prepare_file_upload |
| filename | string | yes | |
| contentType | string | no | |
| sizeBytes | number | no | |
| extractedText | string | no | Plain text to index |
| changeSummary | string | no |
delete_file
Remove an attached file from a page in this set.
| Argument | Type | Required | Notes |
|---|---|---|---|
| documentId | string | yes | From get_page or attach_file |
{
"pageId": "pg_7f3a",
"title": "Refund policy",
"versionNumber": 4,
"status": "in_review",
"message": "Submitted as v4 and waiting for a human to approve it."
}Agent tools#
These appear only when the connected agent is the workspace Writer (canManageAgents). Child agents created here never receive that flag, and they cannot take the reserved writer slug.
list_agents
List agents in the workspace: name, slug, permissions, and page count. No API keys.
create_agent
Create a narrower agent and return one API key (shown once). Cannot create another Writer or grant agent-management rights.
| Argument | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | |
| product | string | yes | Where it is used |
| description | string | no | |
| pageIds | string[] | no | Empty set if omitted |
| allowDrafts | boolean | no | |
| canWrite | boolean | no | |
| canPublish | boolean | no | Requires canWrite |
update_agent
Change name, product, description, status, page set, or permissions. Cannot change slug or canManageAgents. Pause instead of deleting. Writer edit/publish rights cannot be removed over MCP.
| Argument | Type | Required | Notes |
|---|---|---|---|
| agentId | string | yes | |
| name | string | no | |
| product | string | no | |
| description | string | no | |
| status | string | no | active or paused |
| pageIds | string[] | no | Ignored for Writer |
| allowDrafts | boolean | no | |
| canWrite | boolean | no | |
| canPublish | boolean | no |