Skip to content

Installation

Ryan James edited this page Aug 17, 2026 · 1 revision

The server is a Python package published to PyPI as dataverse-mcp. It speaks stdio only and takes no command-line flags — everything is configured through environment variables (Configuration).

You do not normally run it by hand. Your MCP client launches it as a subprocess; see Client-Setup.

Prerequisites

Python 3.10 or later
Sign-in A browser on the same machine (interactive), or Azure CLI installed and signed in (azure_cli) — see Authentication
Dataverse An account with a Dataverse user record in the target environment

uvx (recommended)

uv provides uvx, which downloads and runs the package in a throwaway isolated environment — nothing to create, activate or upgrade.

pip install uv
uvx dataverse-mcp

Point your client at command: "uvx", args: ["dataverse-mcp"].

Use 3.8.0 or later. Releases up to and including 3.7.0 require MCP Python SDK 1.x. uvx ignores lockfiles and resolves the latest SDK, so an older release installed today fails at import with ModuleNotFoundError: No module named 'mcp.server.fastmcp'. The current package requires mcp[cli]>=2.0.0,<3.0.0.

pipx

Installs the dataverse-mcp console script onto your PATH.

pipx install dataverse-mcp
dataverse-mcp

Use command: "dataverse-mcp", args: [] in your client config. Upgrade with pipx upgrade dataverse-mcp.

Local checkout (development)

git clone https://github.com/ryanmichaeljames/dataverse-mcp.git
cd dataverse-mcp
uv sync

This creates .venv. There is no build step — code changes are picked up on the next server start, so restart the server in your client after editing. Launch it as python -m dataverse_mcp.server with PYTHONPATH set to the checkout's src directory; see the local-checkout block in Client-Setup.

Useful during development:

uv run mcp dev src/dataverse_mcp/server.py   # MCP inspector
uv run python -m dataverse_mcp.server        # run directly
uv run pytest                                # unit tests

Verify it starts

Run the server with stdin closed. It initialises, finds no input, and shuts down cleanly — the startup lines go to stderr (stdout is reserved for the stdio protocol).

uvx dataverse-mcp < /dev/null        # macOS / Linux / Git Bash
"" | uvx dataverse-mcp               # PowerShell

Expected output, in order:

... - dataverse_mcp._app - INFO - DATAVERSE_TOOLS active categories: all
... - dataverse_mcp.client - WARNING - DATAVERSE_WHITELIST is not set; ...
... - dataverse_mcp.client - INFO - Initializing Dataverse credential (auth: interactive)
... - dataverse_mcp.client - INFO - Using InteractiveBrowserCredential for authentication
... - dataverse_mcp.client - INFO - Dataverse credential and HTTP client initialized
... - dataverse_mcp.client - INFO - Shutting down Dataverse MCP server

No browser opens: the credential is only constructed at startup, not used. The first token — and the first sign-in prompt — happens on the first tool call.

The whitelist warning is expected until you set DATAVERSE_WHITELIST (Safety-and-Permissions).

Next: Client-Setup, then First-Steps.

Clone this wiki locally