MCP server that exposes the Qvasa user-access agentic API to Claude.
Project description
qvasa-mcp
MCP server that exposes the Qvasa user-access agentic API to Claude.
This is a thin proxy: Claude sends MCP tool calls over stdio, the server translates each call into one or more HTTP requests against the Qvasa Rails app, and returns the result. It owns session lifecycle (login, refresh on 401 SessionStale, two-token auth) so Claude doesn't have to.
Rails counterpart: one_qvasa_app repo, namespace /user_access/api/*. The toolkit version constant lives at app/services/user_access/api/toolkit_version.rb.
Configuration
Set these env vars (Claude Desktop injects them from the .mcpb config block on install):
| var | required | default | purpose |
|---|---|---|---|
QVASA_API_KEY |
yes | — | A user-access token (UAT). Generate at /user_settings/user_access_tokens in the Qvasa UI. Format qva_uat_…. |
QVASA_API_BASE_URL |
no | https://qvasa.com |
Override for staging or local dev (e.g. http://localhost:3000). |
Local dev
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
export QVASA_API_KEY=qva_uat_…
export QVASA_API_BASE_URL=http://localhost:3000
# Run the server (it will read MCP requests on stdin, write responses on stdout).
qvasa-mcp
# Run the tests.
pytest
Tool list (17 total)
Orientation
qvasa_overview— call this FIRST. Returns positioning, intent triggers, intent-keyed workflows, a feedback guide, and the cached session manifest. One call per session; no HTTP round-trip after the first.qvasa_submit_feedback— frictionless channel for filing bug reports, feature requests, friction points, unexpected_behavior notes, and impossibility reports back to Qvasa engineering.qvasa_search_saved_widgets— search the user's personal-dashboard saved queries (the agent's memory layer). Call BEFORE rebuilding a metric from scratch.
Discovery — widgets (unified: search by phrase, browse a group, or list all groups)
qvasa_search_widgets— passqueryto search (strict → fuzzy fallback),group_nameto browse a group, or neither for the groups manifest.qvasa_describe_widget— bulk schema fetch (widget_type, component_configurations, inspect block).
Discovery — filters (unified: same shape as widgets)
qvasa_search_filters— passqueryto search (strict → fuzzy fallback),group_nameto browse a group, or neither for the groups manifest.qvasa_describe_filter— bulk schema fetch.
Filter values & date range
qvasa_search_filter_values— value/parent-record search across 19 filter kinds.qvasa_search_values_across_attributes— reverse-lookup a value across static attributes.qvasa_resolve_date_range— unified date-range tool. Passphrasefor natural-language resolution (e.g. 'yesterday', 'last 7 days') orstrategyfor explicit construction.qvasa_search_component_configuration_values— value lookup for widget component_configuration_* fields (9 endpoints).
Metric execution
qvasa_query_metric— kickoff + block-until-done across all 5 chart types (quick_stat, basic_chart, donut_chart, multi_data_chart, heat_map)qvasa_inspect_metric— same pattern but materialises a TicketSet (quick_stat / basic_chart / donut_chart only)qvasa_list_in_flight— show queued/processing metric requestsqvasa_cancel_metric— cancel an enqueued request
Ticket sets (drill-down on inspect results)
qvasa_describe_ticket_set— show set metadata + tools_availableqvasa_get_ticket_set_summaries— paginated AI ticket summaries
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qvasa_mcp-0.1.0.tar.gz.
File metadata
- Download URL: qvasa_mcp-0.1.0.tar.gz
- Upload date:
- Size: 28.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3748992436903b31a29ce8f02bbd49d3b0c0b5e4a4c69afada97178291bd00a9
|
|
| MD5 |
121fe6e487c499141a4bd1b1d649d8cc
|
|
| BLAKE2b-256 |
865e19b66e313f9b148575abac49a154ba53d5a982a473378498500decdf9f2b
|
File details
Details for the file qvasa_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: qvasa_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cee129ff7c09afe846efa485f749b4d2baf447ce9e6b8b4c05cec834e0a1a69
|
|
| MD5 |
eec74602e3bb703f0841b1484928f8e4
|
|
| BLAKE2b-256 |
4ccbde84f1b0b5a3b62c2def6d0f3d4ded1406dfe4b3b7280ca1b2060c46d726
|