AdminPulse MCP by usefulapi
Read relations, invoices, tasks and documents; create tasks and log interactions in AdminPulse.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWadminpulse_find_relations_by_name에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"adminpulse": {
"url": "https://adminpulse.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://adminpulse.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (15)
🟢adminpulse_get_current_user
Return the AdminPulse user that the API key belongs to (name and email). Good first call to confirm the connection. GET /users/me.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_list_companies
List the companies (administrations) that this key can access, with their ids. GET /companies.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_search_relations(page, pageSize, searchCriteria, type, withTags, ...)
List relations (clients, suppliers and contacts) with paging. Filter by text, relation type (0 company, 1 sole proprietor, 2 person), tags, or include inactive. GET /relations.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Results per page (1 to 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"searchCriteria": {
"description": "Free text: name, code or other searchable field.",
"type": "string"
},
"type": {
"description": "Relation type: 0 company, 1 sole proprietor, 2 person.",
"type": "integer",
"minimum": 0,
"maximum": 2
},
"withTags": {
"description": "Comma-separated tag names; only relations with these tags.",
"type": "string"
},
"includeInactive": {
"description": "Include inactive relations.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_get_relation(identifier)
Get one relation with its details. Pass the relation GUID or its unique identifier such as APR00001. GET /relations/{identifier}.
입력 스키마
{
"type": "object",
"properties": {
"identifier": {
"type": "string",
"minLength": 1,
"description": "Relation GUID or unique identifier, for example APR00001."
}
},
"required": [
"identifier"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_find_relations_by_name(searchValue, includeInactive, take)
Quick lookup of relations by name, returning a short list with their ids and unique identifiers. GET /relations/names.
입력 스키마
{
"type": "object",
"properties": {
"searchValue": {
"type": "string",
"minLength": 1,
"description": "Name or part of a name to find."
},
"includeInactive": {
"description": "Include inactive relations.",
"type": "boolean"
},
"take": {
"description": "Maximum number of results (1 to 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"searchValue"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_list_invoices(page, pageSize, relationIdentifier, invoiceDateFrom, invoiceDateUntil, ...)
List sales invoices with paging. Filter by relation, invoice date range, or sent, paid, exported and draft status. GET /invoices.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Results per page (1 to 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"relationIdentifier": {
"description": "Relation unique identifier, for example APR00001.",
"type": "string"
},
"invoiceDateFrom": {
"description": "Invoice date from, ddMMyyyy (as the API examples show).",
"type": "string"
},
"invoiceDateUntil": {
"description": "Invoice date until, ddMMyyyy (as the API examples show).",
"type": "string"
},
"sent": {
"type": "boolean"
},
"paid": {
"type": "boolean"
},
"exported": {
"type": "boolean"
},
"onlyDraft": {
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_get_invoice(invoiceId)
Get one invoice by its id (GUID), with its lines and payment status. GET /invoices/{invoiceId}.
입력 스키마
{
"type": "object",
"properties": {
"invoiceId": {
"type": "string",
"minLength": 1,
"description": "Invoice id (GUID) from adminpulse_list_invoices."
}
},
"required": [
"invoiceId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_list_tasks(page, pageSize, relationId, deadlineFrom, deadlineUntil, ...)
List tasks with paging. Filter by relation id, deadline range, or main task template. GET /tasks.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Results per page (1 to 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"relationId": {
"description": "Relation id (GUID).",
"type": "string"
},
"deadlineFrom": {
"description": "Deadline from (as the API documents it).",
"type": "string"
},
"deadlineUntil": {
"description": "Deadline until (as the API documents it).",
"type": "string"
},
"mainTaskTemplateId": {
"description": "Main task template id (GUID).",
"type": "string"
},
"languageCode": {
"description": "Two-letter language code for task names, for example nl.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_get_task(taskId)
Get one task by its id (GUID), with its status, deadline and relation. GET /tasks/{taskId}.
입력 스키마
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"minLength": 1,
"description": "Task id (GUID) from adminpulse_list_tasks."
}
},
"required": [
"taskId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴adminpulse_create_task(relationIdentifier, name, deadline, templateId, status, ...)
Create a task for a relation. The deadline is ISO, for example 2026-01-31T00:00:00. Status is the number the API defines. POST /tasks.
입력 스키마
{
"type": "object",
"properties": {
"relationIdentifier": {
"type": "string",
"minLength": 1,
"description": "Relation unique identifier, for example APR00001."
},
"name": {
"type": "string",
"minLength": 1,
"description": "Task name."
},
"deadline": {
"type": "string",
"minLength": 1,
"description": "Deadline in ISO format, for example 2026-01-31T00:00:00."
},
"templateId": {
"description": "Task template id (GUID), if the task comes from a template.",
"type": "string"
},
"status": {
"description": "Task status number as the API defines it.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"remark": {
"description": "Free text note.",
"type": "string"
},
"tags": {
"description": "Tag names to put on the task.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"relationIdentifier",
"name",
"deadline"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡adminpulse_update_task_status(relationIdentifier, deadline, mainTaskName, subTaskName, status, ...)
Set the status of a task found by relation, deadline and task names (no task id needed). Setting the same status again changes nothing. POST /tasks/updateStatus.
입력 스키마
{
"type": "object",
"properties": {
"relationIdentifier": {
"type": "string",
"minLength": 1,
"description": "Relation unique identifier, for example APR00001."
},
"deadline": {
"type": "string",
"minLength": 1,
"description": "Deadline of the task, ddMMyyyy (for example 31122020)."
},
"mainTaskName": {
"type": "string",
"minLength": 1,
"description": "Main task name, for example BTW listing."
},
"subTaskName": {
"type": "string",
"minLength": 1,
"description": "Sub task name, for example BTW listing opstellen."
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "New status number as the API defines it."
},
"inapplicable": {
"description": "Mark the task as not applicable.",
"type": "boolean"
},
"isBlocked": {
"description": "Mark the task as blocked.",
"type": "boolean"
}
},
"required": [
"relationIdentifier",
"deadline",
"mainTaskName",
"subTaskName",
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_list_interactions(page, pageSize, relationId, interactionType, dateFrom, ...)
List logged interactions (calls, meetings, notes) with paging. Filter by relation, type or date. GET /interactions.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Results per page (1 to 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"relationId": {
"description": "Relation id (GUID).",
"type": "string"
},
"interactionType": {
"description": "Interaction type number as the API defines it.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"dateFrom": {
"description": "Date from, ddMMyyyy (as the API examples show).",
"type": "string"
},
"dateUntil": {
"description": "Date until, ddMMyyyy (as the API examples show).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴adminpulse_add_interaction(title, relationIdentifier, description, interactiontype, date, ...)
Log an interaction (for example a call or a note) on a relation. The date is ddMMyyyy and the time is HH:mm. POST /interactions/add.
입력 스키마
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Short title of the interaction."
},
"relationIdentifier": {
"type": "string",
"minLength": 1,
"description": "Relation unique identifier, for example APR00001."
},
"description": {
"description": "Longer text of the interaction.",
"type": "string"
},
"interactiontype": {
"description": "Interaction type number as the API defines it.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"date": {
"description": "Date, ddMMyyyy.",
"type": "string",
"pattern": "^\\d{8}$"
},
"time": {
"description": "Time, HH:mm.",
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
}
},
"required": [
"title",
"relationIdentifier"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_list_registrations(page, pageSize, relationIdentifier, invoiced, registrationDateFrom, ...)
List time or cost registrations with paging. Filter by relation, invoiced state or registration date range. GET /registrations.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Results per page (1 to 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"relationIdentifier": {
"description": "Relation unique identifier, for example APR00001.",
"type": "string"
},
"invoiced": {
"description": "Only invoiced (true) or only not yet invoiced (false) registrations.",
"type": "boolean"
},
"registrationDateFrom": {
"description": "Registration date from, ddMMyyyy.",
"type": "string"
},
"registrationDateUntil": {
"description": "Registration date until, ddMMyyyy.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢adminpulse_list_documents(page, pageSize, relationIdentifier, documentDateFrom, documentDateUntil, ...)
List document metadata (name, type, dates, tags) with paging. Filter by relation or document date range. GET /documents.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Results per page (1 to 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"relationIdentifier": {
"description": "Relation unique identifier, for example APR00001.",
"type": "string"
},
"documentDateFrom": {
"description": "Document date from, ddMMyyyy.",
"type": "string"
},
"documentDateUntil": {
"description": "Document date until, ddMMyyyy.",
"type": "string"
},
"tagNames": {
"description": "Comma-separated tag names.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거