addrbookFor publishers
← The evidence ledger

Evidence row 299430

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint fcea2bd0-8a2e-4d63-a392-2799e884ea7e
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
f7604cd7cc35628f5c123c3986e6c2535291762b731fd604c0e2da34b51cba2b
Leaf
0xea2b9fba5f2d0b75174b9754fe12430a4127eac2784070d0d814c4c8490e8a67

What was observed

{
  "count": 4,
  "tools": [
    {
      "description": "Use when the user has several IPI name numbers, such as the writers on a song, a catalogue or a registration file, and wants to know who each one is, or whether some of a writer's works sit under another spelling or number. Up to 50 numbers per call. For each: the person holding it, their registered names, works in total and on their main number, works_elsewhere (registered only under another spelling or number), and a person_url.",
      "inputSchema": {
        "properties": {
          "ipi_name_numbers": {
            "description": "Up to 50 IPI name numbers",
            "items": {
              "anyOf": [
                {
                  "maxLength": 40,
                  "type": "string"
                },
                {
                  "minimum": 0,
                  "type": "integer"
                }
              ]
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Ipi Name Numbers",
            "type": "array"
          }
        },
        "required": [
          "ipi_name_numbers"
        ],
        "title": "check_writersArguments",
        "type": "object"
      },
      "name": "check_writers"
    },
    {
      "description": "Use when the user names a songwriter or composer and wants to know who they are, which person a name belongs to, or every registration of that writer. Returns the persons the name could be: each with a person ID, the names and IPI name numbers they are registered under, how many works, and a person_url to cite. Pairs listed under possibly_the_same_person were held apart and are not merged; `why` says why. Candidates are this lookup's own grouping, made afresh for the name, and can differ from the stored person that get_songwriter and the person page describe: a candidate can include records with no IPI name number that the stored person lists apart, and two candidates can carry the same person_id when this lookup keeps apart records the stored person joined. Each record's person_id is the stored person it belongs to, or null; person_records is how many records that person holds, and records_not_in_this_answer how many of them this candidate does not, because they sit in another candidate or outside this lookup. A candidate whose records belong to more than one stored person has no person_id and lists them in stored_persons, with a note: the stored records hold those registrations as different people. For a person's registrations as they stand, call get_songwriter. A candidate's works counts every record in it, records held apart from the person included; the person's own count is get_songwriter's works.total. Registrations are under legal names. When the user gives a professional or stage name and you know the writer's legal name, search the legal name first: a stage name usually returns other people whose names contain those words, not the writer. If the writer you expect is not among the candidates, or song_match.match is none, try their legal name. truncated means more registrations matched than one answer groups: a fuller name narrows it. Give a song title they wrote, when known, to say which of several namesakes wrote it. A one-word name is not searched: ask for the full name.",
      "inputSchema": {
        "properties": {
          "name": {
            "description": "The songwriter's full name, as registered or as commonly written",
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "song": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional: the title of a song they wrote",
            "title": "Song"
          }
        },
        "required": [
          "name"
        ],
        "title": "find_songwriterArguments",
        "type": "object"
      },
      "name": "find_songwriter"
    },
    {
      "description": "Use when you have a Songlinks person ID (SLP-XXXX-XXXX-X), from find_songwriter or a person page, and the user wants that writer's details: the registrations grouped into the person, records listed apart as possibly the same person, and their first works. Each record says how it was joined: `main` marks the record the ID was issued on, and `rule` is the evidence: same_ipi (another of the person's records carries the same IPI name number), ipi (it carries the person's own number), model (judged the same writer from works, co-writers and publishers in common; `score` is how sure), corroborated (confirmed by an independent source) or verdict (decided by a person). At most 25 works are listed; works.total is the full count and the person page lists the rest. works.ordered_by is `recordings` when the list starts with the most-recorded works, and `coded` when it is in catalogue-code order: then it is a sample, not the writer's best-known songs.",
      "inputSchema": {
        "properties": {
          "person_id": {
            "description": "A Songlinks person ID, SLP-XXXX-XXXX-X",
            "maxLength": 40,
            "minLength": 1,
            "title": "Person Id",
            "type": "string"
          }
        },
        "required": [
          "person_id"
        ],
        "title": "get_songwriterArguments",
        "type": "object"
      },
      "name": "get_songwriter"
    },
    {
      "description": "Use when the user has an IPI name number (up to 11 digits, often written without its leading zeros) and wants to know which songwriter holds it. Returns the person or persons holding the number, each with a person ID and person_url; use get_songwriter for one person's details. `none` means no person here holds it: it may be a publisher's number, or one whose registrations have not been grouped.",
      "inputSchema": {
        "properties": {
          "ipi_name_number": {
            "anyOf": [
              {
                "maxLength": 40,
                "minLength": 1,
                "type": "string"
              },
              {
                "minimum": 0,
                "type": "integer"
              }
            ],
            "description": "One IPI name number",
            "title": "Ipi Name Number"
          }
        },
        "required": [
          "ipi_name_number"
        ],
        "title": "songwriter_by_ipiArguments",
        "type": "object"
      },
      "name": "songwriter_by_ipi"
    }
  ]
}

What the leaf hashes

{"body":"f7604cd7cc35628f5c123c3986e6c2535291762b731fd604c0e2da34b51cba2b","id":299430,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793052820462332,"prev":null,"subject":"fcea2bd0-8a2e-4d63-a392-2799e884ea7e","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. 0xea2c745f2f421c731edc1af6a184cb5aab33bb9cae67bb72f3d9e3d578a47c10
  2. 0x24ea013904ed44aef7d47527b8a1d1a9810b3db5233d303139a28dbd55375293
  3. 0xaee34c739a53f085571886a99f572b4a497e9492d87b948aafe7ac657391a90b
  4. 0x97d14ef0eaa669c38d8f1445efa43f02696bf24b5ce0fab2f964023463784edd
  5. 0x67ef0b7d0e559ba521764dfa53fd0905579ffd0e59379dfb120fef073cf79d8e
  6. 0x42f0bffd8ba5c244b5e885c1a80e5f1ced239ab0d9b1757f6058469130067fe8
  7. 0x6d0b9f1579287b285890e3da3ee0fba7eb0b3c664dc0260690a13c99acae6491
  8. 0x15fbaa202b771428d85907916f5ce7d6f7262b599df584ed36719501c63e6e15
  9. 0x70c16165bfbbde7feb46e8a9bd506750035eeca2a11bee87e3c59c8f86700d0e
  10. 0xeeec22ca7728902ad7b7555da76e832c1a5feb9eab7fbd2016b96e53630a46dd
  11. 0x2ec584f2a0466a34409d72f745f85d43c3f2da79c7fe353433c8b601cf9f2050
  12. 0x22a204f0cf299dd3152f1542ba9998ff7665390da1ede6e58d06b8a7b2a107ee
  13. 0xec98ca25cb12ffed7c3e1373971719ce414ee6deecd1e7724b2979e2c356d99f
  14. 0x614d844c9e0509d9f9e63697aa2935555bce5f13695a8dc0047aa9e9898d70b3
  15. 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
  16. 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
  17. 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON