Paydirt MCP by usefulapi
Read, create and update clients, projects and jobs, and log time in Paydirt.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWpaydirt_update_client에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"paydirt": {
"url": "https://paydirt.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://paydirt.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (16)
🟢paydirt_list_clients
List all clients of the account, with billing details and hourly rates. Paydirt API: GET /v1/clients.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_get_client(client_id)
Get one client by id. Paydirt API: GET /v1/clients/{id}.
입력 스키마
{
"type": "object",
"properties": {
"client_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The client id."
}
},
"required": [
"client_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴paydirt_create_client(business_name)
Create a client with a business name. Paydirt API: POST /v1/clients.
입력 스키마
{
"type": "object",
"properties": {
"business_name": {
"type": "string",
"minLength": 1,
"description": "The client's business name."
}
},
"required": [
"business_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡paydirt_update_client(client_id, business_name)
Change the business name of an existing client. Paydirt API: PUT /v1/clients/{id}.
입력 스키마
{
"type": "object",
"properties": {
"client_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The client id."
},
"business_name": {
"type": "string",
"minLength": 1,
"description": "The new business name."
}
},
"required": [
"client_id",
"business_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_list_projects
List all projects of the account, with their client and completion status. Paydirt API: GET /v1/projects.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_get_project(project_id)
Get one project by id. Paydirt API: GET /v1/projects/{id}.
입력 스키마
{
"type": "object",
"properties": {
"project_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The project id."
}
},
"required": [
"project_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴paydirt_create_project(client_id, name, completed)
Create a project under a client. Paydirt API: POST /v1/projects.
입력 스키마
{
"type": "object",
"properties": {
"client_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The client that owns the project id."
},
"name": {
"type": "string",
"minLength": 1,
"description": "The project name."
},
"completed": {
"description": "Whether the project is completed.",
"type": "boolean"
}
},
"required": [
"client_id",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡paydirt_update_project(project_id, name, completed)
Rename a project or mark it completed or open. Paydirt API: PUT /v1/projects/{id}.
입력 스키마
{
"type": "object",
"properties": {
"project_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The project id."
},
"name": {
"description": "The new project name.",
"type": "string",
"minLength": 1
},
"completed": {
"description": "Whether the project is completed.",
"type": "boolean"
}
},
"required": [
"project_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_list_jobs
List all jobs of the account, with price, price type, estimate and completion. Paydirt API: GET /v1/jobs.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_get_job(job_id)
Get one job by id. Paydirt API: GET /v1/jobs/{id}.
입력 스키마
{
"type": "object",
"properties": {
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The job id."
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴paydirt_create_job(project_id, name, price_type, price, completed)
Create a job in a project. price_type 0 = per hour at the job price, 1 = fixed price, 2 = per hour at each user's rate. Paydirt API: POST /v1/jobs.
입력 스키마
{
"type": "object",
"properties": {
"project_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The project that owns the job id."
},
"name": {
"type": "string",
"minLength": 1,
"description": "The job name."
},
"price_type": {
"type": "integer",
"minimum": 0,
"maximum": 2,
"description": "0 = per hour, 1 = fixed price, 2 = per hour at each user's rate."
},
"price": {
"type": "number",
"minimum": 0,
"description": "The job price. Its meaning depends on price_type."
},
"completed": {
"description": "Whether the job is completed.",
"type": "boolean"
}
},
"required": [
"project_id",
"name",
"price_type",
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡paydirt_update_job(job_id, name, project_id, completed)
Rename a job, move it to another project, or mark it completed or open. Paydirt API: PUT /v1/jobs/{id}.
입력 스키마
{
"type": "object",
"properties": {
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The job id."
},
"name": {
"description": "The new job name.",
"type": "string",
"minLength": 1
},
"project_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The project the job moves to id."
},
"completed": {
"description": "Whether the job is completed.",
"type": "boolean"
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_list_time_logs(start, end, user_id, client_id, project_id, ...)
List time logs, optionally filtered by date range, user, client, project, job, billable or billed status. Paydirt API: GET /v1/time.
입력 스키마
{
"type": "object",
"properties": {
"start": {
"description": "Include logs on and after this date (inclusive).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"end": {
"description": "Include logs up to and including this date.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The user id."
},
"client_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The client id."
},
"project_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The project id."
},
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The job id."
},
"billable": {
"description": "true = billable only, false = unbillable only.",
"type": "boolean"
},
"billed": {
"description": "true = billed only, false = unbilled only.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_get_time_log(time_log_id)
Get one time log by id. Paydirt API: GET /v1/time/{id}.
입력 스키마
{
"type": "object",
"properties": {
"time_log_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The time log id."
}
},
"required": [
"time_log_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴paydirt_create_time_log(job_id, user_id, duration_only, duration, date, ...)
Log time against a job. Give started_at and ended_at, or set duration_only true and give duration (seconds) and date. Defaults to the calling user. Creates a billable record. Paydirt API: POST /v1/time.
입력 스키마
{
"type": "object",
"properties": {
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The job the time is logged against id."
},
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The user who did the work (default: the calling user) id."
},
"duration_only": {
"description": "true = log a duration on a date; false = log a start and end time.",
"type": "boolean"
},
"duration": {
"description": "Duration in seconds. Required when duration_only is true.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"date": {
"description": "Date of the log. Required when duration_only is true.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"started_at": {
"description": "Start time. Required when duration_only is false.",
"type": "string"
},
"ended_at": {
"description": "End time. Required when duration_only is false.",
"type": "string"
},
"description": {
"description": "What the work was about.",
"type": "string"
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢paydirt_list_users
List the users of the account (ids, names and emails). Use the ids for user_id filters. Paydirt API: GET /v1/users.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거