{"name":"io.github.rmterenzi/qseow-mcp","slug":"rmterenzi-qseow-mcp","title":null,"description":"Agent tools for Qlik Sense Enterprise on Windows: troubleshoot, govern, query and build.","url":"https://mcp.market/server/rmterenzi-qseow-mcp","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":28,"stars":8,"forks":1,"downloads_week":55,"last_push_at":"2026-08-12T12:16:36.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/rmterenzi/qseow-mcp","website":null,"version":"0.5.2","remotes":[],"packages":[{"registryType":"npm","identifier":"qseow-mcp","version":"0.5.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Hostname of the Qlik Sense node, no scheme (e.g. sense.example.com).","isRequired":true,"format":"string","name":"QSEOW_HOST"},{"description":"'certificate' (service identity via QMC-exported certs) or 'jwt' (per-user, through a JWT virtual proxy). Defaults to certificate.","format":"string","default":"certificate","name":"QSEOW_AUTH_MODE"},{"description":"Path to the QMC-exported client certificate (PEM). Required in certificate mode; also enables the Proxy-API session tools in jwt mode.","format":"filepath","name":"QSEOW_CERT_PATH"},{"description":"Path to the client certificate private key (PEM).","format":"filepath","name":"QSEOW_CERT_KEY_PATH"},{"description":"Path to the Qlik root CA (PEM). Supply it to keep TLS verification on.","format":"filepath","name":"QSEOW_ROOT_CERT_PATH"},{"description":"Signed JWT for the virtual proxy (jwt mode only).","format":"string","isSecret":true,"name":"QSEOW_JWT"},{"description":"Virtual proxy prefix for jwt mode, e.g. 'jwt'.","format":"string","default":"jwt","name":"QSEOW_VP_PREFIX"},{"description":"Set true to register write tools. Default false: mutating tools are never registered, so the tool list is genuinely read-only.","format":"string","default":"false","name":"QSEOW_ALLOW_MUTATIONS"},{"description":"Comma-separated personas to expose: analyst, developer, admin.","format":"string","default":"analyst,developer,admin","name":"QSEOW_TOOL_GROUPS"},{"description":"Set false only for self-signed lab certificates. Leave on in production.","format":"string","default":"true","name":"QSEOW_TLS_VERIFY"}]}],"tools":[{"name":"add_sheet_object","description":"Add a visualization to a sheet and IMMEDIATELY run the render-validation gate on it — creation and","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_script","description":"Syntax-check an app's current load script. Returns [] when clean.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clear_selections","description":"Clear selections in one field or all fields.","write_action":false,"price_micros":0,"input_schema":null},{"name":"copy_app","description":"Copy an app in the repository under a new name. MUTATION (additive).","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_app","description":"Create a new app, optionally set its script and reload it. Returns the new app id. MUTATION (additive).","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_hypercube","description":"Build a hypercube (group-by query) over an app: dimensions + measure expressions, returns tabular data honoring current selections. The core analyst query tool.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_sheet","description":"Create an empty sheet in an app. Returns the sheet id. MUTATION (additive).","write_action":true,"price_micros":0,"input_schema":null},{"name":"crosscheck_expression","description":"Adversarial self-check for a numeric answer: evaluates the expression as a single total AND as a","write_action":false,"price_micros":0,"input_schema":null},{"name":"delete_app","description":"Delete an app from the repository by id. MUTATION: irreversible — the app and its data are removed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"end_user_sessions","description":"Log a user out of a virtual proxy by deleting ALL their proxy sessions there. MUTATION: the user's","write_action":false,"price_micros":0,"input_schema":null},{"name":"engine_healthcheck","description":"Engine health: version, saturated flag, memory, CPU, active/loaded app counts, session and user counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"evaluate_expression","description":"Evaluate a Qlik expression against an app in the current selection state, e.g. \"Sum(Sales)\" or \"Count(distinct Customer)\". The response carries a trust envelope: expression validation warnings (a misspelled field returns null/0 WITHOUT erroring) and the active selections the value was computed under.","write_action":false,"price_micros":0,"input_schema":null},{"name":"evaluate_master_measure","description":"Evaluate a master measure by id or title in the current selection state. Fetches the measure's expression and evaluates it — the KPI -> value step of a trace. (Referencing a master measure as [Name] in a raw expression resolves to a FIELD, not the measure — this tool exists so you never hit that trap.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_app_data_model","description":"Tables and fields of an app's data model — the map an analyst needs before querying.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_app_lineage","description":"Data lineage of an app's load script as the engine sees it: every LOAD/STORE source and target (files, QVDs, databases, resident, inline, binary). The app -> source step of a trace. NOTE: on a PUBLISHED app the engine denies lineage to user identities (certificate/internal identities bypass this) — copy_app the target and read the copy's lineage.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_current_selections","description":"Current selection state across all fields in the session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_field_values","description":"List distinct values of a field with selection state (S=selected, O=optional, X=excluded). Optional search term.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_object_properties","description":"Full property tree (qProps) of any object — the definition layer: measures, dimensions, expressions, extension config. The object -> definition step of a KPI trace.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_reload_log","description":"Why did a reload fail? Last execution result of a reload task (status, timing, execution detail timeline)","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_script","description":"Get an app's load script. Embedded credentials (inline connection strings, secret-bearing variables) are redacted — scripts with masked values cannot be round-tripped through set_script.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sheet_objects","description":"List the visualization objects on a sheet: id, type, visualization, and title. The sheet -> object step of a KPI trace.","write_action":false,"price_micros":0,"input_schema":null},{"name":"license_summary","description":"License overview: serial, edition, expiry, and professional/analyzer access allocations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_apps","description":"List apps in the repository with owner, stream, size, and reload time. Optional QRS filter, e.g. \"name sw 'Sales'\" or \"stream.name eq 'Everyone'\". Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_data_connections","description":"List data connections. Credentials are redacted, including secrets embedded in connection strings. Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_engine_apps","description":"List apps visible to the current engine session (id, name, last reload). Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_extensions","description":"List installed visualization extensions. Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_master_dimensions","description":"List the app's master dimensions: id, title, field definitions. Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_master_measures","description":"List the app's master measures: id, title, label, expression. Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_sheets","description":"List an app's sheets with id, title, and published state. The entry point for walking an app's UI layer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_streams","description":"List streams (publish targets) with owner. Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tasks","description":"List reload tasks with enabled state and last execution result. Optional QRS filter. Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_user_sessions","description":"Active proxy sessions for a user on a virtual proxy (default: the default proxy). Certificate-backed","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_users","description":"List users known to the repository. Optional QRS filter, e.g. \"userId eq 'qservice'\". Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"publish_app","description":"Publish an app to a stream by stream name. MUTATION: changes app visibility site-wide.","write_action":true,"price_micros":0,"input_schema":null},{"name":"qrs_about","description":"Qlik Sense server version and build info from the Repository Service. Cheap health check.","write_action":false,"price_micros":0,"input_schema":null},{"name":"qrs_search","description":"Generic QRS entity search: any entity type (app, user, stream, reloadtask, dataconnection, extension, tag, customproperty, systemrule, ...) with an optional QRS filter expression. The governance power tool. Credential-bearing fields are redacted on every entity type. Paged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"reload_app","description":"Reload an app in the engine session and save. Returns success flag and the tail of the reload progress log. MUTATION: replaces the app's data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_expressions","description":"Find where an expression fragment, field, or KPI term is used across an ENTIRE app: every object's properties (with owning sheet), master measures/dimensions, variables, and the load script. The 'where does this number come from' tool. NOTE: on a PUBLISHED app the engine hides the load script from user identities, so script matches only appear for unpublished apps you own — copy_app the target and","write_action":false,"price_micros":0,"input_schema":null},{"name":"security_rule_audit","description":"Audit the site's security rules: every Security-category system rule with decoded actions, plus lint","write_action":false,"price_micros":0,"input_schema":null},{"name":"select_field_values","description":"Select values in a field (session-scoped; affects subsequent hypercubes/expressions in this MCP session). Numeric values are matched numerically — pass numbers as numbers (or numeric strings; both work). Returns the resulting selected count so a silently-widened or missed selection is visible.","write_action":false,"price_micros":0,"input_schema":null},{"name":"service_status","description":"Health of all Qlik services on every node (repository, proxy, engine, scheduler, printing).","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_script","description":"Replace an app's load script and save. MUTATION: overwrites the existing script.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_task","description":"Start a reload task by id (fire-and-forget; poll list_tasks for status). MUTATION: the task's reload replaces app data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_sheet","description":"Quality gate for the UI layer: validate that a sheet's objects (or one object) will actually render —","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-11-04T06:33:27.169Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-04T06:33:27.096Z","components":{"code":{"score":25,"max":25,"notes":["14 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 84 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"qseow-mcp","version":"0.5.2","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-08-12T12:28:07.930Z","repositoryUrl":"git+https://github.com/rmterenzi/qseow-mcp.git","weeklyDownloads":55}],"repo":{"found":true,"owner":"rmterenzi","repo":"qseow-mcp","archived":false,"pushedAt":"2026-08-12T12:16:36Z","stars":8,"forks":1,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/19998953?v=4","ownerCreatedAt":"2016-06-17T17:01:28Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/19998953?v=4&s=128","source":"registry"},"presence":{"stars":8,"forks":1,"downloadsWeek":55,"license":"Apache-2.0","lastPushAt":"2026-08-12T12:16:36.000Z","score":28}}}},"grade_history":[],"reviews":[]}