← 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).
- 0xe79f1d5343f1ee9844f15c0b029fbfa990960288e99040d0b23c36f96e8ea2a9
- 0x7a1805f8efddc8a1a55c1203fdf77a4d58370fd85460d90c13d65c2c110e9543
- 0x4c0b6debf8b8e506cf0783e48c4b153e7bea011505ca5e539b8a5afc126e04aa
- 0xa1b24789661f177b26247b00e31b5fa9f5214877785b5db68c1d37b53069f6e9
- 0xf9b06722aa8a9fdd775e60703ce6c60e550c55e2cb1ca54a6b37f7f9a1218a69
- 0x209ab095a9c71c6aae876776a89c9d962b76b1a466cd82b2b7e5367a7baab350
- 0x6d93b7fffea24b94acd0d902f02c7343b368985dd2d6d4e356707282a336d1e8
- 0xa652126d78c15b80c2821ffe4106beb0de6df7f880dc96e03ad77b9ec69801b3
- 0x2a786d995f118d568b2cd35305632361c33d5f0497754da7981bf73762c501e1
- 0x5da7821808d0b41f2fd896fc8aa021cd9f87f6fb804fcaa5fa71fc51d13292df
- 0xf9ef09a725d52af13e504e0eafd5a3073b223792ca665fa964297ee3fc3cee9b
- 0x3d0b5282d5282c30fc9f86662367cab01d0dba65f13d2968391a7d087b79dfb3
- 0xafcc1fe54cfe00a3a1de33df127340075f22433bb89848bbc81499cd7aca5b2b
- 0x9bc5fc98278b9f6dc18c66c6e162aefd5244be03170d41bc5161f58ad11beed7
- 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
- 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
- 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae