Senta MCP by usefulapi

Review Senta clients, contacts and jobs, and update client records or add notes.

¿Debería usar esto?

Calidad y seguridad

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

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

Costo de contexto

~2,386Tokens (definiciones de herramientas)
~2.7 KBTamaño de respuesta típico
Impacto moderado en la atención (1.86% 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": {
    "senta": {
      "url": "https://senta.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (7)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢senta_search_clients(keywords, limit)

Find the practice's clients by keywords. Returns matching clients with their id (`_id`) and name (`title`). Use the id with senta_get_client, senta_list_jobs or senta_add_note. GET /api/clients/search.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Words to match client names against."
    },
    "limit": {
      "description": "Most records to return (default 100, max 1000). Senta has no paging, so this only cuts the reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "required": [
    "keywords"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢senta_get_client(client_id)

Read one client: name, state, type, business area, contacts (name, email, mobile, shareholding), address and the other fields the practice configured. GET /api/clients/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The client id (`_id`), e.g. c260af21ede8f, from senta_search_clients."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢senta_list_client_view(view_id, limit)

Read a saved client list of the practice (the same filter and columns as in the Senta app). The view id is the last part of the list's address: https://<practice>.senta.co/c/l/v08a361263f4a has the view id v08a361263f4a. Column names are the list's column titles (for example "Client name", "State"). GET /api/clients/{viewId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "view_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The client list (view) id, e.g. v08a361263f4a."
    },
    "limit": {
      "description": "Most records to return (default 100, max 1000). Senta has no paging, so this only cuts the reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "required": [
    "view_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢senta_list_jobs(client_id, template_id, status, limit)

List jobs (id, client id `cid`, job template id `wid`, title and main date). Filter by client, job template or status (pending, ready, overdue, completed, cancelled). With no filter this is every job of the practice, so filter when you can. GET /api/jobs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Only jobs of this client (`cid`)."
    },
    "template_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Only jobs made from this job template (`wid`)."
    },
    "status": {
      "description": "Only jobs with this status.",
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "overdue",
        "completed",
        "cancelled"
      ]
    },
    "limit": {
      "description": "Most records to return (default 100, max 1000). Senta has no paging, so this only cuts the reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡senta_create_client(title, clientstate, clienttype, businessarea, paymentmethod, ...)

WRITE: create a new client (company) in the practice. A name (title) is required; the other fields depend on the practice's own client form. Returns the new client with its id. Check senta_search_clients first so you do not create a duplicate. POST /api/clients.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Client name (Senta's `title`)."
    },
    "clientstate": {
      "description": "State, e.g. \"Prospect\" or \"Client\" (the practice's own states).",
      "type": "string",
      "maxLength": 100
    },
    "clienttype": {
      "description": "Type, e.g. \"Partnership\".",
      "type": "string",
      "maxLength": 100
    },
    "businessarea": {
      "description": "Business area, e.g. \"Veterinary\".",
      "type": "string",
      "maxLength": 200
    },
    "paymentmethod": {
      "description": "Payment method, e.g. \"Monthly\".",
      "type": "string",
      "maxLength": 100
    },
    "vatservice": {
      "description": "Whether the VAT service applies.",
      "type": "boolean"
    },
    "telephone": {
      "type": "string",
      "maxLength": 60
    },
    "web": {
      "type": "string",
      "maxLength": 300
    },
    "twitter": {
      "type": "string",
      "maxLength": 100
    },
    "address1": {
      "type": "string",
      "maxLength": 300
    },
    "address2": {
      "type": "string",
      "maxLength": 300
    },
    "district": {
      "type": "string",
      "maxLength": 200
    },
    "town": {
      "type": "string",
      "maxLength": 200
    },
    "postcode": {
      "type": "string",
      "maxLength": 30
    },
    "extra_fields": {
      "description": "Other fields configured by the practice (Settings > Forms > Edit Client), keyed by Senta's internal field name.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,99}$"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 5000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      }
    },
    "contacts": {
      "description": "Contacts: firstname, lastname, email, mobile, shareholding.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "firstname": {
            "type": "string",
            "maxLength": 200
          },
          "lastname": {
            "type": "string",
            "maxLength": 200
          },
          "email": {
            "type": "string",
            "maxLength": 254
          },
          "mobile": {
            "type": "string",
            "maxLength": 60
          },
          "shareholding": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "additionalProperties": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    }
  },
  "required": [
    "title"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴senta_update_client(client_id, title, clientstate, clienttype, businessarea, ...)

WRITE: partially update an existing client; only submitted properties are changed, per Senta's Client API. Read current contacts with senta_get_client before editing them and pass the contact details to update or add. Changing clientstate or enabling a service can start jobs in Senta. There is no delete tool. PUT /api/clients/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The client id (`_id`) to update."
    },
    "title": {
      "description": "Client name (Senta's `title`).",
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "clientstate": {
      "description": "State, e.g. \"Prospect\" or \"Client\" (the practice's own states).",
      "type": "string",
      "maxLength": 100
    },
    "clienttype": {
      "description": "Type, e.g. \"Partnership\".",
      "type": "string",
      "maxLength": 100
    },
    "businessarea": {
      "description": "Business area, e.g. \"Veterinary\".",
      "type": "string",
      "maxLength": 200
    },
    "paymentmethod": {
      "description": "Payment method, e.g. \"Monthly\".",
      "type": "string",
      "maxLength": 100
    },
    "vatservice": {
      "description": "Whether the VAT service applies.",
      "type": "boolean"
    },
    "telephone": {
      "type": "string",
      "maxLength": 60
    },
    "web": {
      "type": "string",
      "maxLength": 300
    },
    "twitter": {
      "type": "string",
      "maxLength": 100
    },
    "address1": {
      "type": "string",
      "maxLength": 300
    },
    "address2": {
      "type": "string",
      "maxLength": 300
    },
    "district": {
      "type": "string",
      "maxLength": 200
    },
    "town": {
      "type": "string",
      "maxLength": 200
    },
    "postcode": {
      "type": "string",
      "maxLength": 30
    },
    "extra_fields": {
      "description": "Other fields configured by the practice (Settings > Forms > Edit Client), keyed by Senta's internal field name.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,99}$"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 5000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      }
    },
    "contacts": {
      "description": "Contact details to update or add, following the practice's contact form. Read current contacts before editing.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "firstname": {
            "type": "string",
            "maxLength": 200
          },
          "lastname": {
            "type": "string",
            "maxLength": 200
          },
          "email": {
            "type": "string",
            "maxLength": 254
          },
          "mobile": {
            "type": "string",
            "maxLength": 60
          },
          "shareholding": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "additionalProperties": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡senta_add_note(client_id, text, job_id, note_type, date)

WRITE: add a note to a client, optionally attached to one of its jobs. The text may contain simple HTML. Returns the note. POST /api/notes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The client id (`cid`) the note belongs to."
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50000,
      "description": "The note text (simple HTML allowed)."
    },
    "job_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Optional job id (`jid`) to attach the note to."
    },
    "note_type": {
      "description": "Note type, e.g. \"Phone call\" (default \"Note\").",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "date": {
      "description": "When the note refers to, ISO 8601 (default: now).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,3})?)?(Z|[+-]\\d{2}:\\d{2})?)?$"
    }
  },
  "required": [
    "client_id",
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada7 herramientas