votel-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VOTEL_API_KEY | Yes | Your Votel API key (sk_...). Required for local setup. | |
| VOTEL_API_URL | No | Backend URL. Default is https://app.votel.ai. | https://app.votel.ai |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_websitesA | List all websites for your account. Returns name, CDN hostname, status, and domain count for each site. Example: 'List my websites' or 'Show active websites'. |
| create_websiteA | Create a new website with CDN hosting. Provisions storage and pull zone automatically. Example: 'Create a website called My Business'. |
| get_websiteA | Get detailed information about a website including domains, CDN config, and status. Example: 'Show me details for website '. |
| delete_websiteA | Permanently delete a website and all its resources (storage, CDN, files). Cannot be undone. Example: 'Delete the website called Test Site'. |
| add_domainA | Add a custom domain to a website. Returns DNS records you need to configure. Example: 'Add example.com to my website'. |
| remove_domainA | Remove a custom domain from a website. Example: 'Remove example.com from my website'. |
| verify_domainA | Check DNS propagation and SSL status for a custom domain. Example: 'Check if example.com is verified'. |
| purge_cacheA | Clear CDN cache for a website. Purge everything or specific URLs. Example: 'Purge cache for my website'. |
| get_analyticsB | Get traffic analytics for a website — requests, bandwidth, and cache hit ratio. Example: 'Show analytics for my website'. |
| get_storage_credentialsA | Get storage credentials for direct file uploads to a website. Example: 'Get upload credentials for my website'. |
| list_filesA | List files and folders in a website's storage. Use path '/' for root directory. Example: 'Show files in my website'. |
| upload_fileA | Upload a file to a website's storage. Content must be base64-encoded. File is immediately available via CDN. Example: 'Upload index.html to my website'. |
| delete_fileA | Delete a file from a website's storage. Example: 'Delete old-page.html from my website'. |
| create_folderA | Create a new folder in a website's storage. Example: 'Create an images folder'. |
| publish_siteA | Deploy multiple files to a website in one call. Pass a map of file paths to content. CDN cache is purged automatically. This is the best way to publish or update a website. Example: 'Build a landing page and publish it'. |
| list_contactsA | List contacts in your CRM with optional search and filtering. Returns name, email, phone, and lifecycle stage. Example: 'Show my contacts' or 'Find contacts named John'. |
| get_contactA | Get detailed information about a specific contact including all fields, tags, and notes. Example: 'Show me details for contact '. |
| create_contactA | Create a new contact in your CRM. Provide at least a name, email, or phone. Example: 'Add a contact named John Smith with email john@example.com'. |
| update_contactA | Update fields on an existing contact. Only the fields you provide are changed. Example: 'Update John's phone to 555-1234'. |
| delete_contactA | Delete a contact from your CRM (soft delete). Example: 'Delete contact '. |
| list_pipelinesA | List all sales pipelines with their stages. Shows pipeline name, stage names, and lead counts. Example: 'Show my pipelines' or 'What stages does my sales pipeline have?'. |
| get_pipeline_leadsA | Get contacts/leads in a specific pipeline, optionally filtered by stage. Example: 'Show leads in my Sales pipeline' or 'Who is in the Negotiation stage?'. |
| move_lead_stageB | Move a contact to a different pipeline stage. Example: 'Move John to the Closed Won stage'. |
| list_tasksA | List tasks with optional filtering by completion, priority, type, assignee, or search term. Example: 'Show my tasks', 'Show high priority open tasks', 'Tasks assigned to Alice'. |
| create_taskA | Create a new task. Supports the full task field set: assignee, priority, type, status, project, tags, due date with time/timezone, duration, subtask parent, and contact link. Use list_users / list_projects / list_task_statuses / list_task_types to discover valid IDs. Example: 'Create a high priority task to follow up with John tomorrow'. |
| update_taskA | Update fields on an existing task. Use is_completed (boolean) to toggle completion — there is no flat 'status' enum on the backend; for custom statuses use status_id with values from list_task_statuses. Example: 'Set task priority to urgent and assign to Alice'. |
| delete_taskA | Soft-delete a task. Example: 'Delete task '. |
| get_taskA | Get full detail for a single task — fields, comments, attachments, subtask count. Example: 'Show me task '. |
| complete_taskA | Mark a task as completed (or reopen with is_completed=false). Example: 'Mark task as done'. |
| snooze_taskA | Snooze a task until a future datetime. Example: 'Snooze task until tomorrow 9am'. |
| list_subtasksA | List all subtasks of a parent task. To create a subtask, call create_task with parent_task_id. Example: 'Show subtasks of task '. |
| add_task_commentA | Add a comment to a task's activity timeline. The comment is appended to the task's recent_comments array; auto-generated activity entries (field changes) are preserved. Example: 'Comment on task : spoke with client, will reschedule'. |
| add_task_attachmentA | Attach a file to a task. Provide either a local file_path (uploaded to Votel storage) or a pre-hosted url. Example: 'Attach /tmp/proposal.pdf to task '. |
| remove_task_attachmentA | Remove an attachment from a task by its display name. Does not delete the underlying file from storage. Example: 'Remove proposal.pdf from task '. |
| list_usersA | List users in the workspace — use to discover assigned_to_id values for tasks. Example: 'Who can I assign tasks to?'. |
| list_projectsA | List task projects/pipelines for the workspace. Each project has its own status set and task-type set. Example: 'Show me my projects'. |
| list_task_statusesA | List the custom statuses available for a project (or for the project that contains a given task). Statuses are scoped per-project, NOT per task_type. Example: 'What statuses can I set on task ?'. |
| list_task_typesA | List the task types available for a project (or for the project that contains a given task). Each type has a 'key' (used as task_type on a task) and a display 'label'. Example: 'What task types can I use in project ?'. |
| list_task_tagsA | Autocomplete task tag suggestions. Example: 'What tags exist for tasks?' or 'Tags starting with foll'. |
| get_task_statsA | Summary task statistics for the workspace — counts by status, priority, etc. Optional filter by assignee. Example: 'Give me task stats' or 'Show task stats for Alice'. |
| get_contact_activityA | Get recent activity for a contact — calls, emails, SMS, notes, and system events. Example: 'Show recent activity for John' or 'What happened with contact ?'. |
| send_smsA | Send an SMS text message to a contact. The contact must have a phone number on file. Example: 'Send John a text saying: Your appointment is confirmed for tomorrow at 2pm'. |
| list_contact_fieldsA | List all contact fields (built-in and custom) with their types and visibility. Useful for understanding what data you can store on contacts. Example: 'What fields are available for contacts?' or 'Show custom fields'. |
| create_custom_fieldA | Create a new custom field for contacts. Supports text, email, phone, dropdown, date, number, and textarea types. Example: 'Create a dropdown field called Industry with options: Tech, Healthcare, Finance'. |
| list_variablesA | List all global variables with their current values. These are used in templates, workflows, and agent prompts. Example: 'Show my global variables' or 'What variables are set?'. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/votelai/votel-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server