Read Namely employee profiles, groups, teams, jobs and reports; update profiles, post to the feed.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Announcement text in markdown.
If true, also emails all active employees. Default false.
If true, mentioned profiles are appreciated.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
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.
| Argument | Type | Description |
|---|---|---|
| content* | string | Announcement text in markdown. |
| email_all | boolean | If true, also emails all active employees. Default false. |
| is_appreciation | boolean | If true, mentioned profiles are appreciated. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"content"
],
"properties": {
"content": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "Announcement text in markdown."
},
"email_all": {
"type": "boolean",
"description": "If true, also emails all active employees. Default false."
},
"is_appreciation": {
"type": "boolean",
"description": "If true, mentioned profiles are appreciated."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| content* | string | Comment text in markdown. |
| event_id* | string | Event id (from namely_list_events). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id",
"content"
],
"properties": {
"content": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "Comment text in markdown."
},
"event_id": {
"type": "string",
"minLength": 1,
"description": "Event id (from namely_list_events)."
}
}
}Get one group by id, with the profiles (members) linked to it. Namely API: GET /groups/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Group id (from namely_list_groups). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Group id (from namely_list_groups)."
}
}
}Get the profile of the user the connected token belongs to (name, email, job title, manager, access role). Namely API: GET /profiles/me.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Namely profile id (the `id` of a profile from namely_list_profiles). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Namely profile id (the `id` of a profile from namely_list_profiles)."
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Report id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Report id."
}
}
}Get one team by id, with the profiles (members) linked to it. Namely API: GET /teams/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Team id (from namely_list_teams). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Team id (from namely_list_teams)."
}
}
}List the comments on a feed event. Namely API: GET /events/{event-id}/comments.
| Argument | Type | Description |
|---|---|---|
| event_id* | string | Event id (from namely_list_events). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": "string",
"minLength": 1,
"description": "Event id (from namely_list_events)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | Event type, e.g. birthday, announcement, recent_arrival, anniversary. |
| after | string | Event id after which to start (for the next page). |
| limit | integer | Number of events to return (max 30). |
| order | string | Order by time; default desc. |
| profile_id | string | Only events associated with this profile id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"type": "string",
"description": "Event type, e.g. birthday, announcement, recent_arrival, anniversary."
},
"after": {
"type": "string",
"description": "Event id after which to start (for the next page)."
},
"limit": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Number of events to return (max 30)."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Order by time; default desc."
},
"profile_id": {
"type": "string",
"description": "Only events associated with this profile id."
}
}
}List the group types (the containers of groups, such as Department or Office). Namely API: GET /group_types.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List all groups (departments, office locations and other company groups). Every group belongs to one group type. Namely API: GET /groups.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List all job tiers (the levels that group job titles). Namely API: GET /job_tiers.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List all job titles; each belongs to one job tier. Namely API: GET /job_titles.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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).
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| sort | string | Sort order; a leading - reverses it. |
| string | Exact company email. | |
| format | string | short = truncated profile objects (default); full = every field. |
| per_page | integer | Profiles per page (default 30, max 50). |
| job_title | string | Exact job title (the `title` of a job title). |
| last_name | string | Exact last name. |
| first_name | string | Exact first name. |
List all teams with their team categories. Namely API: GET /teams.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Namely profile id (the `id` of a profile from namely_list_profiles). |
| string | Company email. | |
| job_title | object | New job title: an object with the id or the exact title of an existing job title. |
| last_name | string | Last name. |
| first_name | string | First name. |
| reports_to | string | Profile id of the new manager. |
| start_date | string | Start date, YYYY-MM-DD. |
| user_status | string | active or pending. |
| personal_email | string | Personal email (required when user_status is pending). |
| reports_to |
| string |
| Profile id of a manager: only that person's direct reports. |
| user_status | string | Only profiles with this status. |
| personal_email | string | Exact personal email. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"sort": {
"enum": [
"first_name",
"-first_name",
"last_name",
"-last_name",
"created_at",
"-created_at",
"updated_at",
"-updated_at"
],
"type": "string",
"description": "Sort order; a leading - reverses it."
},
"email": {
"type": "string",
"description": "Exact company email."
},
"format": {
"enum": [
"short",
"full"
],
"type": "string",
"description": "short = truncated profile objects (default); full = every field."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Profiles per page (default 30, max 50)."
},
"job_title": {
"type": "string",
"description": "Exact job title (the `title` of a job title)."
},
"last_name": {
"type": "string",
"description": "Exact last name."
},
"first_name": {
"type": "string",
"description": "Exact first name."
},
"reports_to": {
"type": "string",
"description": "Profile id of a manager: only that person's direct reports."
},
"user_status": {
"enum": [
"active",
"pending",
"inactive"
],
"type": "string",
"description": "Only profiles with this status."
},
"personal_email": {
"type": "string",
"description": "Exact personal email."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Namely profile id (the `id` of a profile from namely_list_profiles)."
},
"email": {
"type": "string",
"minLength": 3,
"description": "Company email."
},
"job_title": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Job title id (guid, from namely_list_job_titles)."
},
"title": {
"type": "string",
"minLength": 1,
"description": "Exact job title text (case-sensitive)."
}
},
"description": "New job title: an object with the id or the exact title of an existing job title."
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name."
},
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name."
},
"reports_to": {
"type": "string",
"minLength": 1,
"description": "Profile id of the new manager."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date, YYYY-MM-DD."
},
"user_status": {
"enum": [
"active",
"pending"
],
"type": "string",
"description": "active or pending."
},
"personal_email": {
"type": "string",
"minLength": 3,
"description": "Personal email (required when user_status is pending)."
}
}
}