Vtiger MCP by usefulapi
Search, read, create and update Vtiger CRM leads, contacts, deals, cases and more; tag records.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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": {
"vtiger": {
"url": "https://vtiger.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://vtiger.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (13)
🟢vtiger_get_me
The Vtiger user the credentials belong to (id, user name, name, email). GET /me.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_list_modules
The CRM modules this user can access (Leads, Contacts, Accounts, Potentials, Cases, ...) with label and whether each holds records. GET /listtypes.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_describe_module(module)
A module's fields (name, label, type, mandatory, editable, reference targets, picklist values) and whether it can be created, updated or deleted. Read this before creating or filtering. GET /describe?elementType=<module>.
Esquema de entrada
{
"type": "object",
"properties": {
"module": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$",
"description": "Module name, for example Contacts, Accounts, Leads, Potentials (deals), Cases, Calendar (tasks and events). Names come from vtiger_list_modules."
}
},
"required": [
"module"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_list_records(module, fields, filters, order_by, descending, ...)
Records of one module, optionally filtered (all filters AND-ed), sorted and paged. Builds a SELECT for GET /query. The vendor returns at most 100 records per call; pass next_offset as offset for the next page. Name the fields you need: a full record has 100+ fields.
Esquema de entrada
{
"type": "object",
"properties": {
"module": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$",
"description": "Module name, for example Contacts, Accounts, Leads, Potentials (deals), Cases, Calendar (tasks and events). Names come from vtiger_list_modules."
},
"fields": {
"description": "Fields to return (default all). Example: [\"id\",\"firstname\",\"lastname\",\"email\"].",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
}
},
"filters": {
"description": "Conditions combined with AND. Example: [{field:'leadstatus',op:'=',value:'Hot'},{field:'lastname',op:'like',value:'Sm%'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
},
"op": {
"type": "string",
"enum": [
"=",
"!=",
"<",
">",
"<=",
">=",
"like"
],
"description": "=, !=, <, >, <=, >= or like (use % as a wildcard)."
},
"value": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op",
"value"
]
}
},
"order_by": {
"description": "Field to sort by (default id).",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
},
"descending": {
"description": "Sort descending (default false).",
"type": "boolean"
},
"limit": {
"description": "Records per page, 1-100 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"required": [
"module"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_count_records(module, filters)
How many records of a module match the filters (same filters as vtiger_list_records). GET /query with count(*).
Esquema de entrada
{
"type": "object",
"properties": {
"module": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$",
"description": "Module name, for example Contacts, Accounts, Leads, Potentials (deals), Cases, Calendar (tasks and events). Names come from vtiger_list_modules."
},
"filters": {
"description": "Conditions combined with AND.",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
},
"op": {
"type": "string",
"enum": [
"=",
"!=",
"<",
">",
"<=",
">=",
"like"
]
},
"value": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op",
"value"
]
}
}
},
"required": [
"module"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_query(query)
Run your own read-only query: SELECT <fields|*|count(*)> FROM <Module> [WHERE ...] [ORDER BY ...] [LIMIT offset,count]. One module only, no joins, no grouping brackets; at most 100 records per call. Only SELECT is accepted. GET /query.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 8,
"maxLength": 2000,
"description": "Example: select id,firstname,lastname from Contacts where mailingcity = 'Boston' or mailingcity = 'Austin' order by createdtime desc limit 0,25"
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_get_record(id)
One record with all its fields, by id (for example 4x2063). GET /retrieve?id=<id>.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9]{1,6}x[0-9]{1,18}$",
"description": "Record id of the form <moduleTypeId>x<recordId>, for example 4x2063."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_lookup(type, value, modules)
Find records in one or more modules by an exact email address or phone number. GET /lookup.
Esquema de entrada
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"email",
"phone"
],
"description": "What the value is."
},
"value": {
"type": "string",
"minLength": 3,
"maxLength": 200,
"description": "The email address or phone number."
},
"modules": {
"description": "Modules to search (default Contacts, Leads, Accounts).",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$",
"description": "Module name, for example Contacts, Accounts, Leads, Potentials (deals), Cases, Calendar (tasks and events). Names come from vtiger_list_modules."
}
}
},
"required": [
"type",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_list_related_modules(module)
The modules a module can be related to (for example Accounts relate to Contacts, Potentials, Cases, Documents). GET /relatedtypes?elementType=<module>.
Esquema de entrada
{
"type": "object",
"properties": {
"module": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$",
"description": "Module name, for example Contacts, Accounts, Leads, Potentials (deals), Cases, Calendar (tasks and events). Names come from vtiger_list_modules."
}
},
"required": [
"module"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vtiger_get_tags(id)
The tags on one record. GET /tags_retrieve?id=<id>.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9]{1,6}x[0-9]{1,18}$",
"description": "Record id of the form <moduleTypeId>x<recordId>, for example 4x2063."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡vtiger_create_record(module, fields)
WRITE: create one record in a module (a lead, contact, account, deal, case, ...). Send every mandatory field (vtiger_describe_module lists them; assigned_user_id is usually mandatory, use the id from vtiger_get_me). Returns the new record. POST /create. Not retried.
Esquema de entrada
{
"type": "object",
"properties": {
"module": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$",
"description": "Module name, for example Contacts, Accounts, Leads, Potentials (deals), Cases, Calendar (tasks and events). Names come from vtiger_list_modules."
},
"fields": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 20000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"description": "Field values keyed by field name (see vtiger_describe_module). Reference fields take a record id like 3x12; picklists take the exact value."
}
},
"required": [
"module",
"fields"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴vtiger_update_record(id, fields)
WRITE: change only the named fields of an existing record (the vendor's revise call; other fields stay as they are). Returns the updated record. POST /revise. Not retried.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9]{1,6}x[0-9]{1,18}$",
"description": "Record id of the form <moduleTypeId>x<recordId>, for example 4x2063."
},
"fields": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 20000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"description": "Field values keyed by field name (see vtiger_describe_module). Reference fields take a record id like 3x12; picklists take the exact value."
}
},
"required": [
"id",
"fields"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡vtiger_add_tags(id, tags)
WRITE: add tags to one record (existing tags stay). POST /tags_add. Not retried.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9]{1,6}x[0-9]{1,18}$",
"description": "Record id of the form <moduleTypeId>x<recordId>, for example 4x2063."
},
"tags": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"description": "Tag names to add."
}
},
"required": [
"id",
"tags"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia