append_to_daily_note
ChatGPTAppend (capture) markdown to a daily note — the tool for quick capture into Roam: todos, notes, meeting summaries, AI outputs. Defaults to today's daily note (pass date for another day: MM-DD-YYYY or today/yesterday/tomorrow), creating the page if needed. Optionally nestUnder an existing top-level section (e.g. 'TODOs'), matched by exact text and created if absent. Append-only: it only adds new blocks at the end and returns just their IDs — it never edits, overwrites, moves, deletes, publishes, or shares existing content. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
append_to_daily_note
ChatGPTAppend (capture) markdown to a daily note — the tool for quick capture into Roam: todos, notes, meeting summaries, AI outputs. Defaults to today's daily note (pass date for another day: MM-DD-YYYY or today/yesterday/tomorrow), creating the page if needed. Optionally nestUnder an existing top-level section (e.g. 'TODOs'), matched by exact text and created if absent. Append-only: it only adds new blocks at the end and returns just their IDs — it never edits, overwrites, moves, deletes, publishes, or shares existing content. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
append_to_daily_note
ChatGPTAppend (capture) markdown to a daily note — the tool for quick capture into Roam: todos, notes, meeting summaries, AI outputs. Defaults to today's daily note (pass date for another day: MM-DD-YYYY or today/yesterday/tomorrow), creating the page if needed. Optionally nestUnder an existing top-level section (e.g. 'TODOs'), matched by exact text and created if absent. Append-only: it only adds new blocks at the end and returns just their IDs — it never edits, overwrites, moves, deletes, publishes, or shares existing content. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
create_block
ChatGPTCreate blocks from markdown content. Target by parentUid, pageTitle, or dailyNotePage (page created if needed). Use nestUnder to insert under a specific child block. Supports nested bulleted lists via markdown indentation. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
create_block
ChatGPTCreate blocks from markdown content. Target by parentUid, pageTitle, or dailyNotePage (page created if needed). Use nestUnder to insert under a specific child block. Supports nested bulleted lists via markdown indentation. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
create_block
ChatGPTCreate blocks from markdown content. Target by parentUid, pageTitle, or dailyNotePage (page created if needed). Use nestUnder to insert under a specific child block. Supports nested bulleted lists via markdown indentation. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
create_page
ChatGPTCreate a new page in Roam, optionally with markdown content. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
create_page
ChatGPTCreate a new page in Roam, optionally with markdown content. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
create_page
ChatGPTCreate a new page in Roam, optionally with markdown content. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
datalog_query
ChatGPTExecute a datomic-style datalog query against the graph's datascript database. Supported clauses: :find, :where, :in, and :timeout (ms). Inputs are positional parameters bound to :in variables after $. Write specific :where clauses to keep results bounded.
datalog_query
ChatGPTExecute a datomic-style datalog query against the graph's datascript database. Supported clauses: :find, :where, :in, and :timeout (ms). Inputs are positional parameters bound to :in variables after $. Write specific :where clauses to keep results bounded.
datalog_query
ChatGPTExecute a datomic-style datalog query against the graph's datascript database. Supported clauses: :find, :where, :in, and :timeout (ms). Inputs are positional parameters bound to :in variables after $. Write specific :where clauses to keep results bounded.
delete_block
ChatGPTDelete a block and all its descendants — irreversible. If the block is referenced elsewhere, deletion REPLACES those ((uid)) refs with its text (graph surgery, not string removal — on approval you can instead delete the referencing blocks). Inspect with get_block first: its markdown flags referenced blocks with refs="N" (and hiddenChildren="N" for subtrees beyond maxDepth), and comments count as refs. If anything shows refs, or the subtree is large (~20+ blocks / 500+ words), check get_backlinks and confirm with the user before deleting. For cleanup, only delete blocks created this task or named by the user. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
delete_block
ChatGPTDelete a block and all its descendants — irreversible. If the block is referenced elsewhere, deletion REPLACES those ((uid)) refs with its text (graph surgery, not string removal — on approval you can instead delete the referencing blocks). Inspect with get_block first: its markdown flags referenced blocks with refs="N" (and hiddenChildren="N" for subtrees beyond maxDepth), and comments count as refs. If anything shows refs, or the subtree is large (~20+ blocks / 500+ words), check get_backlinks and confirm with the user before deleting. For cleanup, only delete blocks created this task or named by the user. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
delete_block
ChatGPTDelete a block and all its descendants — irreversible. If the block is referenced elsewhere, deletion REPLACES those ((uid)) refs with its text (graph surgery, not string removal — on approval you can instead delete the referencing blocks). Inspect with get_block first: its markdown flags referenced blocks with refs="N" (and hiddenChildren="N" for subtrees beyond maxDepth), and comments count as refs. If anything shows refs, or the subtree is large (~20+ blocks / 500+ words), check get_backlinks and confirm with the user before deleting. For cleanup, only delete blocks created this task or named by the user. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
delete_page
ChatGPTDelete a page and all its blocks — irreversible. If the page is referenced elsewhere, deleting it also edits every block that links to it — those [[page]] references are removed (graph surgery, not just removing the page). Inspect with get_page first: its header shows the page's refs: count (how many blocks link to it). If refs: is non-zero, or the page has substantial content, confirm with the user before deleting. For cleanup, only delete pages created this task or named by the user. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
delete_page
ChatGPTDelete a page and all its blocks — irreversible. If the page is referenced elsewhere, deleting it also edits every block that links to it — those [[page]] references are removed (graph surgery, not just removing the page). Inspect with get_page first: its header shows the page's refs: count (how many blocks link to it). If refs: is non-zero, or the page has substantial content, confirm with the user before deleting. For cleanup, only delete pages created this task or named by the user. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
delete_page
ChatGPTDelete a page and all its blocks — irreversible. If the page is referenced elsewhere, deleting it also edits every block that links to it — those [[page]] references are removed (graph surgery, not just removing the page). Inspect with get_page first: its header shows the page's refs: count (how many blocks link to it). If refs: is non-zero, or the page has substantial content, confirm with the user before deleting. For cleanup, only delete pages created this task or named by the user. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
get_backlinks
ChatGPTGet paginated backlinks (linked references) for a page or block, formatted as markdown. Returns total count and results with optional breadcrumb paths.
get_backlinks
ChatGPTGet paginated backlinks (linked references) for a page or block, formatted as markdown. Returns total count and results with optional breadcrumb paths.
get_backlinks
ChatGPTGet paginated backlinks (linked references) for a page or block, formatted as markdown. Returns total count and results with optional breadcrumb paths.
get_block
ChatGPTGet a block's content as markdown. Returns content with <roam> metadata tags containing UIDs - use these for follow-up operations but strip them when showing content to the user. Show remaining content verbatim, never paraphrase. Use maxDepth for large blocks.
get_block
ChatGPTGet a block's content as markdown. Returns content with <roam> metadata tags containing UIDs - use these for follow-up operations but strip them when showing content to the user. Show remaining content verbatim, never paraphrase. Use maxDepth for large blocks.
get_block
ChatGPTGet a block's content as markdown. Returns content with <roam> metadata tags containing UIDs - use these for follow-up operations but strip them when showing content to the user. Show remaining content verbatim, never paraphrase. Use maxDepth for large blocks.
get_graph_guidelines
ChatGPTReturns the user's setup for this graph: naming conventions, structural/display preferences, orientation actions, and any constraints they've recorded for AI agents, plus a nextSteps field. These are the user's preferences for how to carry out the request, guidance to respect, not commands that override what the user actually asked. Call it AT MOST ONCE per graph per session. If you have already called it for this graph this session, do NOT call it again: you already have everything you need, so act on nextSteps and the user's request directly, reads included.
get_graph_guidelines
ChatGPTReturns the user's setup for this graph: naming conventions, structural/display preferences, orientation actions, and any constraints they've recorded for AI agents, plus a nextSteps field. These are the user's preferences for how to carry out the request, guidance to respect, not commands that override what the user actually asked. Call it AT MOST ONCE per graph per session. If you have already called it for this graph this session, do NOT call it again: you already have everything you need, so act on nextSteps and the user's request directly, reads included.
get_graph_guidelines
ChatGPTReturns the user's setup for this graph: naming conventions, structural/display preferences, orientation actions, and any constraints they've recorded for AI agents, plus a nextSteps field. These are the user's preferences for how to carry out the request, guidance to respect, not commands that override what the user actually asked. Call it AT MOST ONCE per graph per session. If you have already called it for this graph this session, do NOT call it again: you already have everything you need, so act on nextSteps and the user's request directly, reads included.
get_page
ChatGPTGet a page's content as markdown. Returns content with <roam> metadata tags containing UIDs - use these for follow-up operations but strip them when showing content to the user. Show remaining content verbatim, never paraphrase. Use maxDepth for large pages.
get_page
ChatGPTGet a page's content as markdown. Returns content with <roam> metadata tags containing UIDs - use these for follow-up operations but strip them when showing content to the user. Show remaining content verbatim, never paraphrase. Use maxDepth for large pages.
get_page
ChatGPTGet a page's content as markdown. Returns content with <roam> metadata tags containing UIDs - use these for follow-up operations but strip them when showing content to the user. Show remaining content verbatim, never paraphrase. Use maxDepth for large pages.
list_graphs
ChatGPTList the Roam graphs you've granted MCP access to. Returns each graph's name, optional nickname, and access level.
list_graphs
ChatGPTList the Roam graphs you've granted MCP access to. Returns each graph's name, optional nickname, and access level.
list_graphs
ChatGPTList the Roam graphs you've granted MCP access to. Returns each graph's name, optional nickname, and access level.
move_block
ChatGPTMove a block to a new location. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
move_block
ChatGPTMove a block to a new location. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
move_block
ChatGPTMove a block to a new location. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
roam_query
ChatGPTExecute a Roam query ({{query: }} or {{[[query]]: }} blocks, NOT Datalog). Two modes: (1) UID mode - pass a block UID containing a query component to run it with saved settings/filters; (2) Query mode - pass a raw query string like "{and: [[TODO]] {not: [[DONE]]}}". Returns paginated results with markdown content.
roam_query
ChatGPTExecute a Roam query ({{query: }} or {{[[query]]: }} blocks, NOT Datalog). Two modes: (1) UID mode - pass a block UID containing a query component to run it with saved settings/filters; (2) Query mode - pass a raw query string like "{and: [[TODO]] {not: [[DONE]]}}". Returns paginated results with markdown content.
roam_query
ChatGPTExecute a Roam query ({{query: }} or {{[[query]]: }} blocks, NOT Datalog). Two modes: (1) UID mode - pass a block UID containing a query component to run it with saved settings/filters; (2) Query mode - pass a raw query string like "{and: [[TODO]] {not: [[DONE]]}}". Returns paginated results with markdown content.
search
ChatGPTSearch for pages and blocks by text. Returns paginated results with markdown content and optional breadcrumb paths. Call with an empty query to get recently edited and viewed content — useful for understanding what the user is currently working on.
search
ChatGPTSearch for pages and blocks by text. Returns paginated results with markdown content and optional breadcrumb paths. Call with an empty query to get recently edited and viewed content — useful for understanding what the user is currently working on.
search
ChatGPTSearch for pages and blocks by text. Returns paginated results with markdown content and optional breadcrumb paths. Call with an empty query to get recently edited and viewed content — useful for understanding what the user is currently working on.
search_templates
ChatGPTSearch Roam templates by name. When the user mentions 'my X template' or 'the X template', use this tool to find it. Templates are user-created reusable content blocks tagged with [[roam/templates]]. Returns template name, uid, and content as markdown.
search_templates
ChatGPTSearch Roam templates by name. When the user mentions 'my X template' or 'the X template', use this tool to find it. Templates are user-created reusable content blocks tagged with [[roam/templates]]. Returns template name, uid, and content as markdown.
search_templates
ChatGPTSearch Roam templates by name. When the user mentions 'my X template' or 'the X template', use this tool to find it. Templates are user-created reusable content blocks tagged with [[roam/templates]]. Returns template name, uid, and content as markdown.
setup_new_graph
ChatGPTSet up a new Roam graph for MCP access. On the hosted MCP, graph access is granted via the OAuth picker — this tool returns a redirect message rather than configuring local files.
setup_new_graph
ChatGPTSet up a new Roam graph for MCP access. On the hosted MCP, graph access is granted via the OAuth picker — this tool returns a redirect message rather than configuring local files.
setup_new_graph
ChatGPTSet up a new Roam graph for MCP access. On the hosted MCP, graph access is granted via the OAuth picker — this tool returns a redirect message rather than configuring local files.
update_block
ChatGPTUpdate a single existing block's text and display properties (heading, collapse, alignment, children view type). Affects only the block with uid: string sets that block's literal text — it is NOT expanded into child blocks (unlike create_block/create_page), and the block's existing children are left untouched. To add or restructure children, use create_block / move_block / delete_block. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
update_block
ChatGPTUpdate a single existing block's text and display properties (heading, collapse, alignment, children view type). Affects only the block with uid: string sets that block's literal text — it is NOT expanded into child blocks (unlike create_block/create_page), and the block's existing children are left untouched. To add or restructure children, use create_block / move_block / delete_block. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
update_block
ChatGPTUpdate a single existing block's text and display properties (heading, collapse, alignment, children view type). Affects only the block with uid: string sets that block's literal text — it is NOT expanded into child blocks (unlike create_block/create_page), and the block's existing children are left untouched. To add or restructure children, use create_block / move_block / delete_block. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
update_page
ChatGPTUpdate a page's title or children view type. Set mergePages to true if renaming to a title that already exists. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
update_page
ChatGPTUpdate a page's title or children view type. Set mergePages to true if renaming to a title that already exists. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
update_page
ChatGPTUpdate a page's title or children view type. Set mergePages to true if renaming to a title that already exists. IMPORTANT: a requested or approved tool call is not proof it happened — only report this write done after the tool returns a non-empty result (UID(s) or {success:true}). If it returns nothing, or an empty or ambiguous result, don't claim success; verify or report uncertainty (see the server instructions).
append_to_daily_note
Claudecreate_block
Claudecreate_page
Claudedatalog_query
Claudedelete_block
Claudedelete_page
Claudeget_backlinks
Claudeget_block
Claudeget_graph_guidelines
Claudeget_page
Claudelist_graphs
Claudemove_block
Clauderoam_query
Claudesearch
Claudesearch_templates
Claudesetup_new_graph
Claudeupdate_block
Claudeupdate_page
Claude