Engagedly MCP by usefulapi
Read employees, learning progress, certificates and recognition in Engagedly.
Should I use this
Quality & Safety
Findings (3)
- LOWin engagedly_list_block_reason_codes
- LOWin engagedly_list_learning_resources
- LOWin engagedly_get_learning_resource_contents
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"engagedly": {
"url": "https://engagedly.usefulapi.io/mcp"
}
}
}Remote endpoints
https://engagedly.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (20)
🟢engagedly_list_users(email, include, page, size)
List employees with name, email, status, title, employee id and manager data. Filter by email. Use include to embed primary_reporter or direct_reports. API: GET /beta/users.
Input Schema
{
"type": "object",
"properties": {
"email": {
"description": "Return only the user with this email address.",
"type": "string"
},
"include": {
"description": "Comma-separated: primary_reporter, direct_reports.",
"type": "string"
},
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_user(user_id, include)
Get one user by id, with profile fields and optional related data. API: GET /beta/users/{id}.
Input Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"minLength": 1,
"description": "User id (from engagedly_list_users)."
},
"include": {
"description": "Comma-separated: primary_reporter, direct_reports.",
"type": "string"
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_user_permissions(user_id)
Get the permissions of one user. API: GET /beta/users/{id}/permissions.
Input Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"minLength": 1,
"description": "User id (from engagedly_list_users)."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_user_attributes
List the system and custom user attributes of the organization (keys, data types, options, mandatory flag). API: GET /beta/user-attributes.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_block_reason_codes
List the reason codes that Engagedly uses when it blocks a user. API: GET /beta/users/block-reason-codes.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_departments(page, size)
List departments of the organization. API: GET /beta/departments.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_department(id)
Get one department by id. API: GET /beta/departments/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The id (from engagedly_list_departments)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_businesses(page, size)
List business units of the organization. API: GET /beta/businesses.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_business(id)
Get one business by id. API: GET /beta/businesses/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The id (from engagedly_list_businesses)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_locations(page, size)
List locations of the organization. API: GET /beta/locations.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_location(id)
Get one location by id. API: GET /beta/locations/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The id (from engagedly_list_locations)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_job_titles(page, size)
List job titles of the organization. API: GET /beta/job_titles.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_job_title(id)
Get one job title by id. API: GET /beta/job_titles/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The id (from engagedly_list_job_titles)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_permissions(page, size)
List the permissions that exist in the organization. API: GET /beta/permissions.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_praises(page, size)
List public praises (recognition posts) between employees. API: GET /beta/activities/praises.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_learning_resources(search_text, types, languages, providers, levels, ...)
List courses and playlists with filters (title text, type, language, provider, level, tags, duration, certified, archived, short code). Each item has an id and a short_code. API: GET /beta/learning/resources.
Input Schema
{
"type": "object",
"properties": {
"search_text": {
"description": "Case-insensitive match on the title.",
"type": "string"
},
"types": {
"description": "Resource types, for example Course.",
"type": "array",
"items": {
"type": "string"
}
},
"languages": {
"description": "Language codes, for example en.",
"type": "array",
"items": {
"type": "string"
}
},
"providers": {
"description": "Content providers, for example engagedly, udemy, go1.",
"type": "array",
"items": {
"type": "string"
}
},
"levels": {
"description": "Difficulty levels.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Beginner",
"Intermediate",
"Advanced"
]
}
},
"tags": {
"description": "Tags.",
"type": "array",
"items": {
"type": "string"
}
},
"short_code": {
"description": "Return the resource with this exact short code.",
"type": "string"
},
"certified": {
"description": "Only resources that grant a certificate.",
"type": "boolean"
},
"archived": {
"description": "true = archived only; default is active only.",
"type": "boolean"
},
"min_duration_minutes": {
"description": "Minimum duration in minutes.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"max_duration_minutes": {
"description": "Maximum duration in minutes.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sort": {
"description": "Sort field, prefix with - for descending order.",
"type": "string"
},
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 15 for learning).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_learning_resource_contents(resource_id)
Get the content hierarchy (sections and items) of one course or playlist. API: GET /beta/learning/resources/{id}/contents.
Input Schema
{
"type": "object",
"properties": {
"resource_id": {
"type": "string",
"minLength": 1,
"description": "Resource id (from engagedly_list_learning_resources)."
}
},
"required": [
"resource_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_learner_report(learning_resource_ids, resource_types, page, size)
Report of learner progress per course or playlist. Filter by resource ids or types. API: GET /beta/learning/learner_reports.
Input Schema
{
"type": "object",
"properties": {
"learning_resource_ids": {
"description": "Internal course ids to report on.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"resource_types": {
"description": "Resource types, for example Course.",
"type": "array",
"items": {
"type": "string"
}
},
"page": {
"default": 1,
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"default": 25,
"description": "Items per page, 1 to 50.",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_list_certificates(user_id, term, start_date, end_date, status, ...)
List certificates awarded to employees (name, authority, validity dates). Filter by user, term, dates or status. API: GET /beta/certificates.
Input Schema
{
"type": "object",
"properties": {
"user_id": {
"description": "Only certificates of this user.",
"type": "string"
},
"term": {
"description": "Search on certificate name or authority.",
"type": "string"
},
"start_date": {
"description": "Valid on or after this date (YYYY-MM-DD).",
"type": "string"
},
"end_date": {
"description": "Valid on or before this date (YYYY-MM-DD).",
"type": "string"
},
"status": {
"description": "Validity status.",
"type": "string",
"enum": [
"active",
"expired"
]
},
"page": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 50 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢engagedly_get_certificate(id)
Get one certificate by id. API: GET /beta/certificates/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Certificate id (from engagedly_list_certificates)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence