addrbookFor publishers
← The evidence ledger

Evidence row 300928

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 67fe47ec-cd89-4cb9-9040-09646db35d2d
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
451bdbe61bbfdaa265deb3d197da11aa7a2bb1db186d0ca0853adf040a7380bc
Leaf
0xe79f2792bbd26017c7008e1e972a5aafebdd89af1f8ffd82f88c3d284e7d77a9

What was observed

{
  "count": 17,
  "tools": [
    {
      "description": "Post an announcement to the company home feed, visible to every employee. Markdown; to mention a person write [Full Name](/people/<profile_id>). With is_appreciation, mentioned people are appreciated. email_all=true ALSO EMAILS every active employee at their company address (needs the permission) and cannot be undone: set it only when the user explicitly asks. Namely API: POST /events.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "content": {
            "description": "Announcement text in markdown.",
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          },
          "email_all": {
            "description": "If true, also emails all active employees. Default false.",
            "type": "boolean"
          },
          "is_appreciation": {
            "description": "If true, mentioned profiles are appreciated.",
            "type": "boolean"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "name": "namely_create_announcement"
    },
    {
      "description": "Add a comment to a feed event, posted as the token's user and visible to employees who see the event. Markdown; mention a person with [Full Name](/people/<profile_id>). Namely API: POST /events/{id}/comments.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "content": {
            "description": "Comment text in markdown.",
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          },
          "event_id": {
            "description": "Event id (from namely_list_events).",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "content"
        ],
        "type": "object"
      },
      "name": "namely_create_event_comment"
    },
    {
      "description": "Get one group by id, with the profiles (members) linked to it. Namely API: GET /groups/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "id": {
            "description": "Group id (from namely_list_groups).",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "namely_get_group"
    },
    {
      "description": "Get the profile of the user the connected token belongs to (name, email, job title, manager, access role). Namely API: GET /profiles/me.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "namely_get_me"
    },
    {
      "description": "Get one employee's full profile by id: personal and job data, manager, groups, teams and the custom fields the token may see (can include compensation and other sensitive HR data). Namely API: GET /profiles/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "id": {
            "description": "Namely profile id (the `id` of a profile from namely_list_profiles).",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "namely_get_profile"
    },
    {
      "description": "Run a saved Namely report by id and return its columns and rows (live data; each row is a list in column order). Find the id in the URL of the report in Namely. Reports can contain sensitive HR data such as salary history. Namely API: GET /reports/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "id": {
            "description": "Report id.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "namely_get_report"
    },
    {
      "description": "Get one team by id, with the profiles (members) linked to it. Namely API: GET /teams/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "id": {
            "description": "Team id (from namely_list_teams).",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "namely_get_team"
    },
    {
      "description": "List the comments on a feed event. Namely API: GET /events/{event-id}/comments.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "event_id": {
            "description": "Event id (from namely_list_events).",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "namely_list_event_comments"
    },
    {
      "description": "List events of the company home feed (announcements, birthdays, work anniversaries, new arrivals), newest first by default, with limit and after (an event id) for paging. Namely API: GET /events.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "after": {
            "description": "Event id after which to start (for the next page).",
            "type": "string"
          },
          "limit": {
            "description": "Number of events to return (max 30).",
            "maximum": 30,
            "minimum": 1,
            "type": "integer"
          },
          "order": {
            "description": "Order by time; default desc.",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          },
          "profile_id": {
            "description": "Only events associated with this profile id.",
            "type": "string"
          },
          "type": {
            "description": "Event type, e.g. birthday, announcement, recent_arrival, anniversary.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "namely_list_events"
    },
    {
      "description": "List the group types (the containers of groups, such as Department or Office). Namely API: GET /group_types.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "namely_list_group_types"
    },
    {
      "description": "List all groups (departments, office locations and other company groups). Every group belongs to one group type. Namely API: GET /groups.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "namely_list_groups"
    },
    {
      "description": "List all job tiers (the levels that group job titles). Namely API: GET /job_tiers.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "namely_list_job_tiers"
    },
    {
      "description": "List all job titles; each belongs to one job tier. Namely API: GET /job_titles.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "namely_list_job_titles"
    },
    {
      "description": "List the fields of the employee profile as configured at this company (standard and custom), with their labels, sections and the valid format of each value. Namely API: GET /profiles/fields.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "namely_list_profile_fields"
    },
    {
      "description": "List employee profiles (active, pending and inactive unless filtered) with paging, sorting and filters. Returns {profiles, meta:{count}, linked}. Use format=short for a smaller record (ids, names, email, status, job title); the full record includes every custom field the token may see (compensation, addresses and other sensitive HR data). An empty page means the end. Namely API: GET /profiles (limit 100 requests per minute).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "email": {
            "description": "Exact company email.",
            "type": "string"
          },
          "first_name": {
            "description": "Exact first name.",
            "type": "string"
          },
          "format": {
            "description": "short = truncated profile objects (default); full = every field.",
            "enum": [
              "short",
              "full"
            ],
            "type": "string"
          },
          "job_title": {
            "description": "Exact job title (the `title` of a job title).",
            "type": "string"
          },
          "last_name": {
            "description": "Exact last name.",
            "type": "string"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Profiles per page (default 30, max 50).",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "personal_email": {
            "description": "Exact personal email.",
            "type": "string"
          },
          "reports_to": {
            "description": "Profile id of a manager: only that person's direct reports.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order; a leading - reverses it.",
            "enum": [
              "first_name",
              "-first_name",
              "last_name",
              "-last_name",
              "created_at",
              "-created_at",
              "updated_at",
              "-updated_at"
            ],
            "type": "string"
          },
          "user_status": {
            "description": "Only profiles with this status.",
            "enum": [
              "active",
              "pending",
              "inactive"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "namely_list_profiles"
    },
    {
      "description": "List all teams with their team categories. Namely API: GET /teams.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "namely_list_teams"
    },
    {
      "description": "Change standard fields of an employee profile (name, emails, start date, status, manager, job title). WRITES live HR data. Send only the fields to change. Setting user_status to pending needs a personal_email. Namely API: PUT /profiles/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "email": {
            "description": "Company email.",
            "minLength": 3,
            "type": "string"
          },
          "first_name": {
            "description": "First name.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Namely profile id (the `id` of a profile from namely_list_profiles).",
            "minLength": 1,
            "type": "string"
          },
          "job_title": {
            "description": "New job title: an object with the id or the exact title of an existing job title.",
            "properties": {
              "id": {
                "description": "Job title id (guid, from namely_list_job_titles).",
                "minLength": 1,
                "type": "string"
              },
              "title": {
                "description": "Exact job title text (case-sensitive).",
                "minLength": 1,
                "type": "string"
              }
            },
            "type": "object"
          },
          "last_name": {
            "description": "Last name.",
            "minLength": 1,
            "type": "string"
          },
          "personal_email": {
            "description": "Personal email (required when user_status is pending).",
            "minLength": 3,
            "type": "string"
          },
          "reports_to": {
            "description": "Profile id of the new manager.",
            "minLength": 1,
            "type": "string"
          },
          "start_date": {
            "description": "Start date, YYYY-MM-DD.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "user_status": {
            "description": "active or pending.",
            "enum": [
              "active",
              "pending"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "namely_update_profile"
    }
  ]
}

