addrbookFor publishers
← The evidence ledger

Evidence row 1026830

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 9971438d-50f9-4de2-b37f-3541ee0af8bd
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
0c47370baf91930a7f88def27c7a2f8ccbf202baecb8ef5c4d2854e8afc27942
Leaf
0xc4bb9fa75f7451235441287b128a8888bcea6fc59cef2acfb8b54fcea1e5bc85

What was observed

{
  "count": 22,
  "tools": [
    {
      "description": "Draft a new Google Calendar meeting invite. Does NOT send invites without explicit user confirmation.",
      "inputSchema": {
        "properties": {
          "attendees": {
            "description": "List of attendee email addresses.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "Meeting agenda or description.",
            "type": "string"
          },
          "end_time": {
            "description": "ISO-8601 end timestamp (e.g., \"2026-09-17T14:45:00Z\").",
            "type": "string"
          },
          "start_time": {
            "description": "ISO-8601 start timestamp (e.g., \"2026-09-17T14:00:00Z\").",
            "type": "string"
          },
          "title": {
            "description": "Meeting title or summary.",
            "type": "string"
          }
        },
        "required": [
          "title",
          "start_time",
          "end_time"
        ],
        "type": "object"
      },
      "name": "calendar_create_meeting"
    },
    {
      "description": "List upcoming meetings, agenda items, and schedule availability from Google Calendar (read-only).",
      "inputSchema": {
        "properties": {
          "max_results": {
            "default": 5,
            "description": "Maximum number of events to return (1-20, default 5).",
            "type": "number"
          },
          "query": {
            "description": "Search query or event keyword (e.g., \"xAI sync\", \"Migration\", \"Team standup\").",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "calendar_list_events"
    },
    {
      "description": "Verify whether an agent action is safe and complies with active execution invariants before running.",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "The action name (e.g. \"sql_execute\", \"file_delete\", \"api_call\").",
            "type": "string"
          },
          "params": {
            "description": "Parameters supplied to the action.",
            "type": "object"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "check_action_safety"
    },
    {
      "description": "Create a new Google Slides presentation draft with structured slides.",
      "inputSchema": {
        "properties": {
          "slides": {
            "description": "Array of slide definitions.",
            "items": {
              "properties": {
                "bullet_points": {
                  "description": "Key bullet points for the slide",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "title": {
                  "description": "Slide title",
                  "type": "string"
                }
              },
              "required": [
                "title",
                "bullet_points"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "title": {
            "description": "Title of the presentation.",
            "type": "string"
          }
        },
        "required": [
          "title",
          "slides"
        ],
        "type": "object"
      },
      "name": "drive_create_presentation"
    },
    {
      "description": "Search documents, presentations, and files in Google Drive (read-only).",
      "inputSchema": {
        "properties": {
          "max_results": {
            "default": 5,
            "description": "Maximum files to return (1-20, default 5).",
            "type": "number"
          },
          "query": {
            "description": "Search terms or MIME filters (e.g., \"xAI compute\", \"type:presentation\").",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "drive_search_files"
    },
    {
      "description": "Look up an entity in Exogram's Layer 2 Knowledge Graph. Returns connected entities and directional relationships.",
      "inputSchema": {
        "properties": {
          "entity_name": {
            "description": "Name of the entity to look up (e.g., \"Next.js\", \"PostgreSQL\", \"SQLite WAL\").",
            "type": "string"
          }
        },
        "required": [
          "entity_name"
        ],
        "type": "object"
      },
      "name": "get_neural_cluster"
    },
    {
      "description": "Draft a GitHub Pull Request proposal. Does NOT open or publish the PR without explicit user approval.",
      "inputSchema": {
        "properties": {
          "base": {
            "default": "main",
            "description": "Target base branch (default: \"main\").",
            "type": "string"
          },
          "body": {
            "description": "Detailed PR description and change summary.",
            "type": "string"
          },
          "head": {
            "description": "Feature or working branch name.",
            "type": "string"
          },
          "repo": {
            "description": "Repository in format \"owner/repo\".",
            "type": "string"
          },
          "title": {
            "description": "Pull request title.",
            "type": "string"
          }
        },
        "required": [
          "repo",
          "title",
          "head",
          "body"
        ],
        "type": "object"
      },
      "name": "github_create_pr_draft"
    },
    {
      "description": "Search issues and pull requests across connected GitHub repositories (read-only).",
      "inputSchema": {
        "properties": {
          "query": {
            "description": "Search term or query syntax (e.g., \"is:open label:bug\", \"cluster sync\").",
            "type": "string"
          },
          "repo": {
            "description": "Repository in format \"owner/repo\" (e.g., \"Richard-Ewing/exogram\").",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "github_search_issues"
    },
    {
      "description": "Create an email draft in Gmail. Does NOT send the email without explicit user confirmation.",
      "inputSchema": {
        "properties": {
          "body": {
            "description": "Body content (plain text or markdown).",
            "type": "string"
          },
          "cc": {
            "description": "Optional CC recipient email address.",
            "type": "string"
          },
          "subject": {
            "description": "Subject line of the draft email.",
            "type": "string"
          },
          "to": {
            "description": "Recipient email address.",
            "type": "string"
          }
        },
        "required": [
          "to",
          "subject",
          "body"
        ],
        "type": "object"
      },
      "name": "gmail_create_draft"
    },
    {
      "description": "Search personal or workspace emails via Gmail API with query syntax (read-only).",
      "inputSchema": {
        "properties": {
          "max_results": {
            "default": 5,
            "description": "Maximum number of messages to return (1-20, default 5).",
            "type": "number"
          },
          "query": {
            "description": "Search query using Gmail syntax (e.g., \"from:xAI compute\", \"is:unread\", \"subject:launch\").",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "gmail_search_messages"
    },
    {
      "description": "Retrieve active entities and concepts mapped in the personal knowledge network.",
      "inputSchema": {
        "properties": {
          "limit": {
            "default": 25,
            "description": "Maximum number of entities to return (default 25).",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "list_entities"
    },
    {
      "description": "Draft new content or notes to append into an existing Notion page. Gated by explicit user approval.",
      "inputSchema": {
        "properties": {
          "block_type": {
            "default": "paragraph",
            "description": "Type of block: \"paragraph\", \"bulleted_list_item\", or \"callout\".",
            "type": "string"
          },
          "content": {
            "description": "Markdown content or structured notes to append.",
            "type": "string"
          },
          "page_id": {
            "description": "Target Notion page identifier or title.",
            "type": "string"
          }
        },
        "required": [
          "page_id",
          "content"
        ],
        "type": "object"
      },
      "name": "notion_append_block"
    },
    {
      "description": "Search pages and databases in the user connected Notion workspace.",
      "inputSchema": {
        "properties": {
          "filter_type": {
            "description": "Optional filter: \"page\" or \"database\".",
            "enum": [
              "page",
              "database"
            ],
            "type": "string"
          },
          "query": {
            "description": "Search keywords or topic to find in Notion.",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "notion_search_pages"
    },
    {
      "description": "Ask a natural language question against the knowledge graph and receive a structured answer with entity paths and gap analysis.",
      "inputSchema": {
        "properties": {
          "max_hops": {
            "default": 2,
            "description": "Maximum traversal depth (1-4, default 2).",
            "type": "number"
          },
          "query": {
            "description": "The natural language question to ask, e.g. \"How is Governed Autonomy connected to Exogram?\" or \"What do I know about AI safety?\"",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "query_graph"
    },
    {
      "description": "Record an execution decision into the tamper-evident cryptographic audit ledger.",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Action name.",
            "type": "string"
          },
          "decision": {
            "description": "Action decision.",
            "enum": [
              "PERMIT",
              "DENY"
            ],
            "type": "string"
          },
          "params": {
            "description": "Parameters supplied.",
            "type": "object"
          },
          "reason": {
            "description": "Justification for the decision.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "decision"
        ],
        "type": "object"
      },
      "name": "record_decision"
    },
    {
      "description": "Search the Exogram Personal Neural Network and encrypted memory vault across facts, people, preferences, and commitments.",
      "inputSchema": {
        "properties": {
          "query": {
            "description": "The search query to match against stored memories, relationships, or project context.",
            "type": "string"
          },
          "top_k": {
            "default": 5,
            "description": "Number of results to return (1-20, default 5).",
            "type": "number"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_memory_vault"
    },
    {
      "description": "Semantic and keyword search across stored personal records, facts, and memories in the private vault.",
      "inputSchema": {
        "properties": {
          "query": {
            "description": "The search query to match against stored memories, project decisions, or preferences.",
            "type": "string"
          },
          "top_k": {
            "default": 5,
            "description": "Number of results to return (1-20, default 5).",
            "type": "number"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_vault"
    },
    {
      "description": "List accessible channels in the connected Slack workspace.",
      "inputSchema": {
        "properties": {
          "types": {
            "default": "public_channel",
            "description": "Channel types to list (e.g. \"public_channel,private_channel\").",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "slack_list_channels"
    },
    {
      "description": "Draft a message to a Slack channel. Does NOT post without explicit user approval.",
      "inputSchema": {
        "properties": {
          "channel": {
            "description": "Target channel name or ID (e.g. \"#general\", \"#engineering\").",
            "type": "string"
          },
          "message": {
            "description": "Message body or announcement content.",
            "type": "string"
          },
          "thread_ts": {
            "description": "Optional parent thread timestamp for threaded replies.",
            "type": "string"
          }
        },
        "required": [
          "channel",
          "message"
        ],
        "type": "object"
      },
      "name": "slack_post_message_draft"
    },
    {
      "description": "Anchor a new fact, code convention, project invariant, or personal memory to your encrypted vault.",
      "inputSchema": {
        "properties": {
          "content": {
            "description": "The fact, note, or invariant content to persist.",
            "type": "string"
          },
          "namespace": {
            "default": "default",
            "description": "Logical grouping for this memory (default: \"default\").",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "name": "store_memory"
    },
    {
      "description": "Persist or supersede a personal fact, commitment, or preference in your encrypted Exogram memory vault.",
      "inputSchema": {
        "properties": {
          "content": {
            "description": "The fact, preference, or commitment to persist.",
            "type": "string"
          },
          "namespace": {
            "default": "default",
            "description": "Logical grouping or sphere (\"work\", \"household\", \"personal\", or \"default\").",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "name": "update_memory_vault"
    },
    {
      "description": "Verify the cryptographic SHA-256 hash chain integrity of the ledger from genesis to head.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "verify_audit_trail"
    }
  ]
}

What the leaf hashes

{"body":"0c47370baf91930a7f88def27c7a2f8ccbf202baecb8ef5c4d2854e8afc27942","id":1026830,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793280405869360,"prev":null,"subject":"9971438d-50f9-4de2-b37f-3541ee0af8bd","subject_kind":"endpoint"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON