LimeSurvey MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HTTP_HOST | No | Streamable HTTP bind address | 127.0.0.1 |
| MCP_HTTP_PATH | No | Streamable HTTP endpoint | /mcp |
| MCP_HTTP_PORT | No | Streamable HTTP port | 3000 |
| MCP_TRANSPORT | No | stdio or http | stdio |
| LIMESURVEY_URL | Yes | Exact RemoteControl URL, for example https://survey.example.com/index.php/admin/remotecontrol | |
| LIMESURVEY_PASSWORD | Yes | Service account password | |
| LIMESURVEY_USERNAME | Yes | LimeSurvey service account | |
| LIMESURVEY_READ_ONLY | No | Block every non-read-only MCP tool before an RPC call | false |
| LIMESURVEY_THEME_DIR | No | Dedicated output directory for generated theme ZIPs | |
| LIMESURVEY_EXPORT_DIR | No | Dedicated output directory for decoded exports | |
| LIMESURVEY_IMPORT_DIR | No | Dedicated input directory for import_data_path reads (falls back to LIMESURVEY_EXPORT_DIR) | |
| LIMESURVEY_TIMEOUT_MS | No | RemoteControl request timeout | 30000 |
| MCP_HTTP_BEARER_TOKEN | No | Required for every non-loopback HTTP binding | |
| LIMESURVEY_AUTH_PLUGIN | No | LimeSurvey authentication plugin | Authdb |
| MCP_HTTP_ALLOWED_HOSTS | No | Comma-separated exact Host allowlist | |
| MCP_HTTP_ALLOWED_ORIGINS | No | Comma-separated exact browser Origin allowlist | |
| LIMESURVEY_MAX_EXPORT_BYTES | No | Maximum decoded export size | 104857600 |
| LIMESURVEY_MAX_IMPORT_BYTES | No | Maximum file size accepted via import_data_path | 52428800 |
| LIMESURVEY_MAX_RESPONSE_CHARS | No | Maximum inline result size | 50000 |
| LIMESURVEY_MAX_THEME_ASSET_BYTES | No | Maximum logo and theme entry size | 5242880 |
| LIMESURVEY_ENABLE_EXPERIMENTAL_METHODS | No | Enable non-standard list_response_exports | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| limesurvey_get_session_keyA | Open and cache an authenticated RemoteControl session without exposing its key. Calls LimeSurvey RemoteControl method |
| limesurvey_release_session_keyA | Release the cached RemoteControl session. Calls LimeSurvey RemoteControl method |
| limesurvey_get_available_site_settingsA | List global setting names available to a super administrator. Calls LimeSurvey RemoteControl method |
| limesurvey_get_site_settingsA | Read one global LimeSurvey setting. Calls LimeSurvey RemoteControl method |
| limesurvey_add_surveyA | Create an empty survey with minimum settings. Calls LimeSurvey RemoteControl method |
| limesurvey_delete_surveyA | Permanently delete a survey. Requires confirm_destructive_action=true. Calls LimeSurvey RemoteControl method |
| limesurvey_import_surveyA | Import an LSA, CSV, TXT, or LSS survey. Use import_data_path for files at or above roughly 50 KB so the server reads and base64-encodes them itself; reserve inline import_data for small files under 200,000 characters of base64 text. The returned sid is the survey ID LimeSurvey actually used: it keeps the ID embedded in the file when that ID is free, destination_survey_id overrides it when set, and on an ID collision LimeSurvey silently assigns a random 6-digit sid instead of failing (verified against the LimeSurvey XMLImportSurvey/insertNewSurvey source). Calls LimeSurvey RemoteControl method |
| limesurvey_copy_surveyA | Copy an existing survey under a new name. Calls LimeSurvey RemoteControl method |
| limesurvey_get_survey_propertiesA | Read selected survey properties. Calls LimeSurvey RemoteControl method |
| limesurvey_set_survey_propertiesB | Update editable survey properties. Calls LimeSurvey RemoteControl method |
| limesurvey_activate_surveyA | Activate a survey after LimeSurvey consistency checks. Requires confirm_activation=true. Calls LimeSurvey RemoteControl method |
| limesurvey_export_statisticsA | Export survey statistics as a base64-encoded PDF, XLS, or HTML document. Calls LimeSurvey RemoteControl method |
| limesurvey_export_timelineA | Return response counts by day or hour for a date range. Calls LimeSurvey RemoteControl method |
| limesurvey_get_summaryA | Read response and participant summary counters. Calls LimeSurvey RemoteControl method |
| limesurvey_add_languageA | Add a language to a survey. Calls LimeSurvey RemoteControl method |
| limesurvey_delete_languageA | Remove a non-base language from a survey. Requires confirm_destructive_action=true. Calls LimeSurvey RemoteControl method |
| limesurvey_get_language_propertiesA | Read localized survey properties. Calls LimeSurvey RemoteControl method |
| limesurvey_set_language_propertiesB | Update localized survey properties. Calls LimeSurvey RemoteControl method |
| limesurvey_add_groupA | Add an empty question group to a survey. Calls LimeSurvey RemoteControl method |
| limesurvey_delete_groupA | Delete a question group from a survey. Requires confirm_destructive_action=true. Calls LimeSurvey RemoteControl method |
| limesurvey_import_groupA | Import a question group into a survey. Use import_data_path for files at or above roughly 50 KB instead of inline import_data. Calls LimeSurvey RemoteControl method |
| limesurvey_get_group_propertiesA | Read selected question-group properties. Calls LimeSurvey RemoteControl method |
| limesurvey_set_group_propertiesA | Update question-group properties. Calls LimeSurvey RemoteControl method |
| limesurvey_delete_questionA | Delete a question from its survey. Requires confirm_destructive_action=true. Calls LimeSurvey RemoteControl method |
| limesurvey_import_questionA | Import a question into a survey group. Use import_data_path for files at or above roughly 50 KB instead of inline import_data. Calls LimeSurvey RemoteControl method |
| limesurvey_get_question_propertiesA | Read selected question properties. Calls LimeSurvey RemoteControl method |
| limesurvey_set_question_propertiesA | Update question properties. Calls LimeSurvey RemoteControl method |
| limesurvey_activate_tokensA | Create the survey participant table and optional custom attributes. Calls LimeSurvey RemoteControl method |
| limesurvey_add_participantsA | Add one or more participants to a survey. Calls LimeSurvey RemoteControl method |
| limesurvey_delete_participantsA | Delete participants by token-table row IDs. Requires confirm_destructive_action=true. Calls LimeSurvey RemoteControl method |
| limesurvey_get_participant_propertiesA | Read selected properties for a participant matched by token or token-table ID. Calls LimeSurvey RemoteControl method |
| limesurvey_set_participant_propertiesA | Update a participant matched by token or token-table ID. Calls LimeSurvey RemoteControl method |
| limesurvey_list_participantsA | List and filter survey participants with server-side pagination. Calls LimeSurvey RemoteControl method |
| limesurvey_mail_registered_participantsA | Send registration emails to survey participants. Requires confirm_send_email=true. Calls LimeSurvey RemoteControl method |
| limesurvey_invite_participantsA | Send survey invitation emails to selected or eligible participants. Requires confirm_send_email=true. Calls LimeSurvey RemoteControl method |
| limesurvey_remind_participantsA | Send reminder emails to selected or eligible participants. Requires confirm_send_email=true. Calls LimeSurvey RemoteControl method |
| limesurvey_list_groupsA | List question groups in a survey. Calls LimeSurvey RemoteControl method |
| limesurvey_list_questionsA | List questions and subquestions in a survey or group. Calls LimeSurvey RemoteControl method |
| limesurvey_list_quotasA | List quotas configured for a survey. Calls LimeSurvey RemoteControl method |
| limesurvey_add_quotaB | Create a quota with minimum details. Calls LimeSurvey RemoteControl method |
| limesurvey_delete_quotaA | Delete a survey quota. Requires confirm_destructive_action=true. Calls LimeSurvey RemoteControl method |
| limesurvey_get_quota_propertiesA | Read selected quota properties. Calls LimeSurvey RemoteControl method |
| limesurvey_set_quota_propertiesA | Update quota properties. Calls LimeSurvey RemoteControl method |
| limesurvey_list_surveysA | List surveys visible to a user, optionally filtered by survey group. Calls LimeSurvey RemoteControl method |
| limesurvey_list_survey_groupsA | List survey groups visible to a user. Calls LimeSurvey RemoteControl method |
| limesurvey_list_usersA | List administration users, optionally filtered by ID or username. Calls LimeSurvey RemoteControl method |
| limesurvey_add_responseC | Insert a response into a survey response table. Calls LimeSurvey RemoteControl method |
| limesurvey_update_responseA | Update a response; include its response ID in the data. Calls LimeSurvey RemoteControl method |
| limesurvey_delete_responseA | Permanently delete a response. Requires confirm_destructive_action=true. Calls LimeSurvey RemoteControl method |
| limesurvey_upload_fileA | Upload a base64-encoded file for a file-upload question. Calls LimeSurvey RemoteControl method |
| limesurvey_export_responsesA | Export responses as a base64-encoded document. Calls LimeSurvey RemoteControl method |
| limesurvey_export_responses_by_tokenA | Export responses for selected participant tokens as a base64-encoded document. Calls LimeSurvey RemoteControl method |
| limesurvey_get_response_idsA | Find response IDs for a participant token. Calls LimeSurvey RemoteControl method |
| limesurvey_get_uploaded_filesA | Return uploaded file metadata and base64 content for a token or response. Calls LimeSurvey RemoteControl method |
| limesurvey_get_fieldmapA | Return the survey response field map. Calls LimeSurvey RemoteControl method |
| limesurvey_cpd_importParticipantsA | Import records into the central participant database. Calls LimeSurvey RemoteControl method |
| limesurvey_find_surveysA | Find visible surveys by ID or title with bounded client-side pagination. |
| limesurvey_get_survey_languagesA | Return the base and additional language codes configured for a survey. |
| limesurvey_add_participantC | Add one participant using a simple participant object. |
| limesurvey_list_filtered_participantsA | List participant rows with explicit filters, selected fields, and bounded pagination. |
| limesurvey_list_response_export_formatsA | Call the optional list_response_exports LimeSurvey extension to discover plugin-aware export formats. |
| limesurvey_export_responses_to_fileC | Export responses and securely decode the base64 result inside LIMESURVEY_EXPORT_DIR. |
| limesurvey_export_responses_by_token_to_fileB | Export responses for selected tokens and securely decode the result inside LIMESURVEY_EXPORT_DIR. |
| limesurvey_export_statistics_to_fileB | Export survey statistics and securely decode the result inside LIMESURVEY_EXPORT_DIR. |
| limesurvey_get_instance_infoA | Report server-side configuration without any RemoteControl call by default: server_version, instance_host, transport, read_only, experimental_methods_enabled, configured export/import/theme directories (each with a local exists/writable check), and a capabilities summary. Set probe_instance=true to additionally call list_surveys (connectivity/auth proof, count only) and get_site_settings("versionnumber") — the latter requires a superadmin service account and degrades to permission_level="standard" with instance_version=null otherwise. Call this before relying on file export/import or theming tools. |
| limesurvey_export_survey_to_fileA | Attempt to export a survey's structure as .lss and write it inside LIMESURVEY_EXPORT_DIR, returning a path instead of base64. Core LimeSurvey RemoteControl2 has no export_survey method (verified 2026-07-24 against api.limesurvey.org and the LimeSurvey source); this tool only works if a custom plugin exposes an equivalent RPC method, so it requires LIMESURVEY_ENABLE_EXPERIMENTAL_METHODS=true and otherwise always fails with a clear EXPORT_UNSUPPORTED error. Prefer property-based verification (list_groups, list_questions, get_survey_properties, get_group_properties, get_question_properties) over round-trip diffing. |
| limesurvey_generate_survey_themeA | Create a validated GPL-2.0-or-later ZIP theme that inherits the official Bootstrap 5 vanilla theme for LimeSurvey 7 or 6. |
| limesurvey_validate_survey_themeA | Validate a ZIP inside LIMESURVEY_THEME_DIR for manifest, licensing, archive paths, safe assets, responsive CSS, and LimeSurvey 6/7 compatibility. |
| limesurvey_get_theme_publication_guideB | Return version-aware installation, preview, assignment, accessibility, rollback, and optional community-publication steps for a survey theme. |
| limesurvey_assign_survey_themeA | Assign an already imported LimeSurvey survey theme through set_survey_properties. This does not upload or install the theme package. |
| limesurvey_list_installed_themesA | LimeSurvey RemoteControl2 has no official method to enumerate installed survey themes (verified 2026-07-24 against api.limesurvey.org and the LimeSurvey source). This tool combines two best-effort signals instead: generated_packages lists ZIPs/folders already generated locally in LIMESURVEY_THEME_DIR, and themes_in_use lists the distinct template names actually assigned to surveys visible to this account (via list_surveys + get_survey_properties), which works without a superadmin account. Always includes the documented admin-UI fallback for the complete installed-theme list. |
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/Wagner-Emden-IT-Services/limesurvey-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server