Accredible MCP by usefulapi

Read Accredible credentials, groups, designs, analytics, skills; issue one credential as a draft.

사용해야 할까요

품질 및 안전성

A
설명 품질
99%
스키마 완전성
89%
이름 품질
77%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (6)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'accredible_search_attribute_keys' description contains placeholder textaccredible_search_attribute_keys에서
  • LOWTool 'accredible_get_credential_analytics' name length outside 3-30 rangeaccredible_get_credential_analytics에서
  • LOWTool 'accredible_search_attribute_keys' name length outside 3-30 rangeaccredible_search_attribute_keys에서
  • LOWTool 'accredible_list_skill_frameworks' name length outside 3-30 rangeaccredible_list_skill_frameworks에서
  • INFOTool description contains placeholder or incomplete textaccredible_search_attribute_keys에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~4,770토큰 (도구 정의)
~2.0 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.73%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "accredible": {
      "url": "https://accredible.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://accredible.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (19)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢accredible_get_issuer

The Accredible issuer (organization) behind the API key: id, name, e-mail, remaining credential credits (certificate_left), language and URL. Good first call. GET /v1/issuer/details.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_search_credentials(group_id, recipient_email, recipient_name, recipient_id, license_id, ...)

Search issued credentials (badges and certificates) with filters that combine with AND, newest first by default. Returns id, uuid, encoded_id, recipient name/e-mail, group, issued_on, expired_on, published state (approve), whether the recipient opened or engaged, and meta. Paging: size + offset (first 10 000 results) OR cursor: when the reply has next_cursor pass it as cursor for the next page (cursor and offset cannot be combined). POST /v2/credentials/search (a read-only search).

입력 스키마

{
  "type": "object",
  "properties": {
    "group_id": {
      "description": "Only credentials of this group (accredible_search_groups lists group ids).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "recipient_email": {
      "description": "Exact recipient e-mail address.",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "recipient_name": {
      "description": "Exact recipient name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "recipient_id": {
      "description": "The recipient id your organization set when issuing.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "license_id": {
      "description": "The custom credential id your organization set when issuing.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "uuid": {
      "description": "Credential UUID.",
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "published": {
      "description": "true = only published credentials, false = only unpublished drafts; omit for both.",
      "type": "boolean"
    },
    "issued_after": {
      "description": "Issued on or after this date (YYYY-MM-DD).",
      "type": "string"
    },
    "issued_before": {
      "description": "Issued on or before this date (YYYY-MM-DD).",
      "type": "string"
    },
    "expires_after": {
      "description": "Expires on or after this date (YYYY-MM-DD).",
      "type": "string"
    },
    "expires_before": {
      "description": "Expires on or before this date (YYYY-MM-DD).",
      "type": "string"
    },
    "updated_after": {
      "description": "Updated on or after this date (YYYY-MM-DD).",
      "type": "string"
    },
    "created_after": {
      "description": "Created on or after this date (YYYY-MM-DD).",
      "type": "string"
    },
    "sort_by": {
      "description": "Sort field (default: the API's order).",
      "type": "string",
      "enum": [
        "id",
        "recipient_name",
        "group.name",
        "issued_on",
        "expired_on"
      ]
    },
    "sort_order": {
      "description": "Sort direction (default desc when sort_by is set).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "size": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (offset paging, max 9950). Not with cursor.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9950
    },
    "cursor": {
      "description": "The next_cursor of the previous reply. Not with offset.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_get_credential(id)

One credential in full: recipient, group, issue and expiry dates, published state, public URL, evidence items, references, custom attributes and skills. The id is the numeric credential id or the custom id your organization set. GET /v1/credentials/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Credential id (numeric) or the custom credential id (license_id)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_get_credential_analytics(id)

The analytics events of one credential (recipient views, shares, privacy changes, verification and so on) with timestamps. Read-only despite being a POST. POST /v1/credentials/analytics/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Credential id (numeric) or the custom credential id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_list_analytics(start_date, end_date, group_id, department_id, page, ...)

Account-wide credential analytics events (views, shares, downloads and similar), optionally for a date range, group or department. Paged (default 100 per page). GET /v1/analytics.

입력 스키마

{
  "type": "object",
  "properties": {
    "start_date": {
      "description": "Only events after this date (YYYY-MM-DD).",
      "type": "string"
    },
    "end_date": {
      "description": "Only events before this date (YYYY-MM-DD).",
      "type": "string"
    },
    "group_id": {
      "description": "Only events of credentials in this group.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "department_id": {
      "description": "Only events of credentials in this department.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use meta.next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_search_groups(ids, name, course_name, department_id, collection_ids, ...)

Search groups (an achievement such as a course or qualification that credentials belong to). Filters combine with AND; name and course_name match partially. Returns id, name, course name and description, design ids, language and dates. Paged: pass meta.next_page as page. POST /v1/issuer/groups/search (a read-only search).

입력 스키마

{
  "type": "object",
  "properties": {
    "ids": {
      "description": "Only these group ids.",
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "name": {
      "description": "Part of the group name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "course_name": {
      "description": "Part of the course name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "department_id": {
      "description": "Only groups of this department (must be accessible to the key).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "collection_ids": {
      "description": "Only groups linked to any of these collection UUIDs.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      }
    },
    "meta_data": {
      "description": "Key/value strings you attached to the object's meta_data when you created it; matches objects carrying these pairs.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "updated_after": {
      "description": "Only groups updated after this date (YYYY-MM-DD).",
      "type": "string"
    },
    "updated_before": {
      "description": "Only groups updated before this date (YYYY-MM-DD).",
      "type": "string"
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use meta.next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_get_group(group_id)

One group in full: name, course name and description, learning outcomes, design ids, language, skills and dates. GET /v1/issuer/groups/{group_id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "group_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Group id (accredible_search_groups lists them)."
    }
  },
  "required": [
    "group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_search_designs(kind, meta_data)

List badge and certificate designs, optionally by kind or meta_data. POST /v1/designs/search (a read-only search).

입력 스키마

{
  "type": "object",
  "properties": {
    "kind": {
      "description": "Design kind, for example badge or certificate.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "meta_data": {
      "description": "Key/value strings you attached to the object's meta_data when you created it; matches objects carrying these pairs.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_get_design(design_id)

One badge or certificate design with its settings. GET /v1/designs/{design_id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "design_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Design id (accredible_search_designs or a group's design_id)."
    }
  },
  "required": [
    "design_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_search_departments(meta_data, page, page_size)

List departments (independent organization units with their own designs, groups and branding). An account-wide key sees all, a department key only its own. Paged: pass meta.next_page as page. POST /v1/departments/search (a read-only search).

입력 스키마

{
  "type": "object",
  "properties": {
    "meta_data": {
      "description": "Key/value strings you attached to the object's meta_data when you created it; matches objects carrying these pairs.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use meta.next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_get_department(department_id)

One department: name, description, URL, branding and meta_data. GET /v1/departments/{department_id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "department_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Department id (accredible_search_departments lists them)."
    }
  },
  "required": [
    "department_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_search_collections(ids, name, public, sort_by, sort_order, ...)

List collections (sets of groups shown together). Filters: ids, name (substring), public. Paged: pass meta.next_page as page. POST /v1/collections/search (a read-only search).

입력 스키마

{
  "type": "object",
  "properties": {
    "ids": {
      "description": "Only these collection ids (UUIDs).",
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    },
    "name": {
      "description": "Part of the collection name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "public": {
      "description": "true = only public collections, false = only non-public.",
      "type": "boolean"
    },
    "sort_by": {
      "description": "Sort field.",
      "type": "string",
      "enum": [
        "name",
        "groups_count",
        "public"
      ]
    },
    "sort_order": {
      "description": "Sort direction (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use meta.next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_search_attribute_keys(name, kind, department_id, page, page_size)

List the custom attribute keys (placeholders such as a grade or date that credential designs and e-mails merge in); useful to know which custom_attributes a credential can carry. Paged: pass meta.next_page as page. POST /v1/attribute_keys/search (a read-only search).

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Attribute key name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "kind": {
      "description": "Attribute kind.",
      "type": "string",
      "enum": [
        "text",
        "date",
        "email",
        "image"
      ]
    },
    "department_id": {
      "description": "Only keys of this department.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use meta.next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_list_skill_frameworks(department_id, page, page_size)

The skills frameworks (O*NET, ESCO, NACE or your own) enabled for a department, each with its published versions. Needs a plan that includes skills frameworks (otherwise HTTP 403 plan_not_entitled). Paged, max 10 per page. GET /v1/skill_frameworks.

입력 스키마

{
  "type": "object",
  "properties": {
    "department_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Department to list frameworks for (required, also for department keys)."
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use meta.next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-10 (default 5).",
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    }
  },
  "required": [
    "department_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_search_skills(framework_id, version_id, query, page, page_size)

Search the skills of one published skills-framework version by name or the publisher's identifier (partial, case-insensitive, at least 2 characters). Paged, max 50 per page. GET /v1/skill_frameworks/{id}/versions/{version_id}/skills.

입력 스키마

{
  "type": "object",
  "properties": {
    "framework_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Skill framework id (accredible_list_skill_frameworks)."
    },
    "version_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Version id from the framework's versions array."
    },
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 255,
      "description": "Text to search for (min 2 characters)."
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use meta.next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-50 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "framework_id",
    "version_id",
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_list_data_exports

Data exports of the departments the key can access: department, status (scheduled, processing, completed, errored) and download links of completed files. Exports are created in the Accredible Dashboard. GET /v1/data_exports.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_get_data_export(id)

One data export: department, status and, once completed, the download links of its files. GET /v1/data_exports/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Data export id (accredible_list_data_exports)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢accredible_get_team_member(id)

One team member of the account: name, e-mail and permissions per department. Which members are visible depends on the key (an account-wide key sees all, a department key its own department). GET /v1/team_members/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Team member id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴accredible_issue_credential(group_id, recipient_name, recipient_email, publish, recipient_id, ...)

WRITE: creates ONE credential (badge or certificate) for ONE recipient in an existing group. By default it is created UNPUBLISHED (a draft: no e-mail is sent and no credit is used); publish it later in the Accredible Dashboard. With publish=true the credential is published immediately: Accredible then SENDS AN E-MAIL to the recipient (as configured in the group's e-mail settings) and uses one credential credit of the account; an account without credits keeps it unpublished. A sandbox-mode setting in the Dashboard overrides publish. Not idempotent: calling twice creates two credentials (set credential_id to your own unique id to be able to find it again). No evidence, references, bulk issuing, edits or deletes. POST /v1/credentials.

입력 스키마

{
  "type": "object",
  "properties": {
    "group_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The group the credential belongs to (accredible_search_groups); it supplies the design and course texts."
    },
    "recipient_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "The recipient's full name as printed on the credential."
    },
    "recipient_email": {
      "type": "string",
      "maxLength": 320,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "The recipient's e-mail address (exactly one recipient)."
    },
    "publish": {
      "description": "Default false: create an unpublished draft (no e-mail). true: publish now, which e-mails the recipient and uses one credit.",
      "type": "boolean"
    },
    "recipient_id": {
      "description": "Your own id for the recipient (maps recipients to credentials across e-mail changes).",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "credential_id": {
      "description": "Your own unique id for this credential (license_id); Accredible assigns one if omitted.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "name": {
      "description": "Credential/course name; required only when the group has no course name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "description": {
      "description": "Credential/course description; required only when the group has no course description.",
      "type": "string",
      "minLength": 1,
      "maxLength": 5000
    },
    "issued_on": {
      "description": "Issue date YYYY-MM-DD (default today).",
      "type": "string"
    },
    "expired_on": {
      "description": "Expiry date YYYY-MM-DD (default none).",
      "type": "string"
    },
    "complete": {
      "description": "Whether the achievement is complete (default true); false marks it in progress.",
      "type": "boolean"
    },
    "private": {
      "description": "Make the credential private: visible only to the recipient after signing in to credential.net.",
      "type": "boolean"
    },
    "custom_attributes": {
      "description": "Custom attribute values merged into the design, e.g. {\"Location\": \"London\"} (keys must exist: accredible_search_attribute_keys).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "meta_data": {
      "description": "Key/value strings you attached to the object's meta_data when you created it; matches objects carrying these pairs.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "group_id",
    "recipient_name",
    "recipient_email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 19개