addrbookFor publishers
← The evidence ledger

Evidence row 290522

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint d3d141a3-54dd-4ff9-9b2d-437d17e3f49e
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
fcc67a24514e890a26436d7da8137813fbd7a1998e3a2b6cb57f0146f500ba8b
Leaf
0x7a416578e867b425f2baecc30d6ceb5417688b1cd0cb5a5c22d6916071e13263

What was observed

{
  "count": 5,
  "tools": [
    {
      "description": "Look up a social post generation job by id. Returns the finished posts once the job completes, or its current progress while it runs. Costs nothing.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "job_id": {
            "description": "The job id returned by generate_social_post.",
            "type": "string"
          }
        },
        "required": [
          "job_id"
        ],
        "type": "object"
      },
      "name": "check_social_job"
    },
    {
      "description": "Write a social media post from scratch for a given platform and topic. Use this when you do not already have a draft — for example to produce several variations at once, or for platforms whose conventions you are unsure of. If you have already written the post yourself, prefer score_text and humanize_text, which check and fix your own wording instead of replacing it. Returns a job id immediately — poll it with check_social_job, which usually completes in 20-90 seconds. Costs credits.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "brand_audience": {
            "description": "Who the post should speak to.",
            "type": "string"
          },
          "brand_description": {
            "description": "What the business does.",
            "type": "string"
          },
          "brand_keywords": {
            "description": "Comma-separated terms to work in.",
            "type": "string"
          },
          "brand_name": {
            "description": "Brand to mention where it reads naturally.",
            "type": "string"
          },
          "brand_tone": {
            "description": "Voice guidance, e.g. 'Direct, no jargon'.",
            "type": "string"
          },
          "detect_ai": {
            "description": "Score the post against AI detection and retry if it reads as machine-written. Adds 8 credits per post. Omit for automatic: runs only at 150+ words, because short posts score unreliably.",
            "type": "boolean"
          },
          "emoji": {
            "description": "Add emoji to the post. Omit for automatic: off on LinkedIn and YouTube, on elsewhere. Set false for a clean post on any platform.",
            "type": "boolean"
          },
          "generate_image": {
            "description": "Generate a matching image for the post. Defaults to false over MCP; pass true to request one. Adds 10 credits per post.",
            "type": "boolean"
          },
          "humanize": {
            "description": "Rewrite the post to read as human-authored. Omit for automatic: the draft is scored first and humanized only if it reads as machine-written. Skipping it keeps the exact wording and saves credits, since a well-written post often already passes.",
            "type": "boolean"
          },
          "language": {
            "description": "Output language by name. Defaults to English.",
            "type": "string"
          },
          "platform": {
            "description": "Target platform. Each has its own style guide and default length.",
            "enum": [
              "facebook",
              "instagram",
              "linkedin",
              "pinterest",
              "tiktok",
              "twitter",
              "youtube"
            ],
            "type": "string"
          },
          "preserve": {
            "description": "Exact lines that must appear verbatim in the finished post — a closing question, a call to action, a tagline. The humanizer rewrites sentences, so anything whose exact wording matters belongs here rather than only in the topic.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "quantity": {
            "description": "How many distinct variations to generate. Defaults to 1.",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "tone": {
            "description": "Defaults to friendly.",
            "enum": [
              "casual",
              "educational",
              "friendly",
              "humorous",
              "inspirational",
              "professional"
            ],
            "type": "string"
          },
          "topic": {
            "description": "What the post should be about.",
            "minLength": 3,
            "type": "string"
          },
          "word_count": {
            "description": "Target length per post. Omit to use the platform default (LinkedIn 100, YouTube 150, Facebook/Pinterest 75, Instagram/TikTok 50, X 40).",
            "maximum": 500,
            "minimum": 10,
            "type": "integer"
          }
        },
        "required": [
          "topic",
          "platform"
        ],
        "type": "object"
      },
      "name": "generate_social_post"
    },
    {
      "description": "Rewrite text so it no longer reads as machine-written, using an external humanizing service. Use this on your own writing when score_text says it would be flagged. Brand names, domains and any lines listed in `preserve` are restored verbatim afterwards, because the humanizer rewrites whole sentences and splits names. Costs 1 credit per 20 words.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "brand_terms": {
            "description": "Names that must not be altered, e.g. a product name the humanizer would otherwise split into two words.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "preserve": {
            "description": "Exact lines that must survive verbatim — a tagline, a call to action, a closing question.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "score_after": {
            "description": "Score the rewritten text and return it. Adds 8 credits. Defaults to false.",
            "type": "boolean"
          },
          "text": {
            "description": "The text to rewrite. At least 10 characters.",
            "minLength": 10,
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "humanize_text"
    },
    {
      "description": "List the platforms generate_social_post supports, with each one's default post length and emoji policy. Costs nothing and makes no network call.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_social_platforms"
    },
    {
      "description": "Check how machine-written a piece of text reads, using an external AI detector. Returns a score from 0 to 65 where 0 reads as human and anything above 30 is likely to be flagged. Use this on text you have already written to find out whether it will pass before it is published — it is a measurement you cannot make yourself. Costs 8 credits per call.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "text": {
            "description": "The text to score. At least 10 characters.",
            "minLength": 10,
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "score_text"
    }
  ]
}

What the leaf hashes

{"body":"fcc67a24514e890a26436d7da8137813fbd7a1998e3a2b6cb57f0146f500ba8b","id":290522,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793047337386124,"prev":null,"subject":"d3d141a3-54dd-4ff9-9b2d-437d17e3f49e","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x7a4157952451de3117c8c6d53866b33283f05e30ed192d6a372dfedeb930c5a3
  2. 0x92971ef5bbceaa76074dd2e0fee48279e113fa2d190900824cb739608bcdcca6
  3. 0x88aa6c346b777b71e3e72dc58b1a9edf5aaaff1817a9b6d3435ea5b537ba630f
  4. 0x0873855714949d9098295d8ae101ee83bf0f68a90844f7b5f5361be96bdba49c
  5. 0xc5210e721ba7fed63e1e825284a25d914656c77ab2d4991e1f6e6c4707c67a2e
  6. 0xeba12697c34e08db3610a3427079929b7921cf1a259219f27e1d1d0a6ba88063
  7. 0x2e9046b118ad2c9b8e2fcf0923811f9e0557e66a7973c372e0524fa2c0f47258
  8. 0xd3507d06d4cad3e959c2909043d3086baacb812273d7f78412405f08b4ad6ea0
  9. 0x4a5f24de43215ab4d4d63b885e82341f9af2f4b6cdcaaa7b5e53c2a252e14c23
  10. 0xd7bfe89d1c95d31c83b5cd958ac57e187ca41d9a64c12c75ed199d276c80aa6f
  11. 0x1474b20023ac420a3be8200f14f9ac14f1ee93ff05411fa3760c28b2e50fb3dd
  12. 0xa6406b1a5540d26e0cbd03bb274a01c10968fadb17913a6043bb9427ddfb71ba
  13. 0x01c95624b1f2385ef774ee258a9ae58a4df07a1bdaa829de84e1d5201f3f39c2
  14. 0x7721d38652b6444b18e1193824e50490ade04851ce6221771f6e374c4527d80f
  15. 0x15039087bf60ae9b06b756ec3cbc299760e59923a438bbd91e34d105186db0ed
  16. 0x2b6e23e3624a1b66e1d2298cfbce99a93ce6b13d24a58112a71802d79c5f7a76
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON