Skip to main content

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 — pass query to search (strict → fuzzy fallback), group_name to 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 — pass query to search (strict → fuzzy fallback), group_name to 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. Pass phrase for natural-language resolution (e.g. 'yesterday', 'last 7 days') or strategy for 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 requests
  • qvasa_cancel_metric — cancel an enqueued request

Ticket sets (drill-down on inspect results)

  • qvasa_describe_ticket_set — show set metadata + tools_available
  • qvasa_get_ticket_set_summaries — paginated AI ticket summaries

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qvasa_mcp-0.1.0.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qvasa_mcp-0.1.0-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

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

Hashes for qvasa_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3748992436903b31a29ce8f02bbd49d3b0c0b5e4a4c69afada97178291bd00a9
MD5 121fe6e487c499141a4bd1b1d649d8cc
BLAKE2b-256 865e19b66e313f9b148575abac49a154ba53d5a982a473378498500decdf9f2b

See more details on using hashes here.

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

Hashes for qvasa_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cee129ff7c09afe846efa485f749b4d2baf447ce9e6b8b4c05cec834e0a1a69
MD5 eec74602e3bb703f0841b1484928f8e4
BLAKE2b-256 4ccbde84f1b0b5a3b62c2def6d0f3d4ded1406dfe4b3b7280ca1b2060c46d726

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page