Paydirt MCP by usefulapi
Read, create and update clients, projects and jobs, and log time in Paydirt.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin paydirt_update_client
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"paydirt": {
"url": "https://paydirt.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://paydirt.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (16)
🟢paydirt_list_clients
List all clients of the account, with billing details and hourly rates. Paydirt API: GET /v1/clients.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis