LimeSurvey MCP Server
This server wraps the LimeSurvey RemoteControl 2 API, providing tools for managing surveys, participants, responses, quotas, themes, and more. It includes all 56 official API methods plus 15 additional workflow tools, with robust safety features.
Session Management: Connect and disconnect via
get_session_keyandrelease_session_key.Survey Management: Create, delete, import, copy, activate, list, find, and set properties for surveys; manage survey languages.
Question Groups & Questions: Add, delete, import, list, and modify groups and questions; get field maps.
Participants: Activate token tables; add, delete, list, update, and filter participants; send invitation/reminder emails.
Responses: Add, update, delete responses; export in various formats (inline or to file); export by token; retrieve uploaded files.
Quotas: Add, delete, list, get, and set quota properties.
Statistics & Timeline: Export survey statistics and response timelines.
File Operations: Securely import surveys, groups, and questions from files; export data to dedicated directories with size limits and digests.
Themes: Generate, validate, and assign responsive, WCAG-compliant survey themes.
Capability Detection: Get instance info, list installed themes, discover export formats, and optionally probe live connectivity.
Users: List administration users.
Safety: Read-only mode; explicit confirmations for destructive actions (delete, activation, emails, theme assignment, file overwrite); secure credential handling; sanitized errors.
Additional: Supports stdio and authenticated HTTP transports; Docker deployment; session caching with retry; and experimental features like survey structure export.
Provides tools for interacting with the LimeSurvey RemoteControl 2 API, enabling management of surveys, participants, responses, quotas, themes, and exports in a LimeSurvey instance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LimeSurvey MCP Serverlist all surveys"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LimeSurvey MCP Server
A production-oriented Model Context Protocol server for the LimeSurvey RemoteControl 2 API. It exposes all 56 documented RemoteControl methods plus 15 guarded workflow tools for discovery, participants, exports, capability detection, and responsive survey themes.
This community project is not affiliated with or endorsed by LimeSurvey GmbH.
Features
Complete RemoteControl coverage: all 56 documented JSON-RPC methods
71 MCP tools: official methods plus focused workflow and theme tools
Modern MCP contracts: strict Zod schemas, structured output, and annotations
Safe write access: server-enforced read-only mode and explicit confirmations
Session management: cached credentials, one retry after an invalid session, graceful release, timeouts, and sanitized errors
Two transports: stdio for local clients and authenticated Streamable HTTP
Secure exports: bounded base64 decoding into a dedicated directory
Survey theme workflow: generate, validate, publish, and assign responsive themes
Deployment ready: Docker, Compose, healthcheck, CI, and Dependabot
Related MCP server: MCP Server for LimeSurvey
Tool Catalog
Area | Tools | Count |
Official RemoteControl 2 API | Sessions, settings, surveys, languages, groups, questions, participants, quotas, users, responses, files, exports | 56 |
Workflow helpers | Survey search, language normalization, participant helpers, export format discovery, secure file exports, experimental survey-structure export, capability/instance info | 10 |
Survey themes | Generate, validate, publication guide, assign to survey, best-effort theme listing | 5 |
Total | 71 |
Official tools are named limesurvey_<remotecontrol_method>. Run the MCP
Inspector to view every current schema:
npm run inspectQuick Start
Prerequisites
Node.js 20 or newer, or Docker
A reachable LimeSurvey instance
A dedicated LimeSurvey service account with only the required permissions
In LimeSurvey: enable the API and select JSON-RPC under Configuration > Global settings > Interfaces
Option A: npm
npx -y limesurvey-mcp-server@1.3.0The server uses stdio by default. Supply credentials through the MCP client
configuration shown below. Pin a version for reproducible deployments, or use
@latest to receive the newest release whenever the MCP process starts.
Option B: from source
git clone https://github.com/Wagner-Emden-IT-Services/limesurvey-mcp-server.git
cd limesurvey-mcp-server
npm ci
npm testOption C: Docker
git clone https://github.com/Wagner-Emden-IT-Services/limesurvey-mcp-server.git
cd limesurvey-mcp-server
cp .env.example .env
# Edit .env and use a long random MCP_HTTP_BEARER_TOKEN.
docker compose up --build -dCompose binds 127.0.0.1:3000, starts in read-only mode, and stores exports and
theme packages in separate named volumes.
See Installation and Updates for Codex CLI, Claude Desktop, global npm, source, Docker, verification, update, and removal steps.
Configuration
Required:
Variable | Description |
| Exact RemoteControl URL, for example |
| LimeSurvey service account |
| Service account password |
Important optional variables:
Variable | Default | Description |
|
| LimeSurvey authentication plugin |
|
| Block every non-read-only MCP tool before an RPC call |
|
| RemoteControl request timeout |
|
| Maximum inline result size |
| unset | Dedicated output directory for decoded exports |
|
| Maximum decoded export size |
| unset (falls back to | Dedicated input directory for |
|
| Maximum file size accepted via |
| unset | Dedicated output directory for generated theme ZIPs |
|
| Maximum logo and theme entry size |
|
| Enable non-standard |
|
|
|
|
| Streamable HTTP bind address |
|
| Streamable HTTP port |
|
| Streamable HTTP endpoint |
| unset | Required for every non-loopback HTTP binding |
| unset | Comma-separated exact Host allowlist |
| unset | Comma-separated exact browser Origin allowlist |
The server intentionally does not load .env itself. The MCP client, process
manager, or container runtime owns secret injection.
MCP Client Setup
Codex CLI:
codex mcp add limesurvey `
--env "LIMESURVEY_URL=https://survey.example.com/index.php/admin/remotecontrol" `
--env "LIMESURVEY_USERNAME=rpc-user" `
--env "LIMESURVEY_PASSWORD=replace-me" `
--env "LIMESURVEY_READ_ONLY=true" `
-- npx -y limesurvey-mcp-server@1.3.0Example for clients that support mcpServers configuration:
{
"mcpServers": {
"limesurvey": {
"command": "npx",
"args": ["-y", "limesurvey-mcp-server@1.3.0"],
"env": {
"LIMESURVEY_URL": "https://survey.example.com/index.php/admin/remotecontrol",
"LIMESURVEY_USERNAME": "rpc-user",
"LIMESURVEY_PASSWORD": "replace-me",
"LIMESURVEY_READ_ONLY": "true",
"LIMESURVEY_THEME_DIR": "C:/limesurvey-mcp/themes"
}
}
}
}For a local build, replace npx with node and use the absolute path to
dist/src/index.js as the first argument.
Restart the MCP client after changing its configuration. Then call
limesurvey_get_session_key and limesurvey_list_surveys to verify
authentication and read access before enabling writes.
Streamable HTTP
MCP_TRANSPORT=http \
MCP_HTTP_HOST=127.0.0.1 \
MCP_HTTP_PORT=3000 \
MCP_HTTP_BEARER_TOKEN='replace-with-a-long-random-token' \
npm startMCP endpoint:
http://127.0.0.1:3000/mcpHealth endpoint:
http://127.0.0.1:3000/health
Non-loopback bindings fail fast without a bearer token. Use a reverse proxy for TLS and configure Host and Origin allowlists when exposing the server remotely.
Write Safety
LIMESURVEY_READ_ONLY=true blocks all tools that are not annotated as read-only.
The check is enforced by the server and cannot be bypassed through MCP tool
arguments. Read tools remain available.
Additional confirmation literals are required for high-impact actions:
Action | Required argument |
All |
|
Participant email tools |
|
Survey activation |
|
Replacing an export or theme ZIP |
|
Assigning a survey theme |
|
These MCP-only confirmation fields are never forwarded to LimeSurvey.
Responsive Survey Themes
The theme generator was verified on 2026-07-22 against the current LimeSurvey CE 7.0.5 release, and on 2026-07-24 against the official vanilla 3.0.1 ("Bootstrap Vanilla") manifest. LimeSurvey 7 is the default target; LimeSurvey 6 can be selected explicitly.
Generated themes:
inherit the installed
vanillacore theme instead of copying it —vanillais the minimal official base theme shipped and installed with every LimeSurvey instance, so generated themes no longer depend onfruity_twentythreebeing present;contain responsive CSS, fixed mobile breakpoints, print styles, visible focus, reduced-motion support, and minimum 44 px controls;
validate WCAG contrast for body, muted, focus, and primary-button colors;
use local system font stacks with no third-party font requests;
contain no JavaScript, tracking, remote CSS imports, or data URLs;
optionally include a signature-checked PNG or JPEG logo;
are licensed GPL-2.0-or-later, matching the inherited LimeSurvey theme.
Recommended tool sequence:
limesurvey_generate_survey_themelimesurvey_validate_survey_theme; continue only withvalid=truelimesurvey_get_theme_publication_guideusing the installed version shown in LimeSurveyImport the ZIP under Configuration > Advanced > Themes > Survey themes
Test an inactive survey on phone, tablet, desktop, keyboard, zoom, RTL, and print
limesurvey_assign_survey_themewithconfirm_theme_assignment=true
See Survey Theme Guide for complete examples, acceptance criteria, Cloud restrictions, community publication, and rollback.
Secure File Exports
File export tools require LIMESURVEY_EXPORT_DIR. File names cannot contain
directories, traversal segments, or null bytes. The server enforces decoded size
limits, creates restrictive files, refuses replacement by default, and returns
the path, size, MIME type, and SHA-256 digest instead of base64 content.
The original RemoteControl export methods remain available for compatibility. Oversized inline responses are replaced by a marked preview that is not a valid export file.
Secure File Imports
limesurvey_import_survey, limesurvey_import_group, and
limesurvey_import_question accept an import_data_path argument as an
alternative to inline import_data. Set exactly one of the two; the server
reads the file at import_data_path from LIMESURVEY_IMPORT_DIR (falling
back to LIMESURVEY_EXPORT_DIR when unset) and base64-encodes it itself, so a
survey file of any size can be imported with a single tool call instead of an
inline base64 payload. Use import_data_path for files at or above roughly
50 KB; reserve inline import_data for small files under 200,000 characters
of base64 text.
The path is resolved and checked the same way as export file names: it must
stay inside the configured import directory. Oversized files, missing files,
paths outside the directory, and conflicting/missing parameters all fail with
a distinct error code (IMPORT_FILE_TOO_LARGE, IMPORT_FILE_NOT_FOUND,
IMPORT_PATH_OUTSIDE_DIR, IMPORT_PARAM_CONFLICT,
IMPORT_PAYLOAD_TOO_LARGE, IMPORT_DIR_NOT_CONFIGURED) plus a recovery
hint. Changing LIMESURVEY_IMPORT_DIR or LIMESURVEY_MAX_IMPORT_BYTES
requires a full restart of the MCP client process; reconnecting alone does not
reload environment variables.
import_survey returns 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.
Capability Detection
The server prints a startup preflight to stderr for every optional directory
(LIMESURVEY_EXPORT_DIR/LIMESURVEY_IMPORT_DIR/LIMESURVEY_THEME_DIR) that
is not configured, naming the tools that stay disabled until it is set and
that changing it requires a full restart.
limesurvey_get_instance_info makes no RemoteControl call by default: it
reports server_version, instance_host (host only, never credentials),
transport, read_only, experimental_methods_enabled, per-directory
{configured, path, exists, writable} checks, and a capabilities summary.
Set probe_instance=true to additionally call list_surveys (connectivity/
auth proof, count only) and get_site_settings("versionnumber"), which
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_list_installed_themes combines two best-effort signals, since
RemoteControl2 has no official method to enumerate installed themes:
generated_packages lists ZIPs/folders already generated locally in
LIMESURVEY_THEME_DIR, and themes_in_use lists the distinct template
values actually assigned to up to survey_scan_limit visible surveys (via
list_surveys + get_survey_properties), which works without a superadmin
account — "inherit" is tracked separately as inherit_count, not as a
theme. The response always includes the documented admin-UI fallback
(Configuration > Themes) for the complete list.
Experimental Extension
list_response_exports is not part of the official RemoteControl method list.
Its workflow tool is disabled unless the matching LimeSurvey extension is
installed and LIMESURVEY_ENABLE_EXPERIMENTAL_METHODS=true is set.
limesurvey_export_survey_to_file is likewise experimental: core LimeSurvey
RemoteControl2 has no export_survey method at all (verified 2026-07-24
against api.limesurvey.org and the LimeSurvey source). The tool requires
LIMESURVEY_ENABLE_EXPERIMENTAL_METHODS=true and only succeeds if a custom
LimeSurvey plugin provides an equivalent method; otherwise it always fails
with a structured EXPORT_UNSUPPORTED error. Prefer property-based
verification (list_groups, list_questions, get_survey_properties,
get_group_properties, get_question_properties) over round-trip diffing
against this tool.
Development
npm ci
npm test
npm run inspect
npm pack --dry-runThe 39 automated tests use mocked LimeSurvey JSON-RPC responses and cover:
JSON-RPC 1.0 ordering, session reuse, renewal, and secret handling
MCP handshake, schemas, annotations, confirmations, and read-only enforcement
Streamable HTTP bearer authentication and session isolation
workflow filtering and secure export files
survey theme ZIP generation, validation, publication guidance, and assignment
secure file imports via
import_data_pathfor survey, group, and question toolsenvironment preflight warnings (
envPreflightWarnings)capability detection (
get_instance_infowith and withoutprobe_instance,list_installed_themes) and the experimental, permission-degradingexport_survey_to_filetool
No live LimeSurvey credentials are required. Content evaluations must be created against a stable test instance; see evaluations/README.md.
An opt-in live integration runner exercises all 71 tools against disposable, prefixed test records:
npm run test:liveIt requires explicit environment confirmation and an external official
LimeSurvey fixture checkout. Never run it against a production instance.
cpd_importParticipants has no matching RemoteControl delete method, so the
runner reports the uniquely named central participant for manual removal. See
Live Integration Testing.
Project Structure
src/
client.ts JSON-RPC client and session handling
config.ts environment validation and secure defaults
tool-definitions.ts 56 official RemoteControl tools
workflow-tools.ts survey, participant, and export workflows
theme-tools.ts theme generator, validator, guide, and assignment
server.ts MCP registration and central safety enforcement
http-server.ts authenticated Streamable HTTP transport
index.ts stdio/HTTP entry point
test/ mocked unit, protocol, transport, workflow, and theme tests
scripts/ opt-in guarded live integration test
docs/ detailed operational documentationCompatibility
Node.js 20, 22, and 24 are tested in CI.
RemoteControl uses JSON-RPC 1.0 positional parameters as required by LimeSurvey.
Theme generation supports LimeSurvey 7.x and 6.x with
vanilla; always validate against the exact installed patch release.LimeSurvey Cloud may restrict custom theme import by account or plan. The MCP server does not attempt unsupported filesystem installation.
Security
Read SECURITY.md before remote deployment. Report vulnerabilities privately via GitHub private vulnerability reporting, not through public issues.
Contributing
Contributions are welcome. See CONTRIBUTING.md and CHANGELOG.md.
License
The MCP server source code is licensed under the MIT License, Copyright (c) 2026 Wagner-Emden IT Services.
Survey theme ZIPs generated by the server are separately marked and licensed
under GPL-2.0-or-later because they are designed to inherit LimeSurvey's GPL
vanilla theme. Customer logos and other supplied assets retain their
own applicable rights and must not be redistributed without permission.
References
Available Tools
71 toolslimesurvey_activate_surveyActivate surveyA
Activate a survey after LimeSurvey consistency checks. Requires confirm_activation=true.
Calls LimeSurvey RemoteControl method activate_survey. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_activation | Yes | Required acknowledgement that survey activation changes its structure and behavior. | |
| activation_settings | No | Optional activation settings such as anonymized, datestamp, ipaddr, ipanonymize, refurl, and savetimings. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and destructiveHint=false; the description adds that activation 'changes its structure and behavior', which is critical context. It also explains authentication using a service account. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and precondition, second gives technical details. No wasted words, front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (4 params, output schema exists), the description covers activation purpose, consistency checks, required confirmation, and authentication. It's complete for typical use, though could explicitly note that activation may fail if checks fail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds the requirement 'confirm_activation=true' beyond what the schema indicates (const: true), and implies its role in acknowledging changes. This adds sufficient value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool activates a survey, with the verb 'activate' and resource 'survey'. It distinguishes from siblings as the only activation tool among many survey management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates activation should occur 'after LimeSurvey consistency checks', providing clear context. It does not explicitly state when not to use or list alternatives, but the specificity suffices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_activate_tokensActivate participant tableA
Create the survey participant table and optional custom attributes.
Calls LimeSurvey RemoteControl method activate_tokens. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| attribute_fields | No | Additional participant attribute field numbers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description aligns with annotations (writes, not destructive). It adds the detail about internal method call and authentication, but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each valuable: first states purpose, second gives technical context. Efficient with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple parameters and existence of output schema, description covers main functionality well. Missing preconditions (e.g., survey must exist) but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds the concept of optional custom attributes matching attribute_fields, but no extra detail on syntax or usage beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates the survey participant table and optional custom attributes. Verb 'create' and resource 'participant table' are specific. Distinguishes from siblings like activate_survey or add_participants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites (e.g., survey must exist), and no mention of required survey state before activation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_add_groupCreate question groupA
Add an empty question group to a survey.
Calls LimeSurvey RemoteControl method add_group. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Question-group title. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| description | No | Question-group description. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation that is not idempotent; description adds that it calls `add_group` and uses service account auth. However, it does not disclose potential error conditions (e.g., duplicate title) or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no superfluous words. Purpose and key technical detail (method + auth) are front-loaded. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to explain returns. It covers the core action and authentication. Minor gap: it doesn't explicitly tie parameters (title, description) to the group creation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add parameter details. However, it adds no extra meaning beyond the schema, such as clarifying the 'empty' nature or expected output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds an empty question group to a survey, which is a specific verb+resource. It distinguishes from sibling tools like delete_group, import_group, set_group_properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (adding a new group) but does not explicitly exclude scenarios or mention alternatives. It provides authentication context but lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_add_languageAdd survey languageA
Add a language to a survey.
Calls LimeSurvey RemoteControl method add_language. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | Yes | Language code to add. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true, so the tool is not read-only. The description adds one behavioral detail: authentication uses a configured service account (no session key). However, it doesn't disclose side effects, error handling, or whether multiple additions are allowed. Given annotations already cover non-read-only nature, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first immediately states the tool's core purpose, the second adds a critical authentication behavior. Every word earns its place; there is no fluff. The structure is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has a simple operation (add a language) and an output schema exists, the description is minimally adequate. However, it lacks context about valid language codes, whether the tool overwrites existing translations, or how to handle errors. For a tool in a large suite with many similar operations, more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all three parameters described in the input schema. The description adds no additional parameter details beyond what the schema provides. Baseline for high coverage is 3; no extra semantic value is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Add a language to a survey' and references the underlying LimeSurvey method. It immediately distinguishes from sibling tools like 'limesurvey_get_survey_languages' (read) and 'limesurvey_delete_language' (delete) by specifying the add operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says 'Add a language to a survey,' without guidance on when to use it versus alternatives. There is no mention of prerequisites (e.g., survey existence, valid language codes) or exclusions. The use case is implied but not explicitly differentiated from other language-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_add_participantAdd one survey participantC
Add one participant using a simple participant object.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| participant | Yes | Participant fields such as email, firstname, lastname, token, and attributes. | |
| create_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) indicate mutation but non-destructive behavior. The description adds no further behavioral context such as what happens if a participant already exists, validation rules, or side effects. Minimal transparency beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource. Concise, but could be slightly more informative without losing brevity. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, nested objects, and an output schema, the description is too brief. It doesn't mention return values, required session key, or that the survey must exist. Incomplete for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so baseline is 3. The description 'simple participant object' hints at the nature of the participant parameter but adds little beyond the schema's own description. No extra meaning for survey_id or create_token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add one participant using a simple participant object' clearly states the action and differentiates from the sibling limesurvey_add_participants (plural) by specifying 'one'. However, it does not explicitly mention that the participant is added to a survey, though the survey_id parameter implies it. Slightly vague but sufficient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives like limesurvey_add_participants for batch adds. No prerequisites, no mention of token creation default or when to set create_token to false. Lacks contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_add_participantsAdd survey participantsA
Add one or more participants to a survey.
Calls LimeSurvey RemoteControl method add_participants. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| create_token | No | Generate missing participant tokens. | |
| participants | Yes | Participant records. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true. The description adds context about the underlying API method, authentication via service account, and instructs not to provide a session key. This goes beyond annotations and clarifies operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first immediately states the purpose, the second adds method and authentication context. No extraneous information. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. It covers core purpose and auth behavior. It might optionally mention parameter interactions like token generation, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the description does not need to add per-parameter details. The description does not explain individual parameters beyond what is in the schema, which is acceptable. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add one or more participants to a survey', using a specific verb and resource. It also mentions the underlying API method and distinguishes from the sibling tool for adding a single participant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating the action but does not provide explicit guidance on when to use this tool vs alternatives like limesurvey_add_participant for single additions. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_add_quotaCreate quotaB
Create a quota with minimum details.
Calls LimeSurvey RemoteControl method add_quota. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Quota redirect URL. | |
| name | Yes | Quota name. | |
| limit | Yes | Maximum responses allowed. | |
| action | No | Quota action. | |
| active | No | Activate the quota immediately. | |
| message | No | Quota message. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| autoload_url | No | Automatically load the quota URL. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| url_description | No | Quota URL label. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, only mentions authentication. No details on side effects, validation, or success/failure indicators. Does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loaded with the action. Could benefit from slightly more detail without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters and an output schema, the description lacks context about what a quota is, how it works, or any constraints. Minimal given tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds minimal value beyond schema. The phrase 'minimum details' hints at optional parameters but doesn't clarify beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a quota' and specifies the underlying API method. Distinct from sibling tools (list, delete, get, set quotas).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs alternatives, no prerequisites mentioned (e.g., survey must exist). Only auth note is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_add_responseAdd survey responseC
Insert a response into a survey response table.
Calls LimeSurvey RemoteControl method add_response. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| response | Yes | Response fields mapped to values. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds no new behavioral traits beyond stating it is an insert operation, which is implicit from the name and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, front-loading the purpose. The second sentence mentioning the underlying method is somewhat redundant but not harmful. Overall efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, the description lacks guidance on constructing the response object or common pitfalls, which would be helpful given the nested structure and openWorld annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, and the description does not add additional context or usage notes for the 'response' object or 'survey_id'. Baseline of 3 is appropriate as the schema is self-sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Insert a response into a survey response table', providing a specific verb and resource. It differentiates itself from siblings like update_response or delete_response by using 'insert', though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only provides authentication guidance ('do not provide a session key'). It lacks information on when to use this tool versus alternatives, such as update_response, and does not specify prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_add_surveyCreate surveyA
Create an empty survey with minimum settings.
Calls LimeSurvey RemoteControl method add_survey. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the new survey. | |
| format | No | Question display format: all, group-by-group, or single question. | |
| language | Yes | Base language code for the survey. | |
| survey_id | Yes | Desired survey ID. Use 0 to let LimeSurvey choose. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by naming the specific API method (add_survey) and clarifying that authentication is handled automatically. Annotations already indicate readOnlyHint=false and openWorldHint=true, so the mutation is expected. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the purpose and adds essential context about the API and authentication. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the LimeSurvey tool set and the presence of an output schema (not shown here), the description is adequate for a straightforward creation tool. It covers the key behavioral aspect (automatic auth) and purpose, though it could mention that the survey starts inactive or note next steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are well-documented in the schema. The description does not add additional meaning or context to the parameters beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (create) and resource (empty survey), and the title 'Create survey' reinforces it. Among many sibling tools like import_survey, copy_survey, and list_surveys, this tool is uniquely distinguished as creating a new empty survey with minimum settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions authentication details ('do not provide a session key') which is helpful, but it does not explicitly guide the agent on when to use this tool vs alternatives like import_survey or copy_survey. The context of 'minimum settings' is implied but not compared to other creation methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_assign_survey_themeAssign an installed theme to a surveyAIdempotent
Assign an already imported LimeSurvey survey theme through set_survey_properties. This does not upload or install the theme package.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | ||
| theme_name | Yes | Unique LimeSurvey theme and folder name, for example acme_feedback. | |
| confirm_theme_assignment | Yes | Required acknowledgement that the survey appearance will change. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotent and non-destructive hints. The description adds value by clarifying that the tool works through set_survey_properties and does not install theme packages. This extra context about the underlying mechanism and scope enhances transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose and a key limitation (no upload/install). Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool mutates survey state, the description lacks details on return values, error conditions, prerequisites (e.g., theme must exist), and the effect of confirm_theme_assignment. While annotations provide some context, the description is insufficient for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with survey_id lacking a description. The description does not add any parameter-specific meaning, missing the opportunity to clarify the purpose or format of the parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool assigns an already imported theme to a survey, using the verb 'assign' and specific resource. It distinguishes from sibling tools like limesurvey_set_survey_properties and limesurvey_list_installed_themes by clarifying it does not upload or install the theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the theme must be already imported, but does not explicitly state when to use this tool versus alternatives such as limesurvey_set_survey_properties. No direct comparison or when-not conditions are provided, making the guidance adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_copy_surveyCopy surveyA
Copy an existing survey under a new name.
Calls LimeSurvey RemoteControl method copy_survey. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | Name for the copied survey. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| source_survey_id | Yes | ID of the survey to copy. | |
| destination_survey_id | No | Optional desired ID for the copy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readWrite (readOnlyHint=false), non-destructive (destructiveHint=false), and non-idempotent (idempotentHint=false). The description adds value by specifying the underlying LimeSurvey method and clarifying that authentication uses a configured service account (no session key), which is behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the core purpose. Every sentence adds necessary information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic operation and authentication detail but lacks preconditions (e.g., source survey existence, permissions) and does not address potential side effects flagged by openWorldHint=true. Since an output schema exists, return values are not required, but completeness for the agent is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are fully described in the input schema (100% coverage). The description does not add any additional meaning or context for the parameters, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Copy an existing survey under a new name,' which specifies the action (copy) and resource (survey). However, it does not explicitly differentiate from sibling tools like add_survey or import_survey, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., add_survey for new surveys, import_survey for file-based creation), leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_cpd_importParticipantsImport central participantsA
Import records into the central participant database.
Calls LimeSurvey RemoteControl method cpd_importParticipants. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| participants | Yes | Central participant records. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| update_existing | No | Update matching existing records. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation (readOnlyHint=false) and non-idempotent, non-destructive. The description adds a specific call method and authentication note, but does not elaborate on error behavior, batch limits, or conflict resolution beyond the update_existing parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first sentence clearly states the purpose, and the second provides a technical detail about authentication. No extraneous words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description correctly avoids explaining return values. It covers the action, underlying method, and authentication. It could be improved by noting that this tool manages the central database rather than survey-specific participants, but overall it is quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents all parameters. The tool description adds no additional meaning beyond what is in the schemas, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Import records into the central participant database', which is a specific verb (import) and resource (central participant database). It distinguishes from sibling tools like limesurvey_add_participants, which likely add participants to a survey, by targeting the central database.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an authentication instruction but does not give explicit guidance on when to use this tool versus alternatives (e.g., adding participants to a survey). The context is clear but lacks explicit when-not-to-use or comparison with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_delete_groupDelete question groupADestructive
Delete a question group from a survey. Requires confirm_destructive_action=true.
Calls LimeSurvey RemoteControl method delete_group. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Numeric question-group ID. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_destructive_action | Yes | Required acknowledgement of the permanent deletion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds backend method name ('delete_group') and confirms destructive nature, consistent with destructiveHint annotation. No contradiction. Provides context beyond annotations about the required action confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and key requirement, no fluff. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, required parameter, auth, and backend. Missing preconditions or error scenarios, but output schema exists. Adequately complete given tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description only reiterates the confirm_destructive_action requirement without adding new semantic meaning to parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states deletion of a question group from a survey. Verb 'Delete' and resource 'question group' are explicit. Does not explicitly distinguish from sibling delete tools like limesurvey_delete_survey, but purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions required parameter confirm_destructive_action=true and authentication method. Provides some usage context but no guidance on when to use vs alternatives (e.g., delete question vs group) or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_delete_languageDelete survey languageADestructive
Remove a non-base language from a survey. Requires confirm_destructive_action=true.
Calls LimeSurvey RemoteControl method delete_language. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | Yes | Language code to remove. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_destructive_action | Yes | Required acknowledgement of the permanent deletion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description reinforces this by requiring confirmation. It adds the backend method call and authentication note. No contradictions. It does not detail edge cases (e.g., removing base language), but given annotation coverage, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff: purpose, requirement, and implementation/authentication. Each sentence earns its place. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with clear annotations and output schema, the description covers purpose, requirements, authentication, and backend method. It does not describe error handling or edge cases, but these are low priority given the tool's simplicity and annotation support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond schema, only reinforcing the confirm_destructive_action requirement already captured by the const true definition. No additional parameter details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove a non-base language), the resource (survey), and distinguishes from siblings like limesurvey_add_language and limesurvey_get_survey_languages. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires confirm_destructive_action=true and mentions authentication. It implies the tool is for non-base languages only, providing clear context. However, it does not explicitly state when to avoid using it or list alternatives, though the sibling set makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_delete_participantsDelete survey participantsADestructive
Delete participants by token-table row IDs. Requires confirm_destructive_action=true.
Calls LimeSurvey RemoteControl method delete_participants. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| token_ids | Yes | Participant token-table row IDs. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_destructive_action | Yes | Required acknowledgement of the permanent deletion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds value by disclosing the required confirm_destructive_action parameter and the authentication method (configured service account, not providing session key). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences; the first sentence states purpose and requirement, the second provides technical implementation details. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description does not need to explain return values. It covers deletion intent, required confirmation, and authentication, which is sufficient for a straightforward delete operation. Could mention error handling or success indicators, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema, essentially restating the token_ids purpose and the confirm requirement. No detailed syntax or usage nuances are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and resource 'participants', specifying the method 'by token-table row IDs'. It differentiates from sibling tools like add, get, list, mail, invite, remind, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deletion (requires confirm_destructive_action=true) but does not explicitly state when to use this tool versus alternatives like delete_survey or delete_response. No exclusions or context is provided beyond the action itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_delete_questionDelete questionADestructive
Delete a question from its survey. Requires confirm_destructive_action=true.
Calls LimeSurvey RemoteControl method delete_question. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| question_id | Yes | Numeric question ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_destructive_action | Yes | Required acknowledgement of the permanent deletion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by specifying the requirement for confirm_destructive_action=true, the underlying LimeSurvey method, and that authentication is handled automatically. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding distinct value: action, requirement, background. No fluff, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, the description adequately covers the destructive nature, required confirmation, and authentication. It could clarify how to obtain question_id, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description reinforces the confirm_destructive_action parameter's role and mentions the method, but adds minimal extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a question from its survey', which is a specific verb and resource. It distinguishes from sibling tools like delete_survey, delete_group, etc., by focusing on questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting a question and requires confirm_destructive_action=true. It does not explicitly exclude alternatives, but sibling tool names make it clear this is for questions only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_delete_quotaDelete quotaADestructive
Delete a survey quota. Requires confirm_destructive_action=true.
Calls LimeSurvey RemoteControl method delete_quota. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| quota_id | Yes | Numeric quota ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_destructive_action | Yes | Required acknowledgement of the permanent deletion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. Description adds details about the underlying LimeSurvey method and authentication requirement, but no additional behavioral expectations beyond what's obvious from the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loaded with purpose and immediate requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with full schema coverage and output schema, the description covers the essential purpose, confirmation requirement, and backend method. Missing details like which quota to delete are in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description only reiterates the confirm_destructive_action constraint, adding no new information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Delete' and resource 'survey quota'. Distinguishes from siblings like limesurvey_delete_survey, limesurvey_delete_group, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states requirement for confirm_destructive_action parameter, indicating it's a destructive operation. Does not explicitly state when to use vs alternatives, but the tool is self-contained for deleting a specific quota.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_delete_responseDelete survey responseADestructive
Permanently delete a response. Requires confirm_destructive_action=true.
Calls LimeSurvey RemoteControl method delete_response. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_id | Yes | Numeric response ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_destructive_action | Yes | Required acknowledgement of the permanent deletion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, but the description adds context like 'Permanently delete' and the necessary confirmation. The authentication note goes beyond structured metadata, providing valuable behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each essential: purpose, prerequisite, backend call and authentication. No wasted words, front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description need not detail returns. It covers purpose, requirement, and auth. For a deletion tool with good structured metadata, this is sufficient. Could mention effect on related data, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all parameters with 100% description coverage, so baseline is 3. The description reiterates the confirm_destructive_action requirement but adds no new meaning beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Permanently delete a response.' The verb 'delete' and resource 'response' are specific, and the requirement for confirm_destructive_action is highlighted. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear prerequisites: 'Requires confirm_destructive_action=true' and 'Authentication uses the configured service account; do not provide a session key.' It implicitly distinguishes from siblings like 'limesurvey_update_response' by focusing on deletion, but lacks explicit when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_delete_surveyDelete surveyADestructive
Permanently delete a survey. Requires confirm_destructive_action=true.
Calls LimeSurvey RemoteControl method delete_survey. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_destructive_action | Yes | Required acknowledgement of the permanent deletion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description goes beyond annotations by stating permanent deletion, required confirmation, underlying API method, and authentication details. No contradiction with annotations (destructiveHint: true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely concise with 3 sentences, front-loading the key action and proceeding with essential details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers all necessary context: permanence, confirmation, underlying method, and authentication. Output schema exists for return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal parameter info beyond schema (e.g., survey_id is numeric, confirm_destructive_action must be true). Not significantly more helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Permanently delete a survey', providing a specific verb and resource. This clearly distinguishes it from sibling tools like delete_question or delete_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description clearly indicates when to use this tool (to delete a survey) and requires confirm_destructive_action=true, but does not explicitly mention when not to use or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_responsesExport survey responsesARead-onlyIdempotent
Export responses as a base64-encoded document.
Calls LimeSurvey RemoteControl method export_responses. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Optional response fields to export. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| heading_type | No | Column heading style. | |
| document_type | Yes | Export type such as csv, html, pdf, xls, or json. | |
| language_code | No | LimeSurvey language code; null uses the survey default. | |
| response_type | No | Answer text format. | |
| to_response_id | No | Optional last response ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| from_response_id | No | Optional first response ID. | |
| completion_status | No | Completion filter. | |
| additional_options | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds that the output is base64-encoded and references the specific RPC method. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences, no wasted words. The first sentence clearly states the primary action and output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given high schema coverage and existence of an output schema, the description covers the essential purpose and output format. It does not detail the base64 document structure, but that is acceptable with an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very high (91%), so the baseline is 3. The description does not provide additional meaning beyond the schema, merely stating the overall purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports responses as a base64-encoded document. It specifies the underlying RPC method and notes authentication details. However, it does not differentiate this from sibling tools like limesurvey_export_responses_by_token, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides only authentication instructions, stating the agent should not provide a session key. There is no guidance on when to use this tool versus alternatives (e.g., export_responses_by_token, export_statistics) or any prerequisites like survey activation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_responses_by_tokenExport responses by tokenARead-onlyIdempotent
Export responses for selected participant tokens as a base64-encoded document.
Calls LimeSurvey RemoteControl method export_responses_by_token. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Optional response fields to export. | |
| tokens | Yes | One participant token or a list of tokens to export. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| heading_type | No | Column heading style. | |
| document_type | Yes | Export type such as csv, html, pdf, xls, or json. | |
| language_code | No | LimeSurvey language code; null uses the survey default. | |
| response_type | No | Answer text format. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| completion_status | No | Completion filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by noting the output is a base64-encoded document and calling a specific API method. This provides behavioral context beyond annotations, though it could mention potential size limits or encoding details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences covering the main action and one sentence about authentication. It front-loads the core purpose and avoids unnecessary details, efficiently using every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parameters, 3 required), the presence of an output schema, and strong annotations, the description is fairly complete. It covers the tool's purpose, output format, and authentication. However, it does not explain how to decode or use the base64 result, which is a minor gap for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents each parameter. The description adds no additional per-parameter meaning, making it a baseline scenario. It does not compensate beyond the schema's rich enum and description details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it exports responses for selected tokens as a base64-encoded document. It accurately reflects the action implied by the tool name. However, it does not explicitly differentiate from similar sibling tools like limesurvey_export_responses or limesurvey_export_responses_by_token_to_file, relying on the name for distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions authentication context (no session key) and the target LimeSurvey method, providing some usage guidance. However, it does not specify when to use this tool versus alternatives (e.g., when you have tokens vs. when you don't), nor provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_responses_by_token_to_fileExport token responses to a fileB
Export responses for selected tokens and securely decode the result inside LIMESURVEY_EXPORT_DIR.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| tokens | Yes | ||
| file_name | No | Optional output file name without a directory. | |
| overwrite | No | Allow replacing an existing file. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| heading_type | No | code | |
| document_type | Yes | ||
| language_code | No | Optional LimeSurvey language code. | |
| response_type | No | short | |
| completion_status | No | all | |
| confirm_overwrite | No | Required acknowledgement when overwrite is true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds 'securely decode the result inside LIMESURVEY_EXPORT_DIR' but doesn't explain error handling, overwrite behavior, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 18-word sentence is efficient but lacks important details; it is more under-specified than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description fails to explain the file format, the meaning of 'securely decode', or the effect of many optional parameters (e.g., completion_status, response_type). Incomplete for a tool with 11 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 45%, but the description adds no extra meaning beyond parameter names and schema descriptions. It does not clarify how fields, heading_type, response_type, etc., affect output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'export' and resource 'responses for selected tokens', clearly distinguishing from siblings like limesurvey_export_responses (no file output) and limesurvey_export_responses_to_file (all responses).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives (e.g., limesurvey_export_responses_by_token for in-memory results), nor prerequisites or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_responses_to_fileExport responses to a fileC
Export responses and securely decode the base64 result inside LIMESURVEY_EXPORT_DIR.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| file_name | No | Optional output file name without a directory. | |
| overwrite | No | Allow replacing an existing file. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| heading_type | No | code | |
| document_type | Yes | ||
| language_code | No | Optional LimeSurvey language code. | |
| response_type | No | short | |
| to_response_id | No | ||
| from_response_id | No | ||
| completion_status | No | all | |
| confirm_overwrite | No | Required acknowledgement when overwrite is true. | |
| additional_options | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only, non-idempotent, non-destructive behavior. The description adds minimal detail: it writes to LIMESURVEY_EXPORT_DIR and decodes base64, but does not disclose file creation, overwrite handling, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, but it is poorly structured and vague. It includes an oddly specific detail about decoding base64 without explaining why, and fails to convey the core functionality clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, 2 required), the description is severely incomplete. It does not explain return values, output format, or the purpose of key parameters, leaving the agent ill-equipped to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (38%), and the description adds no parameter explanations. Many important parameters like document_type, response_type, and completion_status are left unexplained, forcing reliance on the sparse schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports responses, but does not distinguish it from sibling export tools like export_responses or export_responses_by_token_to_file. The mention of decoding base64 inside a specific directory adds specificity but is secondary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools have similar names and purposes, but the description lacks any comparative context or usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_statisticsExport survey statisticsARead-onlyIdempotent
Export survey statistics as a base64-encoded PDF, XLS, or HTML document.
Calls LimeSurvey RemoteControl method export_statistics. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | LimeSurvey language code; null uses the survey default. | |
| group_ids | No | Optional group ID or list of group IDs. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| document_type | No | Statistics document type. | |
| include_graphs | No | Whether to include graphs. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive. Description adds value by specifying base64-encoded output and the underlying RemoteControl method, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each adding essential information. No redundant words. Key action front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality and authentication. Output schema exists, so return values are documented. Could mention decoding base64, but adequate for a read-only export tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameter descriptions. Description does not add further meaning beyond what schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (export), resource (survey statistics), and output format (base64-encoded PDF, XLS, or HTML). Differentiates from sibling tools like export_responses or export_timeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides authentication context but no explicit guidance on when to use this tool versus alternatives. No when-not-to-use or prerequisite conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_statistics_to_fileExport statistics to a fileB
Export survey statistics and securely decode the result inside LIMESURVEY_EXPORT_DIR.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Optional LimeSurvey language code. | |
| file_name | No | Optional output file name without a directory. | |
| group_ids | No | ||
| overwrite | No | Allow replacing an existing file. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| document_type | No | ||
| include_graphs | No | 0 | |
| confirm_overwrite | No | Required acknowledgement when overwrite is true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation with no idempotency and no destruction. The description adds one behavioral detail: 'securely decode the result inside LIMESURVEY_EXPORT_DIR.' However, it does not disclose potential side effects like file overwriting (though the parameters overwrite and confirm_overwrite suggest this). The description adds some context beyond annotations but is still limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action. No redundant words. While it is efficient, it sacrifices necessary detail for brevity, which slightly lowers the score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, a write operation, an output schema, and annotations, the description is too minimal. It does not explain the output, the meaning of 'securely decode', or how parameters like overwrite interact. The description is not sufficient for an agent to use this tool reliably without additional schema parsing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 63%, meaning several parameters (e.g., group_ids) lack descriptions. The tool description does not mention any parameter meaning or usage, thus adding no value beyond the schema. With moderate coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Export survey statistics and securely decode the result inside LIMESURVEY_EXPORT_DIR.' It uses a specific verb (Export) and resource (statistics to file), and the mention of a secured directory distinguishes it from sibling tools like limesurvey_export_statistics which likely returns data directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or contrast with similar tools (e.g., export_statistics for direct output). The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_survey_to_fileExport survey structure to a file (experimental)A
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | No | Optional output file name without a directory. | |
| overwrite | No | Allow replacing an existing file. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| document_type | No | Structure export format. | lss |
| confirm_overwrite | No | Required acknowledgement when overwrite is true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, destructiveHint=false, openWorldHint=true. Description adds critical details: writes a file, returns path instead of base64, always fails with EXPORT_UNSUPPORTED without flag. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with primary action, includes critical caveats about experimental status and failure condition. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects for an agent: purpose, experimental nature, requirements, failure scenario, and preferred alternatives. Output schema presumably handles return values, so no gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, each parameter has a clear description. The tool description does not add new information beyond what's in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool attempts to export a survey's structure as .lss and write it to a directory, returning a path. It distinguishes itself from other export tools by specifying it's for survey structure and is experimental.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: prefers property-based verification over this tool, states experimental requirement (LIMESURVEY_ENABLE_EXPERIMENTAL_METHODS=true), and notes that core RC2 lacks this method, so it only works with custom plugins. Clear when to use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_export_timelineExport response timelineARead-onlyIdempotent
Return response counts by day or hour for a date range.
Calls LimeSurvey RemoteControl method export_timeline. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End date/time accepted by LimeSurvey. | |
| start | Yes | Start date/time accepted by LimeSurvey. | |
| period | Yes | Timeline aggregation period. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by naming the underlying API method (export_timeline) and clarifying authentication (using configured service account, not session key). This goes beyond annotations, though it doesn't detail response format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence states the core functionality, and the second provides essential authentication guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the excellent annotations (read-only, idempotent, non-destructive), full parameter schema coverage, and presence of an output schema, the description is sufficiently complete. The agent knows it is a safe read operation, what it returns, and how authentication works.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so parameters are well-documented. The description does not add extra semantics beyond what the schema provides. It mentions the aggregation periods (day/hour) and date range, but these are already part of the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb (return), resource (response counts), and scope (by day or hour for a date range). The tool name 'export_timeline' matches its purpose, and it is distinct from siblings like export_responses which handle raw responses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it returns aggregated counts and mentions authentication, but it does not explicitly guide when to use this tool over alternatives such as export_responses or export_statistics. The context signals show many sibling tools, but no direct comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_find_surveysFind surveysARead-onlyIdempotent
Find visible surveys by ID or title with bounded client-side pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Case-insensitive survey ID or title fragment. | |
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true; the description adds 'bounded client-side pagination', which is useful but minimal. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose efficiently. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with output schema, the description covers basic functionality but does not clarify what the output contains (e.g., list of survey objects) or the behavior of client-side pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only query has a description). The description mentions 'by ID or title' but does not explain limit/offset semantics beyond the schema. With low schema coverage, more compensation was needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds visible surveys by ID or title with pagination, distinguishing it from the sibling 'list_surveys' which lists all surveys without search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for search (by ID or title) but does not explicitly state when to use this over alternatives like 'list_surveys' or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_generate_survey_themeGenerate a responsive LimeSurvey 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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Human-readable title shown in LimeSurvey. | |
| author | No | LimeSurvey MCP user | |
| density | No | comfortable | |
| overwrite | No | ||
| author_url | No | ||
| font_style | No | system | |
| text_color | No | #1F2933 | |
| theme_name | Yes | Unique LimeSurvey theme and folder name, for example acme_feedback. | |
| description | No | Responsive survey theme generated with LimeSurvey MCP. | |
| focus_color | No | #005FCC | |
| logo_base64 | No | Optional base64 PNG or JPEG logo without a data URL prefix. | |
| accent_color | No | #C84B31 | |
| author_email | No | ||
| primary_color | No | #0B6B57 | |
| surface_color | No | #FFFFFF | |
| theme_version | No | 1.0.0 | |
| logo_file_type | No | ||
| background_color | No | #F5F7F6 | |
| corner_radius_px | No | ||
| muted_text_color | No | #52606D | |
| confirm_overwrite | No | ||
| content_max_width_px | No | ||
| target_limesurvey_major | No | 7 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations providing only false hints, description adds behavioral context: it creates a validated theme, inherits a specific base theme, and targets specific LimeSurvey versions. It does not fully disclose all side effects (e.g., overwrite behavior, authentication needs) but provides more than the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence of 18 words, effectively front-loading the purpose and key details without extraneous text. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema exists, the description does not explain how parameters influence the generated theme, nor does it describe the generation process or return value. Given the high parameter complexity, the description is incomplete for guiding an agent on tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very low (13%), yet the tool description does not mention any of the 23 parameters. It fails to add meaning beyond the schema, leaving parameter roles and guidance entirely to the schema's sparse descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool creates a validated GPL-2.0-or-later ZIP theme inheriting Bootstrap 5 vanilla for LimeSurvey 7 or 6. It specifies verb (create), resource (ZIP theme), and distinguishes from sibling tools like validate_survey_theme or assign_survey_theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides context on what the tool creates and for which versions, implying usage for theme generation. However, it does not explicitly state when to use this tool versus alternatives like limesurvey_validate_survey_theme or limesurvey_assign_survey_theme, nor provides when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_available_site_settingsList available site settingsARead-onlyIdempotent
List global setting names available to a super administrator.
Calls LimeSurvey RemoteControl method get_available_site_settings. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds that it calls a specific RC method and that authentication is via service account, providing extra context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose. Every sentence adds value without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, output schema present, annotations cover safety), the description provides sufficient detail including the underlying method and authentication. No gaps remain for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (response_format) with full schema coverage (100%). The schema already describes the parameter meaning. The tool description does not add additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List global setting names available to a super administrator' uses a specific verb ('list') and clearly identifies the resource (global setting names). It distinguishes from the sibling tool 'limesurvey_get_site_settings' which likely retrieves setting values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the underlying RC method and states that authentication uses the configured service account and that no session key should be provided, which is a clear usage guideline. It does not explicitly compare to alternatives, but the purpose is distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_fieldmapGet survey field mapARead-onlyIdempotent
Return the survey response field map.
Calls LimeSurvey RemoteControl method get_fieldmap. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | LimeSurvey language code; null uses the survey default. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, indicating safe behavior. The description adds that authentication uses the configured service account and calls a specific remote method, but does not disclose other behavioral traits like response size or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences without any fluff. It is front-loaded with the primary action and efficiently includes authentication context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that annotations cover safety, schema covers parameters, and an output schema exists, the description is largely complete. It lacks explicit usage guidance but is otherwise sufficient for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description does not add additional parameter details beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Get survey field map' and description 'Return the survey response field map' clearly state the specific verb and resource. The description also identifies the underlying LimeSurvey method. Among many siblings, this is uniquely for field map retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving the field map and mentions authentication details, but does not explicitly state when to use this tool vs alternatives or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_group_propertiesGet group propertiesARead-onlyIdempotent
Read selected question-group properties.
Calls LimeSurvey RemoteControl method get_group_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Numeric question-group ID. | |
| language | No | LimeSurvey language code; null uses the survey default. | |
| properties | No | Properties to return for the question group; null returns all available properties. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, idempotent, non-destructive behavior. Description adds valuable context: 'Authentication uses the configured service account; do not provide a session key' and references the underlying RemoteControl method.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first clearly states purpose, second adds critical authentication info. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description sufficiently explains purpose and authentication. It could optionally mention the ability to filter properties via the 'properties' parameter, but schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for all 4 parameters, so the description adds no new parameter-level meaning. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Read selected question-group properties' with a specific verb and resource. It clearly distinguishes this read operation from sibling tools like limesurvey_list_groups or limesurvey_set_group_properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like limesurvey_list_groups or limesurvey_get_survey_properties. The description implies usage through purpose but lacks direct comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_instance_infoGet MCP server and LimeSurvey capability infoARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| probe_instance | No | Also call list_surveys and get_site_settings to probe live connectivity, auth, and version/permission level. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, non-destructive. The description adds behavioral context: the default no-RemoteControl-call behavior, the probe mode details (list_surveys count, get_site_settings versionnumber), and the superadmin degradation. This exceeds annotation information and clarifies side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with key purpose front-loaded, followed by specifics and parameter details. It is relatively lengthy but every sentence adds value. Slight redundancy could be trimmed, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (config reporting with optional probing), the description covers all relevant aspects: default behavior, probe behavior, auth prerequisites, use case guidance, and data fields. With an output schema present, return value explanation is not needed. The description is fully self-contained for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter probe_instance, but the description adds rich semantics: it controls an additional connectivity/auth probe, details what calls are made (list_surveys, get_site_settings), and notes the superadmin requirement and degradation. This goes far beyond the schema's brief description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports server-side configuration (server_version, instance_host, etc.) without RemoteControl calls by default, distinguishing it from sibling tools that fetch specific survey data or perform actions. The optional probe_instance parameter is explained, providing a specific resource and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises calling this before relying on file export/import or theming tools, and explains when to use probe_instance (for connectivity/auth) and the superadmin requirement for get_site_settings. It implicitly differentiates from siblings by being a configuration-reporting tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_language_propertiesGet language propertiesARead-onlyIdempotent
Read localized survey properties.
Calls LimeSurvey RemoteControl method get_language_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | LimeSurvey language code; null uses the survey default. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| properties | No | Properties to return for the survey language; null returns all available properties. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful context: it calls a specific RemoteControl method and states that authentication uses a service account (no session key). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose. Every sentence is essential, no wasted words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations, complete schema, and presence of an output schema, the description is sufficient. It could mention that the properties parameter filters output, but that is already in the schema. Overall complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters. The description does not add extra meaning beyond what the schema provides, so baseline score 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads localized survey properties, which distinguishes it from sibling tools like limesurvey_get_survey_properties (survey-wide properties) and limesurvey_get_survey_languages (list languages). The verb 'Read' and resource 'localized survey properties' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading language-specific properties, but it does not explicitly mention when not to use it (e.g., for survey-wide properties use limesurvey_get_survey_properties). However, the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_participant_propertiesGet participant propertiesARead-onlyIdempotent
Read selected properties for a participant matched by token or token-table ID.
Calls LimeSurvey RemoteControl method get_participant_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Participant lookup properties, such as token or tid. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| properties | No | Properties to return for the participant; null returns all available properties. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive behavior. The description adds that authentication uses the configured service account, which is a small behavioral note, but does not disclose other traits like effects of missing participants or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a purpose: purpose, underlying method, and authentication note. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the available annotations and schema, the description is sufficient for a simple read tool, but it lacks any mention of the return structure or format, which would be helpful since no output schema is provided in the definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description hints at the query parameter (matching by token or tid) but does not elaborate on individual parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads participant properties by token or token-table ID, using a specific verb and resource. It distinguishes itself from sibling tools like set_participant_properties (which writes) and list_participants (which lists all participants).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only use case but does not explicitly state when to use this tool versus alternatives like set_participant_properties or list_participants. Lacks explicit 'when-not' or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_question_propertiesGet question propertiesARead-onlyIdempotent
Read selected question properties.
Calls LimeSurvey RemoteControl method get_question_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | LimeSurvey language code; null uses the survey default. | |
| properties | No | Properties to return for the question; null returns all available properties. | |
| question_id | Yes | Numeric question ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by specifying the underlying method (`get_question_properties`) and clarifying authentication behavior (no session key needed). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose, and the second provides implementation and authentication context. No unnecessary words, front-loaded, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description need not explain return values. It covers purpose, method, and a key authentication detail. With 4 parameters (1 required), it provides sufficient context for an agent to use the tool correctly, though it could mention that the tool supports both JSON and Markdown output formats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any additional meaning beyond what the schema provides for each parameter. It says 'Read selected question properties' but does not elaborate on the available parameters like `language`, `properties`, or `response_format`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Read selected question properties,' clearly stating the verb (Read), resource (question properties), and scope (selected). This distinguishes it from sibling tools like `limesurvey_set_question_properties` (write) and other getters for surveys, groups, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a guideline to not provide a session key because authentication is handled by the service account. While it does not explicitly state when to use this tool over alternatives, the naming and sibling context make it obvious. A slight improvement could be adding a mention that this is for reading, not writing, questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_quota_propertiesGet quota propertiesARead-onlyIdempotent
Read selected quota properties.
Calls LimeSurvey RemoteControl method get_quota_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | LimeSurvey language code; null uses the survey default. | |
| quota_id | Yes | Numeric quota ID. | |
| properties | No | Properties to return for the quota; null returns all available properties. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds value by specifying the underlying API method and authentication details, confirming the read-only nature and providing operational context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two substantive sentences plus a line for method and authentication. It is front-loaded with the purpose and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), rich annotations, and thorough input schema, the description provides enough context. It covers authentication and the underlying method, making it complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptive parameter names and descriptions. The description's mention of 'selected quota properties' is generic but does not add new meaning beyond the schema. Baseline score of 3 is appropriate as the schema already sufficiently documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Read selected quota properties,' which clearly identifies the action (read) and resource (quota properties). This distinguishes it from sibling tools like limesurvey_set_quota_properties (write) and limesurvey_delete_quota (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use it (reading quota properties) and the underlying RemoteControl method. It also includes authentication guidance ('do not provide a session key'). However, it does not explicitly state when not to use it or compare with alternatives, though siblings imply the differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_response_idsFind response IDsARead-onlyIdempotent
Find response IDs for a participant token.
Calls LimeSurvey RemoteControl method get_response_ids. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Participant token. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds the specific LimeSurvey method call and authentication note, but no additional behavioral traits like pagination or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences that front-load the purpose and follow with method and authentication details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema and annotations, the description is fairly complete. However, it could explicitly state that the tool returns a list of IDs for the token.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so the description adds no extra meaning. The baseline of 3 applies as per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds response IDs for a participant token, using a specific verb and resource. It distinguishes from siblings like export_responses (which exports full data) by focusing only on IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It only mentions authentication. There is no explicit context for selection among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_session_keyConnect to LimeSurveyA
Open and cache an authenticated RemoteControl session without exposing its key.
Calls LimeSurvey RemoteControl method get_session_key. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false), the description discloses caching behavior and that authentication uses a configured service account. It adds the important behavioral guarantee of not exposing the session key. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The primary action is front-loaded, followed by the implementation detail and a critical usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema (one optional param) and the presence of an output schema, the description adequately covers the tool's authentication mechanism, caching, and security aspect. No missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (response_format) with 100% schema description coverage. The description adds no extra meaning beyond the schema's enum values and defaults, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: opens and caches an authenticated RemoteControl session without exposing the key. It specifies the underlying method (get_session_key) and distinguishes it from data manipulation tools, establishing a specific verb-resource pair.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage as a prerequisite for authenticated operations by mentioning caching and configured service account. Explicitly warns not to provide a session key. However, does not explicitly state when to use or name alternatives like release_session_key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_site_settingsGet site settingARead-onlyIdempotent
Read one global LimeSurvey setting.
Calls LimeSurvey RemoteControl method get_site_settings. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| setting_name | Yes | Global setting name. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety. The description adds useful context about the RC method and the authentication note ('do not provide a session key'), which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose. Every sentence is necessary: one for the core function and one for the method and authentication note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete given the low complexity. Parameters are fully documented in the schema, annotations cover behavioral traits, and an output schema exists. The description provides the essential context: what it does, how it accesses the API, and a critical authentication constraint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both parameters ('setting_name' and 'response_format') have clear descriptions and enums. The description adds no additional meaning beyond the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Read one global LimeSurvey setting.' This uses a specific verb ('Read') and resource ('global LimeSurvey setting'), and distinguishes it from siblings like 'limesurvey_get_available_site_settings' which lists all settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by specifying the underlying RC method and authentication handling ('do not provide a session key'). However, it does not explicitly state when to use this tool versus alternatives (e.g., get_available_site_settings) or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_summaryGet survey summaryARead-onlyIdempotent
Read response and participant summary counters.
Calls LimeSurvey RemoteControl method get_summary. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| statistic | No | Summary statistic to return. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds that it calls a specific remote method and that authentication is handled automatically, providing context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the purpose stated first, followed by a key usage note. Every word adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations and output schema, the description is sufficient. It explains what the tool does, how authentication works, and references the underlying method, leaving no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters with descriptions (100% coverage). The description does not add any extra meaning to the parameters themselves, maintaining the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Read response and participant summary counters', clearly stating the verb and resource. It succinctly distinguishes this tool from siblings that handle other aspects like exports or modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains that authentication uses the configured service account and warns not to provide a session key, guiding proper invocation. It does not explicitly list alternatives or when not to use it, but the purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_survey_languagesGet survey languagesARead-onlyIdempotent
Return the base and additional language codes configured for a survey.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds context by specifying that both base and additional language codes are returned, which provides behavioral clarity beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 12 words, front-loaded with verb and resource, no redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and an output schema, the description fully defines the purpose. No additional information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with adequate description for survey_id. The tool description does not add any additional parameter meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'return' and resource 'base and additional language codes configured for a survey', clearly distinguishing it from sibling tools like add_language or delete_language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when or when not to use this tool. However, the purpose is clear and siblings are distinct, so usage is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_survey_propertiesGet survey propertiesARead-onlyIdempotent
Read selected survey properties.
Calls LimeSurvey RemoteControl method get_survey_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| properties | No | Properties to return for the survey; null returns all available properties. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, etc., indicating safe reading. Description adds minor context about authentication but doesn't elaborate on behavior beyond what annotations imply. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no fluff. First sentence states purpose, second gives critical auth context. High information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with output schema and comprehensive annotations, the description provides all necessary context: what it does, auth method, and implied safety. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions (100% coverage). Description does not add additional semantic meaning to the parameters beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Read selected survey properties', specifying the resource (survey properties) and the action (read). Contrasts with sibling getters by focusing on survey-level properties, distinguishing it from, e.g., get_survey_languages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions authentication via service account and instructs not to provide a session key, which is helpful. However, no explicit guidance on when to use this tool versus other read tools like get_survey_languages or get_group_properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_theme_publication_guideGet LimeSurvey theme publication instructionsBRead-onlyIdempotent
Return version-aware installation, preview, assignment, accessibility, rollback, and optional community-publication steps for a survey theme.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting | Yes | ||
| theme_name | Yes | Unique LimeSurvey theme and folder name, for example acme_feedback. | |
| package_file_name | Yes | Generated ZIP file name. | |
| publication_scope | No | instance | |
| installed_limesurvey_version | Yes | Version shown in the LimeSurvey administration footer. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, indicating a safe read operation. The description adds detail about the content of the returned steps (installation, preview, etc.), which provides some behavioral context beyond annotations but does not reveal additional traits like authentication requirements or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 20 words that immediately conveys the tool's output. It is front-loaded with the key verb and resource, and every word adds value, making it highly concise with no unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated true), the description does not need to detail return values. However, the tool has 5 parameters, including required ones like hosting and publication_scope, and the description does not explain how these inputs shape the output. The mention of 'version-aware' partly addresses the installed_limesurvey_version parameter, but overall it lacks completeness for a parameter-rich tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (3 of 5 parameters have descriptions in the schema). The tool description does not explain any parameter's purpose or how they affect the output. Parameters like hosting and publication_scope lack schema descriptions, and the tool description fails to compensate, leaving the agent to interpret the input schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns version-aware installation, preview, assignment, accessibility, rollback, and optional community-publication steps for a survey theme. The verb 'return' and specific resource distinguish it from sibling tools such as limesurvey_generate_survey_theme or limesurvey_assign_survey_theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not specify when to use this tool versus alternatives like limesurvey_generate_survey_theme or limesurvey_validate_survey_theme. No guidance on prerequisites or when not to use it is provided, leaving the agent to infer appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_get_uploaded_filesGet uploaded response filesARead-onlyIdempotent
Return uploaded file metadata and base64 content for a token or response.
Calls LimeSurvey RemoteControl method get_uploaded_files. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Participant token. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_id | No | Optional response ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that it returns file metadata and base64 content but does not disclose further behavioral details like rate limits or response structure beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no wasted words. Key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description sufficiently covers purpose and authentication. However, it could clarify the relationship between token and response_id usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all 4 parameters. The description adds no additional parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns uploaded file metadata and base64 content for a token or response, using a specific verb and resource. This distinguishes it from sibling tools like upload_file or delete_response.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it calls a specific RC method and notes that authentication uses the configured service account without needing a session key. However, it does not provide explicit when-use or when-not-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_import_groupImport question 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 import_group. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| import_data | No | Base64-encoded group file contents; omit when using import_data_path. | |
| new_group_name | No | Optional replacement group name. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| import_data_path | No | Local file path to a question group file. The server reads and base64-encodes it, so use this instead of inline import_data for files at or above roughly 50 KB. The file must live inside LIMESURVEY_IMPORT_DIR (or LIMESURVEY_EXPORT_DIR as a fallback). Exactly one of import_data or import_data_path must be set. | |
| import_data_type | Yes | Import type supported by the LimeSurvey instance, normally lsg. | |
| new_group_description | No | Optional replacement group description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read, non-idempotent operation. The description adds context about the underlying API method and authentication, but does not elaborate on error conditions or side effects beyond what annotations provide. This is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: 4 sentences with no fluff. It front-loads the main purpose, then provides critical usage guidance, and ends with authentication instructions. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 7 parameters and the existence of an output schema (not shown but indicated), the description covers the essential aspects: purpose, file handling, and authentication. It does not cover error cases or return value details, but the output schema likely handles that. It is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the import_data_path parameter in more detail: that the server reads and base64-encodes the file, the file size recommendation, and the directory constraints. This goes beyond the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Import' and the resource 'a question group into a survey'. It distinguishes itself from sibling tools like limesurvey_add_group by focusing on import from a file, and it provides specific guidance on file size thresholds. The purpose is immediately clear and sets appropriate expectations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises when to use import_data_path over import_data based on file size (~50 KB), which is actionable guidance. It also warns against providing a session key, clarifying authentication. However, it doesn't explicitly state when to use an alternative like limesurvey_add_group, though it's implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_import_questionImport 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 import_question. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Numeric question-group ID. | |
| mandatory | No | Whether the imported question is mandatory. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| import_data | No | Base64-encoded question file contents; omit when using import_data_path. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| import_data_path | No | Local file path to a question file. The server reads and base64-encodes it, so use this instead of inline import_data for files at or above roughly 50 KB. The file must live inside LIMESURVEY_IMPORT_DIR (or LIMESURVEY_EXPORT_DIR as a fallback). Exactly one of import_data or import_data_path must be set. | |
| import_data_type | Yes | Import type supported by the LimeSurvey instance, normally lsq. | |
| new_question_help | No | Optional replacement help text. | |
| new_question_text | No | Optional replacement question text. | |
| new_question_title | No | Optional replacement question code/title. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the underlying method (import_question) and authentication expectations. Given that annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false (non-destructive), the description adds moderate value by specifying the method and the file path requirement. However, it does not elaborate on potential side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences covering purpose, parameter usage guidance, and authentication. No extraneous information. Every sentence serves a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (per context signals), the description does not need to explain return values. It adequately covers the core operation, parameter selection, and authentication. It does not mention error handling or prerequisites like survey/group existence, but the schema covers required parameters. Overall, it is sufficiently complete for a 10-parameter tool with high schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter has a description. The tool description adds context beyond the schema by explaining the trade-off between import_data and import_data_path (size threshold) and the file location constraint for import_data_path. This enriches the semantic understanding for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Import a question into a survey group.' This is a specific verb and resource. It also distinguishes between the two data input methods within the tool. Although it does not differentiate from sibling tools like import_group, the name and description together make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides actionable guidance: 'Use import_data_path for files at or above roughly 50 KB instead of inline import_data.' It also clarifies authentication ('do not provide a session key'). However, it does not explicitly contrast this tool with alternatives like import_survey or import_group, which could help an agent choose the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_import_surveyImport 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 import_survey. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| import_data | No | Base64-encoded survey file contents; omit when using import_data_path. | |
| new_survey_name | No | Optional replacement survey name. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| import_data_path | No | Local file path to a survey file. The server reads and base64-encodes it, so use this instead of inline import_data for files at or above roughly 50 KB. The file must live inside LIMESURVEY_IMPORT_DIR (or LIMESURVEY_EXPORT_DIR as a fallback). Exactly one of import_data or import_data_path must be set. | |
| import_data_type | Yes | Import file type. | |
| destination_survey_id | No | Optional desired ID for the imported survey. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate write operation (readOnlyHint=false). Description adds value by revealing underlying LimeSurvey behavior: survey ID assignment logic (keeps embedded ID if free, assigns random 6-digit sid on collision), authentication via service account, and references the underlying RPC method. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single paragraph with multiple sentences covering purpose, usage, and behavior. It is informative without fluff, but could be slightly more concise by combining related points. Still well-structured for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters (1 required) and an output schema, the description covers all key aspects: file type support, size recommendations, ID handling, authentication, and underlying method. No evident gaps for an agent to misuse the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but description adds critical context: size thresholds for import_data vs import_data_path, the reciprocal exclusivity condition, and sid behavior for destination_survey_id. This significantly enhances the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool imports surveys in formats LSA, CSV, TXT, LSS. It distinguishes from sibling tools like import_group and import_question by specifying the resource type. The mention of alternative import_data_path for large files further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use import_data_path vs import_data based on file size thresholds (~50 KB, 200,000 characters). Also explains ID collision handling and destination_survey_id usage. Lacks explicit exclusion of when not to use this tool, but the guidelines are sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_invite_participantsInvite survey participantsA
Send survey invitation emails to selected or eligible participants. Requires confirm_send_email=true.
Calls LimeSurvey RemoteControl method invite_participants. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| token_ids | No | Optional participant row IDs; null selects eligible participants. | |
| send_email | No | Actually send invitation emails. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| continue_on_error | No | Continue after individual email errors. | |
| confirm_send_email | Yes | Required acknowledgement that email may be sent to participants. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, etc. The description adds that the tool sends emails and requires confirmation, which aligns with the annotations. However, it lacks details on potential side effects (e.g., email quotas, partial failures) or the underlying method's behavior beyond its name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the main purpose and a key requirement, the second provides implementation context. It is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not detail return values. It covers the primary action and a critical constraint. However, for a tool that triggers email delivery, additional context about what happens after sending (e.g., logging, error handling) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little beyond the parameter descriptions. It reinforces confirm_send_email=true as required but does not provide additional meaning or usage hints for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Send survey invitation emails to selected or eligible participants.' It specifies the action (send), resource (invitation emails), and scope (selected or eligible). While it does not explicitly differentiate from siblings like limesurvey_mail_registered_participants, the term 'invite' implies a distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite (requires confirm_send_email=true) and an authentication note (service account, no session key). However, it does not specify when to use this tool instead of limesurvey_mail_registered_participants or limesurvey_remind_participants, nor does it give exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_filtered_participantsList filtered participantsARead-onlyIdempotent
List participant rows with explicit filters, selected fields, and bounded pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| unused | No | ||
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| attributes | No | ||
| conditions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about bounded pagination, explicit filters, and selected fields, which are behavioral traits not fully captured by annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action verb 'List'. No redundant or irrelevant information. Every word contributes to understanding the tool's core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters (including a nested conditions object) and a complex schema, the description is somewhat brief. It omits mention of the 'unused' parameter and does not explain that conditions is a filter object. The existence of an output schema might help, but the description alone leaves gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 17% schema description coverage (only survey_id has a description), the description provides high-level semantics for some parameters (e.g., 'explicit filters' for conditions, 'selected fields' for attributes, 'bounded pagination' for limit/offset). However, it does not detail parameter constraints or the purpose of the 'unused' parameter. The description partially compensates but could be more specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists participant rows with explicit filters, selected fields, and bounded pagination. It uses a specific verb ('List') and resource ('participant rows'), and distinguishes from siblings like limesurvey_list_participants by highlighting the filtering and field selection capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtered result retrieval but does not explicitly state when to use this tool vs the simpler limesurvey_list_participants or other list tools. No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_groupsList question groupsARead-onlyIdempotent
List question groups in a survey.
Calls LimeSurvey RemoteControl method list_groups. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | LimeSurvey language code; null uses the survey default. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds valuable behavioral details: it calls the 'list_groups' method and notes that authentication uses the configured service account (so the agent should not provide a session key). This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one for purpose, one for implementation details. It is front-loaded and every sentence adds value. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema (not shown but indicated), the description does not need to describe return values. It covers the purpose, method, and authentication. However, it lacks any mention of pagination or filtering, which might be relevant for a list tool, but given simplicity (3 params, no nested objects), it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters have descriptions. The description does not add new meaning to parameters beyond the schema. It mentions the required survey_id implicitly, but no extra semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists question groups in a survey, with a specific verb 'List' and resource 'question groups'. The title 'List question groups' matches, and the tool is distinct from sibling tools like 'list_questions' or 'list_quotas'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context (calls specific method, authentication note) but does not explicitly state when to use this tool vs alternatives. Among many siblings, it would be helpful to clarify, e.g., 'Use this to get all groups; for individual group properties, use get_group_properties.' The usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_installed_themesList installed LimeSurvey themes (best effort)ARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_scan_limit | No | Maximum number of visible surveys to inspect for their assigned theme. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds value by explaining the tool uses two non-official signals (generated_packages, themes_in_use) and warns about incomplete data. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and uses two sentences to explain the signals and fallback. It is concise enough but could be slightly tighter; however, it earns its length by providing essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (no official method) and the presence of an output schema (mentioned), the description does not need to explain return values. It covers the two data sources and the admin-UI fallback, making it complete for an agent to understand what the tool does and its limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (survey_scan_limit) has 100% schema description coverage, including default, min, max, and description. The tool description does not add further semantics for this parameter, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists installed LimeSurvey themes using best-effort signals, with a specific verb ('list') and resource ('installed themes'). It distinguishes itself from sibling tools (none of which list themes) and includes the 'best effort' qualifier to set expectations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (when you need to enumerate installed survey themes) and mentions a fallback (admin-UI). It implies that this is a workaround due to lack of official method, but does not explicitly state when not to use or name alternatives beyond the fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_participantsList survey participantsARead-onlyIdempotent
List and filter survey participants with server-side pagination.
Calls LimeSurvey RemoteControl method list_participants. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum participants to return. | |
| start | No | Zero-based result offset. | |
| unused | No | Return only unused participants. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| attributes | No | Fields to return, or false for defaults. | |
| conditions | No | Participant filter conditions as an object or positional condition list. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent hints. Description adds value by specifying authentication details (configured service account, no session key) and mentioning server-side pagination, which are beyond annotation information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. Front-loaded with purpose statement followed by implementation detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and an output schema, description adequately covers authentication and pagination but could elaborate on pagination mechanics or response format. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter names and descriptions. The description does not add additional parameter-level meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action (list and filter), resource (survey participants), and key feature (server-side pagination). Among many sibling tools, this one is distinct in its listing/filtering capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides authentication instructions but does not differentiate when to use this tool vs alternatives like limesurvey_list_filtered_participants. No explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_questionsList questionsARead-onlyIdempotent
List questions and subquestions in a survey or group.
Calls LimeSurvey RemoteControl method list_questions. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | No | Optional question-group ID. | |
| language | No | LimeSurvey language code; null uses the survey default. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, non-destructive nature. Description adds the specific API method and authentication detail, enhancing behavioral transparency without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides implementation context. No unnecessary words; front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully covers tool scope, operation, and authentication for a simple list operation. Schema covers parameters, output schema exists, and annotations provide safety profile. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all 4 parameters. Description does not repeat or supplement parameter info, so no additional value beyond baseline for complete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'list questions and subquestions in a survey or group', specifying verb (list), resource (questions/subquestions), and scope (survey or group). Distinguishes from sibling tools that list other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes underlying API method and clarifies authentication (no session key needed). While no explicit when-to-use vs alternatives, the tool name and sibling differentiation imply context; authentication guidance is valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_quotasList quotasARead-onlyIdempotent
List quotas configured for a survey.
Calls LimeSurvey RemoteControl method list_quotas. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, etc. The description adds value by naming the underlying LimeSurvey method ('list_quotas') and clarifying that authentication uses the configured service account (no session key). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second provides method and auth context. No wasted words; efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (list quotas) and the description covers purpose, method, and auth. Output schema exists, so return values are documented elsewhere. Could mention that output is a list of quota properties, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description does not add any additional parameter-level information, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List quotas configured for a survey,' specifying the verb (list) and resource (quotas for a survey). It distinguishes from sibling list tools by focusing on quotas, and the tool is unique among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (listing quotas) but does not explicitly guide when to use this vs other quota-related tools (e.g., get_quota_properties) or other list tools. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_response_export_formatsList response export formatsARead-onlyIdempotent
Call the optional list_response_exports LimeSurvey extension to discover plugin-aware export formats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. The description adds context that this is an optional extension and plugin-aware, which is consistent and adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that clearly states the purpose. It is not overly terse but could benefit from slightly more detail about the optional extension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema present, the description is complete. It adequately conveys that the tool lists available export formats from plugins, which is all that is needed for this discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema coverage is 100%. Description does not need to add parameter semantics; baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state that the tool lists response export formats, specifically from plugins. The verb 'list' and resource 'response export formats' are precise, and it differentiates from sibling tools which involve actual exporting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates this tool is used to discover plugin-aware export formats, implying it should be called before exporting to know available formats. It could explicitly state 'use before export_responses' but current wording is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_survey_groupsList survey groupsARead-onlyIdempotent
List survey groups visible to a user.
Calls LimeSurvey RemoteControl method list_survey_groups. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| username | No | Optional administration username; null uses the current service account. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Specifies backend method and auth details, complementing annotations (readOnlyHint, idempotentHint). Does not contradict annotations, though adds implementation detail beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no filler. Every sentence is necessary and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, auth, and backend method. Output schema exists, so return format is covered. Slight gap on pagination or limits, but overall sufficient for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value beyond schema by explaining auth handling and that no session key is needed, which is relevant to parameter usage (username is optional). Schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List survey groups visible to a user' with verb 'list' and resource 'survey groups', distinguishing it from siblings like limesurvey_list_surveys and limesurvey_list_groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides authentication context: 'use configured service account; do not provide a session key', but lacks explicit comparison to alternative listing tools like limesurvey_list_groups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_surveysList surveysARead-onlyIdempotent
List surveys visible to a user, optionally filtered by survey group.
Calls LimeSurvey RemoteControl method list_surveys. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| username | No | Optional administration username; null uses the current service account. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| survey_group_id | No | Optional survey-group ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond what annotations already indicate (readOnly, idempotent, non-destructive), the description adds valuable context such as the specific RC method used and authentication details (service account, no session key).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, front-loaded with the core purpose, and contains no wasteful or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and detailed annotations, the description provides sufficient context for agent decision-making, though it omits mention of return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with descriptions, and the description mentions optional filtering by survey group, aligning with the schema but not adding new semantics beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'surveys', and specifies optional filtering by survey group, which distinguishes it from sibling tools like limesurvey_list_groups and limesurvey_list_questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides authentication guidance and references the underlying RC method, but does not explicitly state when to use this tool versus alternatives like limesurvey_find_surveys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_list_usersList administration usersARead-onlyIdempotent
List administration users, optionally filtered by ID or username.
Calls LimeSurvey RemoteControl method list_users. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | Optional administration user ID. | |
| username | No | Optional administration username. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond annotations: it names the underlying LimeSurvey method ('list_users') and clarifies authentication behavior. Annotations already indicate read-only and idempotent, so there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences, first states purpose and filtering, second adds method and auth instruction. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (context indicates present), the description does not need to explain return values. It covers purpose, filtering, underlying method, and authentication, leaving no gaps for a read-only listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with detailed descriptions for all parameters. The description only vaguely references filtering by 'ID or username,' which aligns with the schema but adds no new detail beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists administration users, with optional filtering by ID or username. It is specific and unambiguous, and there are no sibling tools with similar functionality, so no differentiation needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on authentication: 'Authentication uses the configured service account; do not provide a session key.' It does not explicitly state when to use vs. alternatives, but given the tool is unique among siblings, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_mail_registered_participantsEmail registered participantsA
Send registration emails to survey participants. Requires confirm_send_email=true.
Calls LimeSurvey RemoteControl method mail_registered_participants. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| confirm_send_email | Yes | Required acknowledgement that email may be sent to participants. | |
| override_conditions | No | Replacement email conditions as an object or positional condition list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint false) with side effects (openWorldHint true). The description adds context by specifying the required confirm_send_email flag and the underlying RPC method. However, it does not discuss idempotency or behavior if participants already received the email, which is relevant given idempotentHint false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the purpose and requirement, then providing background. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, output schema exists), the description covers the essential action, required confirmation, and authentication. It does not describe return values or potential errors, but the presence of an output schema (indicated by context signals) may compensate. The openWorldHint is addressed by noting emails are sent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description reinforces the confirm_send_email constraint but does not add further meaning beyond the schema. The baseline score of 3 is appropriate as the schema already provides adequate documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Send registration emails to survey participants.' The verb 'send' and resource 'registration emails' are specific, and the tool is distinguished from sibling tools like limesurvey_invite_participants and limesurvey_remind_participants by focusing on 'registration' emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the required confirmation parameter and authentication approach, but does not explicitly state when to use this tool versus alternatives. It implies the use case for registration emails but lacks direct guidance on exclusions or comparisons to invite/remind tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_release_session_keyDisconnect from LimeSurveyA
Release the cached RemoteControl session.
Calls LimeSurvey RemoteControl method release_session_key. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present (readOnlyHint, destructiveHint, etc.) and the description adds context: it releases the session and uses the configured service account automatically. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the action and then providing technical details. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (simple disconnect action, one fully-documented parameter, and output schema present), the description is complete. It covers the action, authentication, and use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single parameter (response_format) is fully described in the schema. The description does not add any additional parameter information, which is acceptable for a parameter with complete schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool releases the cached RemoteControl session to disconnect from LimeSurvey. It specifies the underlying API method and distinguishes it from siblings like limesurvey_get_session_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used after finishing API calls to release the session. It provides clear context but does not explicitly exclude scenarios or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_remind_participantsRemind survey participantsA
Send reminder emails to selected or eligible participants. Requires confirm_send_email=true.
Calls LimeSurvey RemoteControl method remind_participants. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| token_ids | No | Participant row IDs, or false for eligible participants. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
| continue_on_error | No | Continue after individual email errors. | |
| maximum_reminders | No | Maximum reminders per participant. | |
| confirm_send_email | Yes | Required acknowledgement that email may be sent to participants. | |
| minimum_days_between | No | Minimum days since the previous reminder. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes side effect (sending emails), required confirmation, underlying method, and authentication. Annotations provide no contradiction; description adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, key requirement, and method/auth. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main behavioral aspects and critical parameter. Output schema exists, so return values are handled. Could mention what happens with no eligible participants, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal context (e.g., 'eligible participants' maps to token_ids: false), but largely repeats schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send reminder emails') and the target ('selected or eligible participants'). It distinguishes from sibling tools like invite or mail participants by specifying 'reminder' and 'eligible' participants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly requires confirm_send_email=true and clarifies authentication (do not provide session key). However, it does not explicitly contrast with alternatives like limesurvey_invite_participants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_set_group_propertiesSet group propertiesA
Update question-group properties.
Calls LimeSurvey RemoteControl method set_group_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Group property names mapped to new values. | |
| group_id | Yes | Numeric question-group ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so agent knows it's a write. Description adds RPC method and authentication context, but no additional behavioral traits beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, focused sentences. Each sentence serves a purpose: purpose, technical reference, authentication note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and annotations cover safety, description is fairly complete. Could mention prerequisites like group existence, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add any meaning beyond what the schema already provides for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update question-group properties' with a specific verb and resource. It distinguishes from siblings like get_group_properties (read) and delete_group (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides authentication usage guideline ('do not provide a session key'), but does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_set_language_propertiesSet language propertiesB
Update localized survey properties.
Calls LimeSurvey RemoteControl method set_language_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Localized property names mapped to new values. | |
| language | No | LimeSurvey language code; null uses the survey default. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds the method call and auth note but does not disclose other behavioral traits (e.g., error handling, idempotency, or effect on existing properties). Minimal added value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first sentence states the purpose, and the second provides the method call and authentication note. No unnecessary words, and information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although output schema and full param descriptions exist, the description lacks context on valid property names for the 'data' parameter and does not explain behavior when language is null. Given the complexity of the data parameter (nested object), this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the input schema (100% coverage). The description does not add any additional meaning or examples for parameters like 'data' or 'language'. Baseline score of 3 since schema already covers parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update localized survey properties' which specifies the verb (update) and resource (localized survey properties). It also mentions the underlying LimeSurvey RemoteControl method, distinguishing it from siblings like get_language_properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides authentication guidance ('do not provide a session key') but lacks explicit when-to-use or when-not-to-use instructions relative to sibling tools. It implies usage for updating localized properties but does not compare with alternatives like set_survey_properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_set_participant_propertiesSet participant propertiesA
Update a participant matched by token or token-table ID.
Calls LimeSurvey RemoteControl method set_participant_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Participant properties to update. | |
| query | Yes | Participant lookup properties. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it calls a specific LimeSurvey method and handles authentication, but does not disclose other behavioral traits (e.g., whether it can update multiple fields atomically).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the core purpose, and the second provides essential authentication guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be described. Parameters are well-covered in the schema. The description adequately explains participant matching and authentication, though it could briefly mention that data properties are flexible (reflected by openWorldHint).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description reinforces the query parameter's matching purpose but adds no additional semantic detail beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific verb ('update') and resource ('participant'), and clarifies matching by 'token or token-table ID'. This clearly distinguishes it from sibling tools like get_participant_properties (read) or add_participants (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage context: authentication uses the configured service account, and advises not to provide a session key. However, it does not explicitly state when to use this tool versus alternatives (e.g., for bulk updates via add_participants).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_set_question_propertiesSet question propertiesA
Update question properties.
Calls LimeSurvey RemoteControl method set_question_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Question property names mapped to new values. | |
| language | No | LimeSurvey language code; null uses the survey default. | |
| question_id | Yes | Numeric question ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read, non-destructive, non-idempotent operation. The description adds the authentication note but doesn't disclose other behavioral traits like required permissions or side effects beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences; the first states the purpose, the second provides crucial authentication guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete input schema and an output schema present (per context signals), the description covers purpose and authentication well. Minor gap: no mention of possible property restrictions, but not critical given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description doesn't need to add parameter details. The baseline of 3 is appropriate as the description adds no extra param semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update question properties' and references the specific LimeSurvey method. It distinguishes from the sibling 'limesurvey_get_question_properties' by implying a write operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit authentication guidance ('do not provide a session key'). While it doesn't explicitly list when to use vs. alternatives, the context of updating versus getting is clear from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_set_quota_propertiesSet quota propertiesA
Update quota properties.
Calls LimeSurvey RemoteControl method set_quota_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Quota properties to update. | |
| quota_id | Yes | Numeric quota ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds that it updates properties and clarifies authentication, but does not disclose potential side effects, error conditions, or behavior if quota_id is invalid. Beyond annotations, it adds moderate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences plus a note about authentication. Every sentence adds value, and the essential information is front-loaded. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (context indicates 'Has output schema: true'), the description does not need to detail return values. The description covers the core action, authentication, and the inputs are well-documented by the schema. Missing elements like examples or property name hints are minor given the schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 3 parameters. The description briefly mentions 'Quota properties to update' for the 'data' parameter, but this adds little beyond the schema. The description does not enhance understanding of the parameters beyond the provided schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update quota properties', using a specific verb (update) and resource (quota properties). It distinguishes itself from siblings like get_quota_properties, add_quota, delete_quota, and list_quotas with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions authentication method ('do not provide a session key') and the underlying API method, but does not explicitly state when to use this tool versus alternatives (e.g., when to update vs create or delete quotas). No exclusions or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_set_survey_propertiesSet survey propertiesB
Update editable survey properties.
Calls LimeSurvey RemoteControl method set_survey_properties. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Survey property names mapped to new values. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint=false, so mutation is expected. The description adds that authentication uses a configured service account, which is a useful behavioral detail not in annotations. However, it does not disclose other traits like whether changes are reversible or immediate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two clear sentences. The first states the purpose, the second adds an implementation detail and an authentication note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema and the input schema is well-documented, the description is mostly adequate. However, the openWorldHint=true suggests that the data object can contain arbitrary properties, but the description does not clarify what valid survey properties are or how to discover them, which could lead to incorrect usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes the parameters. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Update editable survey properties.' It uses a specific verb and resource, and the sibling tools include 'limesurvey_get_survey_properties', so it differentiates the update from the get operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives like set_group_properties or set_question_properties. The only usage note is about authentication, which is helpful but does not help with tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_update_responseUpdate survey responseA
Update a response; include its response ID in the data.
Calls LimeSurvey RemoteControl method update_response. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| response | Yes | Response fields, including the response ID, mapped to new values. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that it calls a specific LimeSurvey method and provides authentication instructions (use configured service account, no session key). However, annotations already indicate it's a write operation (readOnlyHint false, destructiveHint false), so the added behavioral context is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose. The second sentence provides implementation and authentication context, which is relevant but slightly ancillary. Very efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested object parameter, 3 parameters, output schema exists), the description covers the basics but omits behavior details like response format, success/failure indicators, or how partial updates work. The schema provides parameter details but the description could add more context for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the response parameter as including the response ID (schema description: 'Response fields, including the response ID'). The description repeats this without adding further semantic value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Update a response' with the verb 'update' and specifies the resource (response). It distinguishes from sibling tools like limesurvey_add_response and limesurvey_delete_response by using 'update' and mentioning the required response ID, which implies modification of an existing entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to update an existing response, by including its ID) but does not explicitly state when not to use or provide alternatives. No comparison with add or delete tools is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_upload_fileUpload response fileA
Upload a base64-encoded file for a file-upload question.
Calls LimeSurvey RemoteControl method upload_file. Authentication uses the configured service account; do not provide a session key.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Original file name. | |
| survey_id | Yes | Numeric LimeSurvey survey ID. | |
| field_name | Yes | Survey response field name. | |
| file_content | Yes | Base64-encoded file contents. | |
| response_format | No | Output format. JSON preserves the complete structured result; Markdown is optimized for reading. | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| result | Yes | |
| truncated | No | |
| truncation_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint false, idempotent false). Description adds authentication context but no further behavioral details beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All required parameters are described, an output schema exists, and the description covers the method and authentication; nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal extra meaning beyond reinforcing 'base64-encoded' for file_content. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool uploads a base64-encoded file for a file-upload question, with a specific verb and resource. It is distinct from sibling tools like limesurvey_get_uploaded_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for file uploads but lacks explicit guidance on when to use this tool versus alternatives, such as prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limesurvey_validate_survey_themeValidate a generated LimeSurvey survey themeARead-onlyIdempotent
Validate a ZIP inside LIMESURVEY_THEME_DIR for manifest, licensing, archive paths, safe assets, responsive CSS, and LimeSurvey 6/7 compatibility.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, non-destructive behavior, and the description adds specific checks (e.g., 'manifest, licensing, archive paths, safe assets, responsive CSS, LimeSurvey 6/7 compatibility'). This provides behavioral context beyond annotations, though it could mention return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main action. It lists multiple checks, making it slightly lengthy but still efficient. No redundant phrasing is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one required parameter and an output schema (assumed), the description covers the validation scope but omits prerequisites (e.g., theme must be generated) and error conditions. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must explain the parameter. However, it only says 'Validate a ZIP inside LIMESURVEY_THEME_DIR' without linking to the 'file_name' parameter or specifying format requirements. The schema indicates a string with minLength 5, but the description adds no further meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Validate' and identifies the resource as 'a ZIP inside LIMESURVEY_THEME_DIR'. It lists exactly what is checked (manifest, licensing, etc.), clearly distinguishing it from sibling tools like limesurvey_generate_survey_theme and limesurvey_assign_survey_theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used after generating a theme and before assigning it, but it does not explicitly state when to use it or provide alternatives. There is no mention of when not to use it, such as if the theme is not generated yet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Many tools have overlapping purposes (e.g., multiple add/list/export for participants and responses). limesurvey_add_participants vs limesurvey_add_participant, and several export_responses variants are easily confused even with descriptions.
Most tools follow a consistent limesurvey_verb_noun pattern. Minor deviations like limesurvey_cpd_importParticipants (mixed case) and find_surveys vs list_surveys reduce consistency slightly.
71 tools is far beyond the typical 3-15 range. Even for a comprehensive survey system, this volume is excessive and will overwhelm agents, causing selection difficulty.
Covers survey, group, question, participant, response, quota, theme, and settings lifecycle thoroughly. Minor gaps exist (e.g., no update for some objects via dedicated tools, but set_properties covers many) and some tools are experimental or hacky.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for managing FormDesigner forms, fields, logic rules, themes, and entries
MCP server for lacita - appointment management software
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
An MCP server that automatically collects feedback on your MCP server.
Related MCP Servers
- AlicenseBqualityDmaintenanceA simple server that enables management of LimeSurvey surveys and responses through MCP client integration.355Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables interaction with LimeSurvey API to create and manage surveys, questions, question groups, activate surveys, and export responses through standardized MCP endpoints.
- AlicenseNot gradedqualityFmaintenanceAn MCP server that provides 36 tools for interacting with the amoCRM (Kommo) API v4, covering leads, contacts, companies, and tasks. It supports full entity lifecycles, account analytics, and bulk operations with integrated OAuth 2.0 and rate limiting.2MIT
- FlicenseNot gradedqualityDmaintenanceComprehensive MCP server for the Mautic marketing automation API, providing 203 tools for managing contacts, campaigns, emails, segments, and more.2
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