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