Paydirt MCP by usefulapi

Read, create and update clients, projects and jobs, and log time in Paydirt.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
98%
Integridad del esquema
82%
Calidad de los nombres
80%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'paydirt_update_client' description lacks action verben paydirt_update_client

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,397Tokens (definiciones de herramientas)
~1.1 KBTamaño de respuesta típico
Impacto moderado en la atención (1.87% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (16)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢paydirt_list_clients

List all clients of the account, with billing details and hourly rates. Paydirt API: GET /v1/clients.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada16 herramientas