What the leaf hashes

{"body":"451bdbe61bbfdaa265deb3d197da11aa7a2bb1db186d0ca0853adf040a7380bc","id":300928,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053737242650,"prev":null,"subject":"67fe47ec-cd89-4cb9-9040-09646db35d2d","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. 0xe79f1d5343f1ee9844f15c0b029fbfa990960288e99040d0b23c36f96e8ea2a9
  2. 0x7a1805f8efddc8a1a55c1203fdf77a4d58370fd85460d90c13d65c2c110e9543
  3. 0x4c0b6debf8b8e506cf0783e48c4b153e7bea011505ca5e539b8a5afc126e04aa
  4. 0xa1b24789661f177b26247b00e31b5fa9f5214877785b5db68c1d37b53069f6e9
  5. 0xf9b06722aa8a9fdd775e60703ce6c60e550c55e2cb1ca54a6b37f7f9a1218a69
  6. 0x209ab095a9c71c6aae876776a89c9d962b76b1a466cd82b2b7e5367a7baab350
  7. 0x6d93b7fffea24b94acd0d902f02c7343b368985dd2d6d4e356707282a336d1e8
  8. 0xa652126d78c15b80c2821ffe4106beb0de6df7f880dc96e03ad77b9ec69801b3
  9. 0x2a786d995f118d568b2cd35305632361c33d5f0497754da7981bf73762c501e1
  10. 0x5da7821808d0b41f2fd896fc8aa021cd9f87f6fb804fcaa5fa71fc51d13292df
  11. 0xf9ef09a725d52af13e504e0eafd5a3073b223792ca665fa964297ee3fc3cee9b
  12. 0x3d0b5282d5282c30fc9f86662367cab01d0dba65f13d2968391a7d087b79dfb3
  13. 0xafcc1fe54cfe00a3a1de33df127340075f22433bb89848bbc81499cd7aca5b2b
  14. 0x9bc5fc98278b9f6dc18c66c6e162aefd5244be03170d41bc5161f58ad11beed7
  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