loading…
Search for a command to run...
loading…
MCP server for VTENext CRM (open-source vtiger-based). Query, create and update opportunities and contacts via natural language using the VTENext WebService API
MCP server for VTENext CRM (open-source vtiger-based). Query, create and update opportunities and contacts via natural language using the VTENext WebService API. Supports list, search, get, create, update on Potentials and Contacts modules, plus raw VTQL queries.
MCP server for VTENext CRM — exposes the WebService API as tools for Claude and other MCP-compatible clients.
cd mcp/vtenext/server
npm install
cp .env.example .env
Edit .env:
VTENEXT_URL=http://your-vtenext-instance
VTENEXT_USERNAME=admin
VTENEXT_ACCESS_KEY=your_access_key
READ_ONLY=false
The access key is in VTENext under Admin → Users → [user] → Access Key.
Set READ_ONLY=true to prevent any write operation on VTENext. When enabled, the tools create_opportunita, update_opportunita and add_nota_opportunita return an error instead of writing data.
This is useful when the server is used by AI bots or automated agents that should only read CRM data. To run a read-only instance alongside a full-access one, pass the variable via the MCP config:
{
"mcpServers": {
"vtenext-bot": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp/vtenext/server/index.js"],
"env": {
"VTENEXT_URL": "http://your-vtenext-instance",
"VTENEXT_USERNAME": "admin",
"VTENEXT_ACCESS_KEY": "your_access_key",
"READ_ONLY": "true"
}
}
}
}
Add to .mcp.json in your project root:
{
"mcpServers": {
"vtenext": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp/vtenext/server/index.js"]
}
}
}
| Tool | Description |
|---|---|
list_opportunita |
List opportunities with optional filters (status, search, limit) |
get_opportunita |
Get full details of an opportunity by ID |
search_opportunita |
Search opportunities by name |
create_opportunita |
Create a new opportunity (write — blocked in read-only mode) |
update_opportunita |
Update status, amount or notes on an existing opportunity (write — blocked in read-only mode) |
| Tool | Description |
|---|---|
search_contatti |
Search contacts by name, email or company |
| Tool | Description |
|---|---|
add_nota_opportunita |
Add a comment/note to an opportunity (write — blocked in read-only mode) |
list_attivita_opportunita |
List activities linked to an opportunity |
| Tool | Description |
|---|---|
describe_modulo |
Show available fields for any VTENext module |
query_raw |
Run a raw VTQL SELECT query |
VTENext uses the vtiger WebService protocol:
GET /webservice.php?operation=getchallenge → tokenPOST /webservice.php with operation=login (form-encoded) → sessionNameSessions are cached for 4 minutes (token lifetime is 5 minutes).
# Unit tests (no VTENext required)
npm test
# Integration tests (requires live VTENext at VTENEXT_URL)
npm run test:integration
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"mcp-vtenext": {
"command": "npx",
"args": []
}
}
}