Vtiger MCP by usefulapi
Search, read, create and update Vtiger CRM leads, contacts, deals, cases and more; tag records.
Sollte ich dies verwenden
Qualität und Sicherheit
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": {
"vtiger": {
"url": "https://vtiger.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://vtiger.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (13)
🟢vtiger_get_me
The Vtiger user the credentials belong to (id, user name, name, email). GET /me.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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>.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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(*).
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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>.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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>.
Eingabe-Schema
{
"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>.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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"
}Community
Nachweis