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

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
89%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,664Tokens (Tool-Definitionen)
~1.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.08% von 128k Kontext)

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-http

Was es kann

Tool-Inventar

Tools (13)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet13 Tools