MCP tools
이 상세 자료는 아직 한국어로 번역되지 않아 영문 원문을 표시합니다.
GA 공개 출처와 지원 범위
- Status
- GA
- Component
- Thegram Cloud MCP tool contract
- Deployment
- Cloud service https://vault.thegram.one/mcp
- Applies to version
- Latest
- 출처 확인일
- 2026-10-25
- Owner
- thegram-one/thegram-vault
- Public evidence
- Basis
- The page is generated from an authenticated MCP tools/list capture published as site evidence; the server publishes input schemas and annotations only, no outputSchema.
All pages: version and status matrix
출처 확인은 실제 계정 설치·기기 동작·서비스 상태의 검증을 뜻하지 않습니다.
This page lists the tools that the latest Thegram Cloud MCP server at https://vault.thegram.one/mcp advertises in its MCP tools/list response. The capture behind it is published as tools-list-2026-10-25.json; its date and server build are in the evidence section at the end of this page.
Tool lists change between releases. Before calling tools, discover the live contract with tools/list and gram_capabilities.
Output schemas: none of the 17 tools declares an outputSchema in tools/list. This page therefore documents inputs and annotations only and does not describe result shapes. Historical request and output fixtures for an earlier 15-tool surface are kept in the legacy archive.
Tool list
Section titled “Tool list”| Tool | Title | Read-only | Destructive | Idempotent | Open world |
|---|---|---|---|---|---|
gram_projects |
List projects and mounts | yes | no | not declared | no |
gram_brief |
Summarize a project or document | yes | no | not declared | no |
gram_list |
List documents and records | yes | no | not declared | no |
gram_read |
Read a document section | yes | no | not declared | no |
gram_recall |
Search memory records | yes | no | not declared | no |
gram_context |
Read multiple records | yes | no | not declared | no |
gram_relations |
Explore record links | yes | no | not declared | no |
gram_changes |
Read document changes | yes | no | not declared | no |
gram_comments |
Read document comments | yes | no | not declared | no |
gram_profile |
Read and write contract | yes | no | not declared | no |
gram_capabilities |
Inspect tool capabilities | yes | no | not declared | no |
gram_create |
Create a document | no | no | not declared | no |
gram_patch |
Patch a document | no | yes | not declared | no |
gram_comment |
Write a document comment | no | no | not declared | no |
gram_move |
Move or rename | no | yes | not declared | no |
gram_delete |
Move to trash | no | yes | not declared | no |
gram_restore |
Restore from trash | no | no | not declared | no |
Tool contracts
Section titled “Tool contracts”gram_projects
Section titled “gram_projects”Title: List projects and mounts
Lists the project folders and mounted collections this connection can reach as {key, id, kind, name, count, access}. A mount key such as @mounts/<id> is the prefix of every document path.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": {}, "required": [], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_projects. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_projects in the legacy archive.
gram_brief
Section titled “gram_brief”Title: Summarize a project or document
Summarizes one document (path) or project folder (folder): documents with rev and hash (the write preconditions), record counts by type, open records, recent revisions, and next, the time to pass as since to gram_changes later.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "folder": { "type": "string" }, "limit": { "maximum": 50, "minimum": 1, "type": "integer" }, "path": { "type": "string" } }, "required": [], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_brief. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_brief in the legacy archive.
gram_list
Section titled “gram_list”Title: List documents and records
Lists documents and folders (all, or under a folder path); with trash true, trashed items; with select {type, status, tag, from, to, date}, matching records as [path#id, type, title, status, date]; with a .gram path, its entity ids. revision, recorded_at or effective_at select a past state.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "cursor": { "type": "string" }, "effective_at": { "type": "string" }, "limit": { "maximum": 100, "minimum": 1, "type": "integer" }, "path": { "type": "string" }, "recorded_at": { "type": "string" }, "revision": { "minimum": 0, "type": "integer" }, "select": { "additionalProperties": false, "properties": { "date": { "type": "string" }, "from": { "type": "string" }, "status": { "type": "string" }, "tag": { "type": "string" }, "to": { "type": "string" }, "type": { "type": "string" } }, "type": "object" }, "trash": { "type": "boolean" } }, "required": [], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_list. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_list in the legacy archive.
gram_read
Section titled “gram_read”Title: Read a document section
Reads a document: without section, its outline [level, label, node id, chars] and open-comment counts; with section (a heading, node id, @preamble or @text), that section as Markdown for reading. source true returns the section's stored Markdown instead (tables, list markers, mentions and [[id]] lines intact); edit that and send it back with gram_patch section. A long section continues with cursor. revision, recorded_at or effective_at read a past state.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "cursor": { "type": "string" }, "effective_at": { "type": "string" }, "path": { "type": "string" }, "recorded_at": { "type": "string" }, "revision": { "minimum": 0, "type": "integer" }, "section": { "type": "string" }, "source": { "description": "true: the stored Markdown of the section (current revision only), to edit and send back with gram_patch section.", "type": "boolean" } }, "required": [ "path" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_read. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_read in the legacy archive.
gram_recall
Section titled “gram_recall”Title: Search memory records
Searches records by relevance in documents or a folder. mode auto (default) and hybrid rank by meaning and by any matching words together, so ask in plain sentences; semantic uses meaning only; keyword needs every word in the record; exact takes one record id. Filters: type, status (an x value or open/done/closed), scope (exact s tag), from/to dates (inclusive; YYYY-MM or YYYY is a span) and date (which field). as_of searches a past state. Hits are [id, type, title, status, summary, score]; duplicates counts hits left out as repeats of an earlier one.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "as_of": { "additionalProperties": false, "properties": { "recorded_at": { "type": "string" }, "revision": { "minimum": 0, "type": "integer" } }, "type": "object" }, "cursor": { "type": "string" }, "date": { "type": "string" }, "documents": { "items": { "type": "string" }, "type": "array" }, "folder": { "type": "string" }, "from": { "type": "string" }, "mode": { "description": "auto (default) and hybrid rank by meaning and by any matching words together, so ask in plain sentences; semantic uses meaning only; keyword needs every word of query in the record; exact takes one record id, not a phrase.", "enum": [ "exact", "keyword", "semantic", "hybrid", "auto" ], "type": "string" }, "query": { "type": "string" }, "scope": { "type": "string" }, "status": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ] }, "to": { "type": "string" }, "top_k": { "minimum": 1, "type": "integer" }, "type": { "type": "string" } }, "required": [ "query" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_recall. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_recall in the legacy archive.
gram_context
Section titled “gram_context”Title: Read multiple records
Reads several records at once: for each {path, entity} in ids, the requested fields (default t d x p owner tag due at value unit source ref), links and bounded rich text. An item may select a past state with revision, recorded_at or effective_at.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "cursor": { "type": "string" }, "fields": { "items": { "type": "string" }, "type": "array" }, "ids": { "items": { "properties": { "effective_at": { "type": "string" }, "entity": { "type": "string" }, "path": { "type": "string" }, "recorded_at": { "type": "string" }, "revision": { "minimum": 0, "type": "integer" } }, "required": [ "path", "entity" ], "type": "object" }, "minItems": 1, "type": "array" } }, "required": [ "ids" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_context. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_context in the legacy archive.
gram_relations
Section titled “gram_relations”Title: Explore record links
Lists explicit links and REL edges from one record (from {path, entity}), optionally filtered by direction, predicates, depth and paths.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "cursor": { "type": "string" }, "depth": { "maximum": 3, "minimum": 1, "type": "integer" }, "direction": { "enum": [ "out", "in", "both" ], "type": "string" }, "from": { "properties": { "entity": { "type": "string" }, "path": { "type": "string" } }, "required": [ "path", "entity" ], "type": "object" }, "limit": { "minimum": 1, "type": "integer" }, "paths": { "items": { "type": "string" }, "type": "array" }, "predicates": { "items": { "type": "string" }, "type": "array" } }, "required": [ "from" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_relations. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_relations in the legacy archive.
gram_changes
Section titled “gram_changes”Title: Read document changes
Lists revisions after since (ISO time, exclusive) in a folder or document, or after since_revision in one document, with the records each added, changed or removed. next is the time to pass as since later; more continues the page.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "cursor": { "type": "string" }, "folder": { "type": "string" }, "limit": { "maximum": 100, "minimum": 1, "type": "integer" }, "path": { "type": "string" }, "since": { "type": "string" }, "since_revision": { "minimum": 0, "type": "integer" } }, "required": [], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_changes. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_changes in the legacy archive.
gram_comments
Section titled “gram_comments”Title: Read document comments
Reads the comment threads on one Vault document (status open by default, resolved or all): each thread's anchor, section, whether the quoted text is still there, and its comments.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "path": { "type": "string" }, "status": { "enum": [ "open", "resolved", "all" ], "type": "string" } }, "required": [ "path" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_comments. This tool was not part of the 15-tool capture, so no historical fixtures exist.
gram_profile
Section titled “gram_profile”Title: Read and write contract
Returns the read/write contract for a task (memory, read, create, edit or rich). topic templates returns the record vocabulary: each type's required fields and status values with their open/done/closed class; topic presentation with path returns a saved layout's data requirements.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "path": { "type": "string" }, "task": { "enum": [ "create", "edit", "rich", "read", "memory" ], "type": "string" }, "topic": { "enum": [ "templates", "presentation" ], "type": "string" } }, "required": [], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_profile. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_profile in the legacy archive.
gram_capabilities
Section titled “gram_capabilities”Title: Inspect tool capabilities
Returns the available tools, the response size budget, and semantic-search and index status.
Annotations: read-only yes; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": {}, "required": [], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_capabilities. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_capabilities in the legacy archive.
gram_create
Section titled “gram_create”Title: Create a document
Creates a .gram document at path (base_revision null). content is Markdown text or {text|rich, records, fields, blocks}; a line containing only [[id]] places that record. Records need a short descriptive t title; times go in at, observed or due. For a long document, create it with the title heading and overview, then add each section with gram_patch section.
Annotations: read-only no; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "base_revision": { "type": "null" }, "content": { "anyOf": [ { "type": "string" }, { "additionalProperties": false, "properties": { "blocks": { "items": { "type": "object" }, "type": "array" }, "fields": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, "records": { "items": { "properties": { "blocks": { "items": { "properties": { "arg": { "type": "string" }, "kind": { "type": "string" }, "text": { "type": "string" } }, "required": [ "kind", "text" ], "type": "object" }, "type": "array" }, "fields": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "Field key to its values, e.g. {\"t\": [\"Title\"], \"d\": [\"One-sentence outcome\"], \"x\": [\"open\"], \"due\": [\"2026-10-20\"]}.", "type": "object" }, "id": { "description": "Optional; Core assigns e_<uuid> when left out.", "type": "string" }, "links": { "items": { "anyOf": [ { "properties": { "predicate": { "description": "Link from entity to target.", "enum": [ "related", "supports", "contradicts", "depends", "implements", "replaces", "derives", "blocks", "enables", "part-of" ], "type": "string" }, "target": { "description": "A record id in this document, or document-id/entity-id in another document.", "type": "string" } }, "required": [ "predicate", "target" ], "type": "object" }, { "description": "[predicate, target]", "items": { "type": "string" }, "maxItems": 2, "minItems": 2, "type": "array" } ] }, "type": "array" }, "type": { "description": "Record type, e.g. task, decision, risk, event, note, metric, person, source.", "type": "string" } }, "required": [ "type" ], "type": "object" }, "type": "array" }, "rich": { "type": "object" }, "text": { "type": "string" } }, "type": "object" } ] }, "effective_at": { "type": "string" }, "path": { "type": "string" }, "request_id": { "maxLength": 128, "minLength": 1, "type": "string" }, "title": { "type": "string" } }, "required": [ "path", "base_revision", "title" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_create. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_create in the legacy archive.
gram_patch
Section titled “gram_patch”Title: Patch a document
Changes one document in one revision with operations: set or unset a field (old is the current value, null if empty), link or unlink records, add a record (place: end, none, {after} or {section}), remove a record, write a whole section with section {heading, text} (replaces it, or adds it at the end when missing), or edit the body with edit-text, text, drop-text or rich. remove and whole-body changes require base_revision and expected_hash. Growing an existing paragraph past 1,000 characters is refused.
Annotations: read-only no; destructive yes; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "base_revision": { "minimum": 0, "type": "integer" }, "effective_at": { "type": "string" }, "expected_hash": { "minLength": 1, "type": "string" }, "operations": { "items": { "properties": { "arg": { "description": "text and drop-text: the block argument, when the block has one.", "type": "string" }, "changes": { "description": "rich: node-level changes of the body tree; gram_profile task rich lists them.", "items": { "type": "object" }, "type": "array" }, "entity": { "description": "The record id, or doc for the document itself.", "type": "string" }, "heading": { "description": "section: one Markdown heading line, e.g. \"## Storage\". The section is that heading through the next heading of the same or a higher level; it is added at the end of the body when the document does not have it yet.", "type": "string" }, "key": { "description": "Field key, e.g. t title, d description, x status, p priority, due, at, owner, tag.", "type": "string" }, "kind": { "description": "edit-text, text and drop-text: the block kind; rich is the md body.", "type": "string" }, "new": { "description": "edit-text: the text that replaces old.", "type": "string" }, "old": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "set and unset: the value you read, null if the field was empty. edit-text: the exact text to replace, occurring once." }, "op": { "description": "set {entity, key, value or values, old}; unset {entity, key, old}; link and unlink {entity, predicate, target}; add {record, place?}; remove {entity}; section {heading, text}; edit-text {entity: doc, kind: rich, old, new}; text and drop-text {entity, kind, arg?, text}; rich {entity, changes}.", "enum": [ "set", "unset", "link", "unlink", "add", "remove", "section", "edit-text", "text", "drop-text", "rich" ], "type": "string" }, "place": { "anyOf": [ { "enum": [ "end", "none" ], "type": "string" }, { "properties": { "after": { "type": "string" } }, "required": [ "after" ], "type": "object" }, { "properties": { "section": { "type": "string" } }, "required": [ "section" ], "type": "object" } ], "description": "add: where the record appears in the body: end, none, {after: record id} or {section: heading or node id}. A record already placed in the body is not placed again." }, "predicate": { "description": "Link from entity to target.", "enum": [ "related", "supports", "contradicts", "depends", "implements", "replaces", "derives", "blocks", "enables", "part-of" ], "type": "string" }, "record": { "properties": { "blocks": { "items": { "properties": { "arg": { "type": "string" }, "kind": { "type": "string" }, "text": { "type": "string" } }, "required": [ "kind", "text" ], "type": "object" }, "type": "array" }, "fields": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "Field key to its values, e.g. {\"t\": [\"Title\"], \"d\": [\"One-sentence outcome\"], \"x\": [\"open\"], \"due\": [\"2026-10-20\"]}.", "type": "object" }, "id": { "description": "Optional; Core assigns e_<uuid> when left out.", "type": "string" }, "links": { "items": { "anyOf": [ { "properties": { "predicate": { "description": "Link from entity to target.", "enum": [ "related", "supports", "contradicts", "depends", "implements", "replaces", "derives", "blocks", "enables", "part-of" ], "type": "string" }, "target": { "description": "A record id in this document, or document-id/entity-id in another document.", "type": "string" } }, "required": [ "predicate", "target" ], "type": "object" }, { "description": "[predicate, target]", "items": { "type": "string" }, "maxItems": 2, "minItems": 2, "type": "array" } ] }, "type": "array" }, "type": { "description": "Record type, e.g. task, decision, risk, event, note, metric, person, source.", "type": "string" } }, "required": [ "type" ], "type": "object" }, "target": { "description": "A record id in this document, or document-id/entity-id in another document.", "type": "string" }, "text": { "description": "section: the Markdown under the heading, replacing what was there. text: the new block text (the whole md body when kind is rich).", "type": "string" }, "value": { "description": "set: the one single-line value.", "type": "string" }, "values": { "description": "set: every value of a repeated field, in order (instead of value).", "items": { "type": "string" }, "minItems": 1, "type": "array" } }, "required": [ "op" ], "type": "object" }, "minItems": 1, "type": "array" }, "path": { "type": "string" }, "presentation_digest": { "description": "Optional uiRequirements.digest from gram_profile topic presentation. Requires base_revision and expected_hash; rejects stale presentation profiles atomically.", "type": "string" }, "request_id": { "description": "Stable per intended change; reuse only to retry the same change.", "maxLength": 128, "minLength": 1, "type": "string" } }, "required": [ "path", "request_id", "operations" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_patch. Historical request examples, output fixtures and source-backed errors from the 15-tool capture: gram_patch in the legacy archive.
gram_comment
Section titled “gram_comment”Title: Write a document comment
Writes a comment on a Vault document without changing the document: action open starts a thread on quoted text (block narrows where) or on a record, reply answers a thread, and resolve or reopen changes a thread's status.
Annotations: read-only no; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "action": { "enum": [ "open", "reply", "resolve", "reopen" ], "type": "string" }, "block": { "type": "string" }, "path": { "type": "string" }, "quote": { "maxLength": 2000, "minLength": 1, "type": "string" }, "record": { "type": "string" }, "request_id": { "maxLength": 128, "minLength": 1, "type": "string" }, "text": { "maxLength": 4000, "minLength": 1, "type": "string" }, "thread": { "type": "string" } }, "required": [ "path", "action" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_comment. This tool was not part of the 15-tool capture, so no historical fixtures exist.
gram_move
Section titled “gram_move”Title: Move or rename
Moves or renames a document or folder with its contents within the same mount, from path to to. Missing destination folders are created; a document keeps its history and records.
Annotations: read-only no; destructive yes; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "path": { "type": "string" }, "to": { "type": "string" } }, "required": [ "path", "to" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_move. This tool was not part of the 15-tool capture, so no historical fixtures exist.
gram_delete
Section titled “gram_delete”Title: Move to trash
Moves a document or folder with its contents to the mount's trash, from which gram_restore can bring it back.
Annotations: read-only no; destructive yes; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "path": { "type": "string" } }, "required": [ "path" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_delete. This tool was not part of the 15-tool capture, so no historical fixtures exist.
gram_restore
Section titled “gram_restore”Title: Restore from trash
Restores a trashed document or folder to its original path, or to the mount root when that folder is gone; a name clash gets a (1) suffix. path is the original path, or the mount key with id from the trash listing.
Annotations: read-only no; destructive no; idempotent not declared; open world no.
Input schema
Section titled “Input schema”{ "additionalProperties": false, "properties": { "id": { "type": "string" }, "path": { "type": "string" } }, "required": [ "path" ], "type": "object"}Output
Section titled “Output”Not declared: tools/list publishes no outputSchema for gram_restore. This tool was not part of the 15-tool capture, so no historical fixtures exist.
Tools from the 15-tool capture that are not in the current list
Section titled “Tools from the 15-tool capture that are not in the current list”The capture documented these tools; the 2026-10-25T00:01:00+00:00 tools/list response does not include them. Their recorded schemas and fixtures remain in the legacy archive.
gram_get
Section titled “gram_get”Not advertised by tools/list on 2026-10-25. See gram_get in the legacy archive.
gram_range
Section titled “gram_range”Not advertised by tools/list on 2026-10-25. See gram_range in the legacy archive.
gram_state
Section titled “gram_state”Not advertised by tools/list on 2026-10-25. See gram_state in the legacy archive.
Sources of the retained capture
Section titled “Sources of the retained capture”The 15-tool capture cited these sources; they describe that capture, not the current server: .gram language specification · Current rich document specification · Current History/6 specification.
Source and renderer evidence
- tools/list capture
2026-10-25T00:01:00+00:00- Capture method
MCP initialize + tools/list through the installed thegram plugin stdio proxy- Server
thegram ff13074- Protocol
2025-11-25
Canonical source: tools-list-2026-10-25.json