{"id":577288,"recorded_at":"2026-10-27T23:09:15.660314Z","observed_at":"2026-10-27T23:09:15.660198Z","subject_kind":"endpoint","subject":"1b46af2a-25b8-4cc1-8df8-fa18ba4054ff","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":20,"tools":[{"description":"Determine if a topic needs FULL, DELTA, or X-DELTA soul.","inputSchema":{"properties":{"topic":{"description":"Topic to check","type":"string"}},"required":["topic"],"type":"object"},"name":"delta_check"},{"description":"One-call composite — returns score, tier-ready, valid, and engine identifier. Two WASM calls, sub-millisecond total.","inputSchema":{"properties":{"content":{"description":"Raw .faf YAML content to analyze.","type":"string"}},"required":["content"],"type":"object"},"name":"faf_analyze"},{"description":"Print a business card for an agent from its own name, description, colour and picture. Returns the agent's .fafa (FAF Agent file) and a link that opens its card. Nothing is stored: the .fafa travels in the link. The card says \"self-declared\" because nothing is checked against a repo.","inputSchema":{"properties":{"accent":{"description":"The card colour as a hex, e.g. \"#7c3aed\". Optional; none means ink (black or white).","type":"string"},"description":{"description":"What the agent does, in one line, up to 140 characters. Optional.","type":"string"},"icon":{"description":"An https link to a picture for the logo spot, e.g. \"https://example.com/me.png\". Optional; none means the monogram. A square PNG (256 x 256, transparent background) or an SVG looks best.","type":"string"},"name":{"description":"The agent's name, up to 100 characters.","type":"string"}},"required":["name"],"type":"object"},"name":"faf_business_card"},{"description":"Phase III (FRC §7b) — semantic search over a Grok Collection at the edge, KV-cached (1h TTL). Returns matched chunks (content, score, file). Requires the XAI_API_KEY secret; composes with faf_section (structural) for hybrid retrieval. Handled env-aware in the MCP handler (needs the key + KV).","inputSchema":{"properties":{"collection_id":{"description":"The Grok Collection id to search.","type":"string"},"limit":{"description":"Max chunks to return (default 5).","type":"number"},"query":{"description":"The search query.","type":"string"}},"required":["query","collection_id"],"type":"object"},"name":"faf_collections_search"},{"description":"Estimate token count for arbitrary content via the Zig WASM engine. Sub-millisecond, zero allocations. Useful for context-budget planning.","inputSchema":{"properties":{"content":{"description":"Content to estimate tokens for.","type":"string"}},"required":["content"],"type":"object"},"name":"faf_estimate_tokens"},{"description":"Phase III (FRC) — pre-promotion quality gate. Scores .faf content (edge Mk4) + estimates tokens and returns a deterministic promote/hold verdict BEFORE it goes to a Grok Collection. Promote IFF score >= min_score AND tokens <= max_tokens (defaults 85/8000). Edge parity with the local gate; the hold-hint can't list empty slots at the edge.","inputSchema":{"properties":{"content":{"description":"Raw .faf YAML content to gate.","type":"string"},"max_tokens":{"description":"Maximum tokens to promote (default 8000).","type":"number"},"min_score":{"description":"Minimum score to promote (default 85).","type":"number"}},"required":["content"],"type":"object"},"name":"faf_gate"},{"description":"Resolve the FAF tier for a given numeric score. Returns the tier symbol (Trophy/Gold/Silver/Bronze/etc.) per the canonical tier-table.","inputSchema":{"properties":{"score":{"description":"Numeric score 0-100.","type":"number"}},"required":["score"],"type":"object"},"name":"faf_get_tier"},{"description":"Phase III (FRC) — query the durable .fafm model by type/tag/priority/text. Omit filters for a structured summary. .fafm is NOT scored: this SELECTS facts (provenance preserved), never grades them.","inputSchema":{"properties":{"content":{"description":"Raw .fafm YAML content.","type":"string"},"priority":{"description":"Filter by priority (e.g. \"critical\").","type":"string"},"query":{"description":"Case-insensitive substring match on fact text.","type":"string"},"tag":{"description":"Filter by a tag.","type":"string"},"type":{"description":"Filter by fact type (e.g. \"feedback\").","type":"string"}},"required":["content"],"type":"object"},"name":"faf_memory"},{"description":"Takes raw content strings (`.faf`, `.fafm`, and optionally `package.json`/`CHANGELOG.md`/`README.md`) and runs deterministic drift + contradiction signals across the FAF substrate. Returns a structured `Recommendation` (recommend, severity, reason, summary) with `hints` containing the current `effective_policy` and `partial[]` for any stateful signals unavailable on the current surface. Light-lane execution (hosted) is WASM-pure with no filesystem access. Heavy-lane execution (local via bunx/rust-faf-mcp) has full FS + persisted state. Advisory only — never auto-fires.","inputSchema":{"properties":{"changelog":{"description":"Raw CHANGELOG.md content. Enables changelog cross-stamp checks.","type":"string"},"faf":{"description":"Raw .faf YAML content (project DNA). Required for any meaningful analysis.","type":"string"},"fafm":{"description":"Raw .fafm YAML content (memory layer). Enables drift detection.","type":"string"},"packageJson":{"description":"Raw package.json content. Enables version cross-stamp checks (.faf vs pkg).","type":"string"},"readme":{"description":"Raw README.md content. Enables README arch-tree cross-stamp checks.","type":"string"}},"type":"object"},"name":"faf_orchestrate_recommendation"},{"description":"Score .faf YAML content with the always-33 faf-kernel (WASM). Returns 0-100 (capped). The same score faf-cli and every FAF MCP give. Runs at the edge.","inputSchema":{"properties":{"content":{"description":"Raw .faf YAML content. Souls with a [faf] section have it extracted automatically.","type":"string"}},"required":["content"],"type":"object"},"name":"faf_score"},{"description":"Phase III (FRC) — returns an EXACT, WHOLE .faf section by dotted path (e.g. \"stack\", \"human_context\"), structure preserved — the deterministic complement to blind chunking. Omit \"section\" to list every path.","inputSchema":{"properties":{"content":{"description":"Raw .faf YAML content.","type":"string"},"section":{"description":"Dotted path to retrieve (e.g. \"stack.backend\"). Omit to list all paths.","type":"string"}},"required":["content"],"type":"object"},"name":"faf_section"},{"description":"Validate .faf YAML content: true if mission-ready (always-33 score of 100).","inputSchema":{"properties":{"content":{"description":"Raw .faf YAML content to validate.","type":"string"}},"required":["content"],"type":"object"},"name":"faf_validate"},{"description":"Generate a .faf file from any public GitHub repository WITHOUT cloning. Extracts 6 Ws from README, analyzes stack from languages and package.json, and generates Championship-grade AI context. Returns .faf content, quality score, and metadata.","inputSchema":{"properties":{"repo":{"description":"GitHub repository URL or owner/repo format (e.g., \"facebook/react\" or \"https://github.com/facebook/react\")","type":"string"}},"required":["repo"],"type":"object"},"name":"generate_faf_from_github"},{"description":"Fetch a context soul by name. Returns structured AI context.","inputSchema":{"properties":{"soul":{"description":"Soul identifier (e.g., \"spacex\", \"wolfe\", \"grok\")","type":"string"}},"required":["soul"],"type":"object"},"name":"get_soul"},{"description":"List all available context souls.","inputSchema":{"properties":{},"type":"object"},"name":"list_souls"},{"description":"List all unique tags used in a soul, with counts.","inputSchema":{"properties":{"soul":{"description":"Soul identifier","type":"string"}},"required":["soul"],"type":"object"},"name":"list_tags"},{"description":"Re-ground on .faf content — re-score with the always-33 faf-kernel (33 slots; slotignored slots drop out), report drift vs an optional baseline score, and return a stamped re-ground. The explicit re-grounding primitive for long sessions: drift → refresh → re-grounded. Built for Grok, by request.","inputSchema":{"properties":{"baseline":{"description":"Optional last-known score (0-100). When provided, the drift delta (current - baseline) is reported.","type":"number"},"content":{"description":"Raw .faf YAML content to re-ground on.","type":"string"},"verbatim":{"description":"When true, return the full .faf content verbatim with the stamp. Default false (stamped delta + summary).","type":"boolean"}},"required":["content"],"type":"object"},"name":"refresh_faf"},{"description":"Find all entries in a soul with a specific tag.","inputSchema":{"properties":{"soul":{"description":"Soul identifier","type":"string"},"tag":{"description":"Tag to search for","type":"string"}},"required":["soul","tag"],"type":"object"},"name":"search_by_tag"},{"description":"Full-text search across souls. Returns matching lines only (token-efficient).","inputSchema":{"properties":{"query":{"description":"Text to search for","type":"string"},"soul":{"description":"Specific soul (optional, searches all if omitted)","type":"string"}},"required":["query"],"type":"object"},"name":"search_context"},{"description":"Discover tag patterns, co-occurrence, candidates, and merge suggestions across all namepoints. Optionally suggest tags for a specific handle.","inputSchema":{"properties":{"handle":{"description":"Optional: suggest tags for this specific namepoint","type":"string"}},"type":"object"},"name":"tag_intel"}]},"body_sha256":"713ddd500ecc6fdfcdeef8935bdc170d15a18545d3cef6c331541811c244d995","prev_id":null,"leaf":"0x53b9cbf23f82ffda1e504ff52934c64bda91e9ef8e1f27d43d66acc29b85ddf5","leaf_text":"{\"body\":\"713ddd500ecc6fdfcdeef8935bdc170d15a18545d3cef6c331541811c244d995\",\"id\":577288,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793142555660198,\"prev\":null,\"subject\":\"1b46af2a-25b8-4cc1-8df8-fa18ba4054ff\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x53ba069753f3f38a3d7ed97f7eec4cfa92cab7e18048457389d6a6826575320f","0xdb7ddeef9ecfeb3a3e5acd99acffd81eeb709995fa4731cfa82ae77221f18a0c","0x0c8beffad1c28ba6a9330c36ad2abe61e8881c5e66b5d3e24fe4fac886be862f","0x5cb5c97d7506897661f53eb2b2df068445aa6082a06fe17fffe457c28e76c8dc","0xf4cc78f85b9f8d13601106f2c6b82a21f62a090ba20111efa4d727ab1900dc6e","0xff8183ff22bc85ff89ba340e21704db2ab4b410a521b32d2ac732f884d061863","0xc737ad93ebea0550d72e3c7fc31c35d97930942831a6303e609695272ac033ce","0x5b3edbded7d86a541790443ebb23eca8150404eb502b5e06a4684e58a4f1b354","0x6d2e34f141f5fcdb2843d218ea314b9b126336961d0e2dcec3c6ac0f01bfb743","0x22573d9b75262eb50d649722235079bebf5a524ae094ebf39c4458d8898f7213","0x64281736f78eb01af3a70566cf7e4fb98158dc598b5edcaf617b2e0560a28c6d","0xf8587b476357dd9dd2bdcf36df59b8f5ada3a7d06a3872295a01a0dd6b9e36d1","0x996f3d89f9508378f3c194c9828b500725dd599c52fd040349190982338d96f2","0x9ea0c6a53f80a30b6f13671109f98a000cf98e581875129f4be4b57131d06364","0xb78ea6a255dd06e2f402a1a733bca392fa6243920bcba95e8b80bdfc6ce5f553","0x3ed50f053eca72dfd3a9d45a11935240bfe691e57835c367ddebe2cbc49efe9d","0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d","0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}