Bidsketch MCP by usefulapi

Read Bidsketch clients, proposals, fees and templates; create and update clients, proposals, fees.

¿Debería usar esto?

Calidad y seguridad

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

Hallazgos (3)

  • LOWTool 'bidsketch_list_client_proposals' name length outside 3-30 rangeen bidsketch_list_client_proposals
  • LOWTool 'bidsketch_list_proposal_sections' name length outside 3-30 rangeen bidsketch_list_proposal_sections
  • LOWTool 'bidsketch_update_proposal_section' name length outside 3-30 rangeen bidsketch_update_proposal_section

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

Costo de contexto

~6,128Tokens (definiciones de herramientas)
~1.7 KBTamaño de respuesta típico
Impacto significativo en la atención (4.79% 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": {
    "bidsketch": {
      "url": "https://bidsketch.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (29)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢bidsketch_list_clients(page, per_page)

List the clients (people or companies proposals are prepared for) with id, name, email and phone. GET /clients.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_client(client_id)

Get one client with full contact details, address, notes and secondary contact. GET /clients/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The client id from bidsketch_list_clients (a positive integer)."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_list_client_proposals(client_id, page, per_page)

List the proposals of one client with status (Pending, Viewed, Accepted, Declined) and draft flag. GET /clients/{id}/proposals.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The client id (a positive integer)."
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡bidsketch_create_client(first_name, last_name, email, name, phone, ...)

WRITE: create a client in Bidsketch. first_name, last_name and email are required (put a company name in `name`). Some Bidsketch plans cap the number of clients (HTTP 426 when reached). POST /clients.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Client's first name (required by Bidsketch)."
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Client's last name (required by Bidsketch)."
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 320,
      "description": "Client's primary email address (required by Bidsketch)."
    },
    "name": {
      "description": "Client's full name or company name.",
      "type": "string",
      "maxLength": 300
    },
    "phone": {
      "type": "string",
      "maxLength": 100
    },
    "alt_phone": {
      "type": "string",
      "maxLength": 100
    },
    "website": {
      "type": "string",
      "maxLength": 300
    },
    "address_field_one": {
      "type": "string",
      "maxLength": 300
    },
    "address_field_two": {
      "type": "string",
      "maxLength": 300
    },
    "city": {
      "type": "string",
      "maxLength": 200
    },
    "state": {
      "type": "string",
      "maxLength": 200
    },
    "postal_zip": {
      "type": "string",
      "maxLength": 50
    },
    "country": {
      "type": "string",
      "maxLength": 100
    },
    "notes": {
      "description": "Notes about the client (plain text, not escaped).",
      "type": "string",
      "maxLength": 20000
    },
    "other_contact": {
      "type": "object",
      "properties": {
        "first_name": {
          "type": "string",
          "maxLength": 200
        },
        "last_name": {
          "type": "string",
          "maxLength": 200
        },
        "email": {
          "type": "string",
          "maxLength": 320
        },
        "phone": {
          "type": "string",
          "maxLength": 100
        }
      },
      "required": [
        "first_name",
        "last_name",
        "email"
      ],
      "description": "Secondary contact; first_name, last_name and email are required when given."
    }
  },
  "required": [
    "first_name",
    "last_name",
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bidsketch_update_client(client_id, first_name, last_name, email, name, ...)

WRITE: change fields of an existing client; only the fields you pass are sent and overwrite the old values. PUT /clients/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The client id (a positive integer)."
    },
    "first_name": {
      "description": "Client's first name (a person).",
      "type": "string",
      "maxLength": 200
    },
    "last_name": {
      "description": "Client's last name (a person).",
      "type": "string",
      "maxLength": 200
    },
    "email": {
      "description": "Client's primary email address.",
      "type": "string",
      "maxLength": 320
    },
    "name": {
      "description": "Client's full name or company name.",
      "type": "string",
      "maxLength": 300
    },
    "phone": {
      "type": "string",
      "maxLength": 100
    },
    "alt_phone": {
      "type": "string",
      "maxLength": 100
    },
    "website": {
      "type": "string",
      "maxLength": 300
    },
    "address_field_one": {
      "type": "string",
      "maxLength": 300
    },
    "address_field_two": {
      "type": "string",
      "maxLength": 300
    },
    "city": {
      "type": "string",
      "maxLength": 200
    },
    "state": {
      "type": "string",
      "maxLength": 200
    },
    "postal_zip": {
      "type": "string",
      "maxLength": 50
    },
    "country": {
      "type": "string",
      "maxLength": 100
    },
    "notes": {
      "description": "Notes about the client (plain text, not escaped).",
      "type": "string",
      "maxLength": 20000
    },
    "other_contact": {
      "type": "object",
      "properties": {
        "first_name": {
          "type": "string",
          "maxLength": 200
        },
        "last_name": {
          "type": "string",
          "maxLength": 200
        },
        "email": {
          "type": "string",
          "maxLength": 320
        },
        "phone": {
          "type": "string",
          "maxLength": 100
        }
      },
      "required": [
        "first_name",
        "last_name",
        "email"
      ],
      "description": "Secondary contact; first_name, last_name and email are required when given."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_list_proposals(page, per_page)

List all proposals with name, status (Pending, Viewed, Accepted, Declined), draft flag and dates. GET /proposals.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_proposal_stats

Proposal statistics for the account (the total number of proposals). GET /proposals/stats.json.

Esquema de entrada

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

Get one proposal: status, client, currency, fee subtotals and total, tax/discount, settings and counts of its opening sections, fees and closing sections. GET /proposals/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id from bidsketch_list_proposals (a positive integer)."
    }
  },
  "required": [
    "proposal_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_proposal_content(proposal_id)

Get the full content of a proposal in order: opening sections, fees and closing sections. GET /proposals/{id}/content.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    }
  },
  "required": [
    "proposal_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_list_proposal_sections(proposal_id, page, per_page)

List the text sections of one proposal (opening and closing). GET /proposals/{id}/sections.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "proposal_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_proposal_section(proposal_id, section_id)

Get one section of a proposal with its HTML description. GET /proposals/{id}/sections/{section_id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "section_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal section id (a positive integer)."
    }
  },
  "required": [
    "proposal_id",
    "section_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_list_proposal_fees(proposal_id, page, per_page)

List the fee lines of one proposal with type, totals and the optional flag. GET /proposals/{id}/fees.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "proposal_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_proposal_fee(proposal_id, fee_id)

Get one fee line of a proposal. GET /proposals/{id}/fees/{fee_id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "fee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal fee id (a positive integer)."
    }
  },
  "required": [
    "proposal_id",
    "fee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡bidsketch_create_proposal(name, description, currency, proposal_date, tax, ...)

WRITE: create a proposal for a client, optionally from a template (template_id from bidsketch_list_templates, which copies its sections and fees). The proposal is created as a draft; this tool does not send anything to the client. Some plans cap the number of proposals (HTTP 426). POST /proposals.json or POST /templates/{id}/proposals.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Proposal name."
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20000,
      "description": "Summary of the proposal (the vendor docs list it with name and client_id as the minimum)."
    },
    "currency": {
      "description": "ISO currency code, e.g. USD.",
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "proposal_date": {
      "description": "Proposal date as m/d/yyyy, e.g. 10/26/2026.",
      "type": "string",
      "pattern": "^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$"
    },
    "tax": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Tax as a decimal fraction (0.1 = 10%)."
    },
    "tax2": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Secondary tax as a decimal fraction (0.1 = 10%)."
    },
    "discount": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Discount as a decimal fraction (0.1 = 10%)."
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The client the proposal is for (from bidsketch_list_clients) (a positive integer)."
    },
    "template_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Optional template to copy sections and fees from (a positive integer)."
    }
  },
  "required": [
    "name",
    "description",
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bidsketch_update_proposal(proposal_id, name, description, currency, proposal_date, ...)

WRITE: change fields of a proposal; only the fields you pass are sent and overwrite the old values. PUT /proposals/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "name": {
      "description": "Proposal name.",
      "type": "string",
      "maxLength": 300
    },
    "description": {
      "description": "Summary of the proposal.",
      "type": "string",
      "maxLength": 20000
    },
    "currency": {
      "description": "ISO currency code, e.g. USD.",
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "proposal_date": {
      "description": "Proposal date as m/d/yyyy, e.g. 10/26/2026.",
      "type": "string",
      "pattern": "^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$"
    },
    "tax": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Tax as a decimal fraction (0.1 = 10%)."
    },
    "tax2": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Secondary tax as a decimal fraction (0.1 = 10%)."
    },
    "discount": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Discount as a decimal fraction (0.1 = 10%)."
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Move the proposal to this client (a positive integer)."
    }
  },
  "required": [
    "proposal_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡bidsketch_add_proposal_section(proposal_id, name, sectiontype, description)

WRITE: add a text section to a proposal, as an opening or closing section. POST /proposals/{id}/sections.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "sectiontype": {
      "type": "string",
      "enum": [
        "opening",
        "closing"
      ],
      "description": "opening (shown first) or closing (shown last)."
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    }
  },
  "required": [
    "proposal_id",
    "name",
    "sectiontype",
    "description"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bidsketch_update_proposal_section(proposal_id, section_id, name, sectiontype, category, ...)

WRITE: change a section of a proposal; only the fields you pass are sent and overwrite the old values. PUT /proposals/{id}/sections/{section_id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "section_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal section id (a positive integer)."
    },
    "name": {
      "type": "string",
      "maxLength": 300
    },
    "sectiontype": {
      "description": "Where the section appears: opening (first) or closing (last).",
      "type": "string",
      "enum": [
        "opening",
        "closing"
      ]
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    }
  },
  "required": [
    "proposal_id",
    "section_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡bidsketch_add_proposal_fee(proposal_id, name, feetype, amount, quantity, ...)

WRITE: add a fee line to a proposal; it changes the proposal's price. Fixed fees take amount as the total; hourly, monthly and yearly fees take amount per unit and a quantity. POST /proposals/{id}/fees.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "feetype": {
      "type": "string",
      "enum": [
        "fixed",
        "hourly",
        "monthly",
        "yearly",
        "custom"
      ]
    },
    "amount": {
      "type": "number",
      "minimum": 0
    },
    "quantity": {
      "description": "Quantity for calculated fees.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "unit": {
      "description": "Unit label, only for custom fees.",
      "type": "string",
      "maxLength": 100
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    },
    "optional": {
      "description": "true = an optional item the client may choose.",
      "type": "boolean"
    }
  },
  "required": [
    "proposal_id",
    "name",
    "feetype",
    "amount",
    "description"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bidsketch_update_proposal_fee(proposal_id, fee_id, name, feetype, amount, ...)

WRITE: change a fee line of a proposal (changes its price); only the fields you pass are sent. PUT /proposals/{id}/fees/{fee_id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal id (a positive integer)."
    },
    "fee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The proposal fee id (a positive integer)."
    },
    "name": {
      "type": "string",
      "maxLength": 300
    },
    "feetype": {
      "description": "fixed = a total; hourly/monthly/yearly = amount per unit x quantity; custom = your own unit label.",
      "type": "string",
      "enum": [
        "fixed",
        "hourly",
        "monthly",
        "yearly",
        "custom"
      ]
    },
    "amount": {
      "description": "Fixed fee: the total. Calculated fee: the amount per unit.",
      "type": "number",
      "minimum": 0
    },
    "quantity": {
      "description": "Quantity for calculated fees.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "unit": {
      "description": "Unit label, only for custom fees.",
      "type": "string",
      "maxLength": 100
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    },
    "optional": {
      "description": "true = an optional item the client may choose.",
      "type": "boolean"
    }
  },
  "required": [
    "proposal_id",
    "fee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_list_fees(page, per_page)

List the reusable fees saved on the account with category, type and total. GET /fees.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_fee(fee_id)

Get one saved fee with amount, quantity, unit and description. GET /fees/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "fee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The saved fee id from bidsketch_list_fees (a positive integer)."
    }
  },
  "required": [
    "fee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡bidsketch_create_fee(name, feetype, amount, quantity, unit, ...)

WRITE: save a reusable fee on the account (it is not added to any proposal). POST /fees.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "feetype": {
      "type": "string",
      "enum": [
        "fixed",
        "hourly",
        "monthly",
        "yearly",
        "custom"
      ]
    },
    "amount": {
      "type": "number",
      "minimum": 0
    },
    "quantity": {
      "description": "Quantity for calculated fees.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "unit": {
      "description": "Unit label, only for custom fees.",
      "type": "string",
      "maxLength": 100
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    }
  },
  "required": [
    "name",
    "feetype",
    "amount"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bidsketch_update_fee(fee_id, name, feetype, amount, quantity, ...)

WRITE: change a saved fee; only the fields you pass are sent. Proposals that already use it keep their own copy. PUT /fees/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "fee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The saved fee id (a positive integer)."
    },
    "name": {
      "type": "string",
      "maxLength": 300
    },
    "feetype": {
      "description": "fixed = a total; hourly/monthly/yearly = amount per unit x quantity; custom = your own unit label.",
      "type": "string",
      "enum": [
        "fixed",
        "hourly",
        "monthly",
        "yearly",
        "custom"
      ]
    },
    "amount": {
      "description": "Fixed fee: the total. Calculated fee: the amount per unit.",
      "type": "number",
      "minimum": 0
    },
    "quantity": {
      "description": "Quantity for calculated fees.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "unit": {
      "description": "Unit label, only for custom fees.",
      "type": "string",
      "maxLength": 100
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    }
  },
  "required": [
    "fee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_list_sections(page, per_page)

List the reusable content sections saved on the account with category and type (opening or closing). GET /sections.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_section(section_id)

Get one saved section with its HTML description. GET /sections/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "section_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The saved section id from bidsketch_list_sections (a positive integer)."
    }
  },
  "required": [
    "section_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡bidsketch_create_section(name, sectiontype, category, description)

WRITE: save a reusable content section on the account (it is not added to any proposal). POST /sections.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "sectiontype": {
      "type": "string",
      "enum": [
        "opening",
        "closing"
      ]
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    }
  },
  "required": [
    "name",
    "sectiontype"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bidsketch_update_section(section_id, name, sectiontype, category, description)

WRITE: change a saved section; only the fields you pass are sent. Proposals that already use it keep their own copy. PUT /sections/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "section_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The saved section id (a positive integer)."
    },
    "name": {
      "type": "string",
      "maxLength": 300
    },
    "sectiontype": {
      "description": "Where the section appears: opening (first) or closing (last).",
      "type": "string",
      "enum": [
        "opening",
        "closing"
      ]
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "HTML-formatted content, for example <p>Hello</p>."
    }
  },
  "required": [
    "section_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_list_templates(page, per_page)

List the proposal templates saved on the account. Use a template id with bidsketch_create_proposal. GET /templates.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page (default and maximum 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bidsketch_get_template(template_id)

Get one template with the saved sections and fees it is made of. GET /templates/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The template id from bidsketch_list_templates (a positive integer)."
    }
  },
  "required": [
    "template_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada29 herramientas