콘텐츠로 이동

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
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 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

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.

{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}

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.

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.

{
"additionalProperties": false,
"properties": {
"folder": {
"type": "string"
},
"limit": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"path": {
"type": "string"
}
},
"required": [],
"type": "object"
}

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.

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.

{
"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"
}

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.

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.

{
"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"
}

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.

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.

{
"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"
}

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.

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.

{
"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"
}

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.

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.

{
"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"
}

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.

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.

{
"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"
}

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.

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.

{
"additionalProperties": false,
"properties": {
"path": {
"type": "string"
},
"status": {
"enum": [
"open",
"resolved",
"all"
],
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}

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.

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.

{
"additionalProperties": false,
"properties": {
"path": {
"type": "string"
},
"task": {
"enum": [
"create",
"edit",
"rich",
"read",
"memory"
],
"type": "string"
},
"topic": {
"enum": [
"templates",
"presentation"
],
"type": "string"
}
},
"required": [],
"type": "object"
}

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.

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.

{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}

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.

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.

{
"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"
}

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.

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.

{
"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"
}

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.

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.

{
"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"
}

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.

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.

{
"additionalProperties": false,
"properties": {
"path": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"path",
"to"
],
"type": "object"
}

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.

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.

{
"additionalProperties": false,
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}

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.

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.

{
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}

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.

Not advertised by tools/list on 2026-10-25. See gram_get in the legacy archive.

Not advertised by tools/list on 2026-10-25. See gram_range in the legacy archive.

Not advertised by tools/list on 2026-10-25. See gram_state in the legacy archive.

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

안내와 다른 점이 있나요? 문서 오류 신고 · 문제 해결
이메일은 직접 검토해 전송하세요. API key나 비공개 문서 내용은 보내지 마세요.