Skip to main content

An MCP server for interacting with Microsoft Dataverse environments during development

Project description

Dataverse MCP Server

PyPI Python License: MIT

An MCP server that gives AI agents structured access to Microsoft Dataverse — query records, inspect metadata, manage schema, manage model-driven app forms, views, and apps, administer security roles, teams, and users, manage plug-in trace logging, and explore Power Platform environments.

Built with FastMCP, httpx, and the Dataverse OData v4.0 Web API. Communicates over stdio and works with Claude, GitHub Copilot, and any MCP-compatible client.


Quick Start

1. Install uv

pip install uv

2. Configure — add to your MCP client config:

Claude (claude_desktop_config.json or .claude/settings.json):

{
  "mcpServers": {
    "dataverse-mcp": {
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive"
      }
    }
  }
}

GitHub Copilot (.vscode/mcp.json):

{
  "servers": {
    "dataverse-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive"
      }
    }
  }
}

3. Sign in

On first use the server opens a browser for interactive sign-in. The session is cached and reused across restarts (see DATAVERSE_TOKEN_CACHE_PERSIST), so you are not prompted again while the token is valid.

That's it. Your AI agent can now query your Dataverse environments.

Prefer your existing Azure CLI session instead? Set DATAVERSE_AUTH_TYPE to azure_cli and run az login.


Installation

Install uv

uvx is provided by uv. Install it first if you don't have it:

pip install uv

Run from PyPI (recommended)

uvx dataverse-mcp

uvx downloads and runs the package in an isolated environment — no virtual environment management required.

Run from a local checkout

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

This creates .venv. Use the local source MCP config shown in Client Setup to point your client at it. No build step required — code changes are picked up on the next server start.


Configuration

Set these in the env block of your MCP server entry. This project does not use a .env file.

Variable Default Description
DATAVERSE_AUTH_TYPE interactive Authentication method: interactive (recommended) or azure_cli
DATAVERSE_ALLOW_WRITE false Set to true to register create, update, associate, merge, and schema mutation tools
DATAVERSE_ALLOW_DELETE false Set to true to register delete and disassociate tools
DATAVERSE_TOOLS Comma-separated list of tool categories to register (e.g., core,schema,security). When unset or empty, all categories register. core is always registered regardless. Unknown category names are logged as warnings and ignored. See Tool categories below.
DATAVERSE_WHITELIST Comma-separated list of allowed environment hostnames (e.g., yourorg.crm.dynamics.com,yourorg-uat.crm.dynamics.com). When set, tool calls to any environment not on the list are rejected. When empty, all environments are permitted — see the warning below
DATAVERSE_AUTH_TIMEOUT_SECONDS 30 Maximum seconds to wait for a credential acquisition (e.g., az login token fetch) before failing with an actionable auth error. Increase when operating in slow-network or MFA-heavy environments. Invalid or non-positive values fall back to 30
DATAVERSE_TOKEN_CACHE_PERSIST true Controls whether interactive auth persists its MSAL token cache to disk so the server survives restarts without a new browser prompt (while a refresh token is valid). Set to false to disable and revert to in-memory-only behaviour. Invalid values fall back to true with a logged warning. Has no effect on azure_cli auth.
DATAVERSE_TOKEN_CACHE_ALLOW_UNENCRYPTED false When true, permits writing the MSAL token cache to disk without OS-level encryption. Only needed on headless Linux hosts that lack a Secret Service (e.g., GNOME Keyring / libsecret). Refresh tokens are long-lived credentials — only enable this on trusted, access-controlled hosts. A startup warning is logged when this flag is active. Invalid values fall back to false.
DATAVERSE_TOKEN_CACHE_PROFILE Optional name that isolates the interactive token cache and its AuthenticationRecord sidecar per profile. Set a distinct value in each session to run concurrent servers signed in to different tenants/accounts on the same host without them overwriting each other's cache. Must use only [A-Za-z0-9_-]; any other character fails fast at startup (silently sanitizing could collide two profiles and defeat isolation). Empty/unset uses the shared default filenames. Has no effect on azure_cli auth.

[!WARNING] Leaving DATAVERSE_WHITELIST unset is risky. Tools accept a dataverse_url per call, and the server mints a bearer token for whatever environment is supplied. Without a whitelist, a compromised or misbehaving agent can direct your credentials at any Dataverse environment. Set DATAVERSE_WHITELIST to the specific environment hostnames you intend to use so the server rejects everything else.

Authentication

Method Description
interactive (default, recommended) Opens a browser for interactive sign-in. Supports MFA and per-account isolation, and needs no separate CLI login. The session persists across server restarts (see DATAVERSE_TOKEN_CACHE_PERSIST): the first launch opens a browser; subsequent restarts reuse the cached refresh token silently while it remains valid.
azure_cli Uses your active az login session. Useful in CI or where a browser is unavailable and an Azure CLI session already exists. Requires the Azure CLI installed and signed in.

[!NOTE] Interactive auth persistence. When DATAVERSE_TOKEN_CACHE_PERSIST=true (the default), the MSAL token cache is stored on disk using your OS secret store (Windows DPAPI, macOS Keychain, Linux libsecret). On headless Linux without libsecret, the first token acquisition will fail fast with an error. Set DATAVERSE_TOKEN_CACHE_ALLOW_UNENCRYPTED=true to permit a plaintext cache on those hosts, and see the security warning for that variable above.

[!NOTE] Running multiple tenants/accounts at once. The default cache and sidecar filenames are shared per host, so two interactive sessions signed in to different tenants/accounts would overwrite each other's pinned account. Give each session a distinct DATAVERSE_TOKEN_CACHE_PROFILE (e.g., prod, dev) to keep their caches and AuthenticationRecord sidecars separate.

Example: two tenants side by side

Register two server entries, each with its own DATAVERSE_TOKEN_CACHE_PROFILE. The profile is a tenant-wide cache key — each entry signs in once (its own browser prompt) and then restarts silently as its own account, while tools still receive the specific dataverse_url per call. The profiles never collide.

Claude (claude_desktop_config.json or .claude/settings.json):

{
  "mcpServers": {
    "dataverse-prod": {
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive",
        "DATAVERSE_TOKEN_CACHE_PROFILE": "prod"
      }
    },
    "dataverse-dev": {
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive",
        "DATAVERSE_TOKEN_CACHE_PROFILE": "dev"
      }
    }
  }
}

GitHub Copilot (.vscode/mcp.json):

{
  "servers": {
    "dataverse-prod": {
      "type": "stdio",
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive",
        "DATAVERSE_TOKEN_CACHE_PROFILE": "prod"
      }
    },
    "dataverse-dev": {
      "type": "stdio",
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive",
        "DATAVERSE_TOKEN_CACHE_PROFILE": "dev"
      }
    }
  }
}

Each profile maps to one tenant/account sign-in; agents pass the target dataverse_url on each tool call. Omit DATAVERSE_TOKEN_CACHE_PROFILE (or leave it empty) for a single-tenant setup — the original shared cache filenames are used.

Safety Guards

Most write and delete tools are not registered by default, so they do not appear to the agent until explicitly enabled. One exception is dataverse_execute_batch, which is always visible but only allows GET requests unless DATAVERSE_ALLOW_WRITE=true. This prevents accidental mutations when you only need to read or inspect data while still allowing safe batch reads by default.

{
  "servers": {
    "dataverse-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive",
        "DATAVERSE_ALLOW_WRITE": "true",
        "DATAVERSE_ALLOW_DELETE": "true"
      }
    }
  }
}

Each flag is independent — set only DATAVERSE_ALLOW_WRITE=true to allow creates and updates while keeping deletes disabled.

Reliability and Limits

These behaviors are built in and need no configuration:

  • Automatic retries — requests throttled by Dataverse service-protection limits or hitting transient gateway errors are retried automatically; read-only requests are also retried on timeouts and connection failures.
  • Response size cap — responses larger than 5 MB are replaced with an error asking the agent to narrow the query with select, top, or filter.
  • Consistent errors — every tool returns JSON; failures have the shape {"error": true, "message": "..."} with the Dataverse error code included and the message capped in length.
  • Server-side paging — list tools request right-sized pages from Dataverse instead of full 5,000-record pages.

Client Setup

Claude

Claude Desktop

Add to claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dataverse-mcp": {
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive"
      }
    }
  }
}

Claude Code

Add via the CLI:

claude mcp add dataverse-mcp --env DATAVERSE_AUTH_TYPE=interactive uvx dataverse-mcp

Or add directly to .claude/settings.json (project) or ~/.claude/settings.json (user):

{
  "mcpServers": {
    "dataverse-mcp": {
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive"
      }
    }
  }
}

Run from a local checkout

{
  "mcpServers": {
    "dataverse-mcp-local": {
      "command": "C:\\path\\to\\dataverse-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "dataverse_mcp.server"],
      "env": {
        "PYTHONPATH": "C:\\path\\to\\dataverse-mcp\\src",
        "DATAVERSE_AUTH_TYPE": "interactive"
      }
    }
  }
}

GitHub Copilot

Add to .vscode/mcp.json in your project root.

Run from PyPI

{
  "servers": {
    "dataverse-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["dataverse-mcp"],
      "env": {
        "DATAVERSE_AUTH_TYPE": "interactive"
      }
    }
  }
}

Run from a local checkout

{
  "servers": {
    "dataverse-mcp-local": {
      "type": "stdio",
      "command": "C:\\path\\to\\dataverse-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "dataverse_mcp.server"],
      "env": {
        "PYTHONPATH": "C:\\path\\to\\dataverse-mcp\\src",
        "DATAVERSE_AUTH_TYPE": "interactive"
      }
    }
  }
}

Multi-environment targeting

A single server instance can target any Dataverse org — pass dataverse_url on each tool call:

{
  "dataverse_url": "https://yourorg.crm.dynamics.com",
  "entity_set_name": "accounts",
  "select": ["name", "accountid"],
  "top": 10
}

dataverse_url is required on every tool call. Use dataverse_list_environments to discover available environments if you do not yet know the URL.


Tools

157 tools grouped by domain below. Every tool returns JSON and requires dataverse_url on each call.

The Gate column shows when a tool is registered:

Gate Meaning
default Always registered (reads and safe queries).
write Registered only when DATAVERSE_ALLOW_WRITE=true.
delete Registered only when DATAVERSE_ALLOW_DELETE=true.

dataverse_execute_batch is default but rejects non-GET operations unless DATAVERSE_ALLOW_WRITE=true.

Tool categories

Use DATAVERSE_TOOLS to register only the tool categories your agent needs. This shrinks the visible tool list and reduces token overhead.

Category Tools Description
core 17 Environment introspection + all record CRUD (always registered)
schema 29 Table/column/relationship/choice metadata
solutions 17 Solution and publisher management, solution components, history, import/export ALM
flows 5 Cloud flow listing and enable/disable
forms 6 Model-driven form management
views 7 Saved query / view management
apps 10 Canvas and model-driven app management
connections 5 Connection reference management
variables 8 Environment variable definitions and values
plugins 33 Plugin assemblies, types, steps, step images, packages, trace logs
security 12 Security roles, teams, users, business units
jobs 3 Async operation (system job) monitoring and cancellation
webresources 5 Web resource (JS/HTML/CSS/image) CRUD — gated, not always-on

core is always registered even when not listed. When DATAVERSE_TOOLS is unset or empty, all categories register (current default behaviour). Category gating composes with DATAVERSE_ALLOW_WRITE and DATAVERSE_ALLOW_DELETE: a tool registers only when its category is enabled AND its write/delete flag (if any) is set.

Environment & identity

Tool Gate Description
dataverse_list_environments default List Power Platform environments accessible to the caller
dataverse_whoami default Return the caller's UserId, BusinessUnitId, OrganizationId
dataverse_get_entity_sets default List OData EntitySet names from the service document
dataverse_retrieve_user_privileges default List security privileges assigned to a user
dataverse_retrieve_principal_access default Check a user's access rights to a specific record

Security administration

Tool Gate Description
dataverse_list_security_roles default List security roles, optional filter and pagination
dataverse_get_security_role default Get one security role by GUID
dataverse_list_teams default List teams, optional filter and pagination
dataverse_get_team default Get one team by GUID
dataverse_list_users default List system users, optional filter and pagination
dataverse_get_user default Get one system user by GUID
dataverse_list_business_units default List business units, optional filter and pagination
dataverse_assign_security_role write Assign a security role to a user or team
dataverse_remove_security_role write Remove a security role from a user or team
dataverse_add_team_members write Add one or more users to a team
dataverse_remove_team_members write Remove one or more users from a team
dataverse_set_user_state write Enable or disable a system user (isdisabled)

Async jobs

Tool Gate Description
dataverse_list_async_operations default List system jobs (asyncoperations), optional filter by statecode/statuscode/operationtype
dataverse_get_async_operation default Get one system job by GUID
dataverse_cancel_async_operation write Cancel a running or waiting system job (PATCH statecode=3/statuscode=32)

Web resources

Tool Gate Description
dataverse_list_web_resources default List web resources; optional filter by type and/or name substring
dataverse_get_web_resource default Get one web resource by GUID; include_content=true adds the base64 content field
dataverse_create_web_resource write Create a web resource (name, type, base64 content); call dataverse_publish_customizations afterward
dataverse_update_web_resource write PATCH content, display name, or description; call dataverse_publish_customizations afterward
dataverse_delete_web_resource delete Permanently delete an unmanaged web resource by GUID

Records & data

Tool Gate Description
dataverse_query_table default Query records with filter, select, orderby, expand, top
dataverse_execute_fetchxml default Execute a FetchXML query (joins, aggregation, paging cookie)
dataverse_get_record default Get one record by entity set name and GUID
dataverse_count_records default Count rows in a table, optional filter
dataverse_aggregate_table default Aggregate (sum, avg, min, max, countdistinct) with optional grouping
dataverse_execute_batch default Run up to 1,000 OData operations in one $batch (GET-only unless write enabled)
dataverse_create_record write Create a record and return its new GUID
dataverse_update_record write Partially update a record (PATCH)
dataverse_associate_records write Associate two records via a collection-valued navigation property
dataverse_merge_records write Merge a subordinate record into a target (account, contact, lead, incident)
dataverse_delete_record delete Permanently delete a record
dataverse_disassociate_records delete Remove an association between two records

Tables & columns

Tool Gate Description
dataverse_list_tables default List tables, optional metadata filter
dataverse_get_table_metadata default Get full schema details for a table
dataverse_list_columns default List columns for a table, optional type filter
dataverse_get_column default Get full metadata for one column, including type-specific properties
dataverse_create_table write Create a custom table (ownership type, primary name attribute)
dataverse_update_table write Update a table's display name or description
dataverse_create_column write Add a typed column to a table
dataverse_update_column write Replace a column via full PUT (fetch with dataverse_get_column first)
dataverse_publish_customizations write Publish schema changes via PublishXml (targeted) or PublishAllXml
dataverse_delete_table delete Permanently delete a custom table and all its data
dataverse_delete_column delete Permanently delete a custom column and all its data

Relationships

Tool Gate Description
dataverse_list_relationships default List relationships for a table or the whole environment
dataverse_get_relationship default Get full metadata for one relationship by schema name
dataverse_check_relationship_eligibility default Check whether a table can participate in a relationship
dataverse_create_one_to_many_relationship write Create a 1:N relationship and its lookup column
dataverse_create_many_to_many_relationship write Create an N:N relationship and its intersect table
dataverse_create_multi_table_lookup write Create a polymorphic lookup referencing multiple tables
dataverse_update_relationship write Replace a relationship via full PUT (fetch with dataverse_get_relationship first)
dataverse_delete_relationship delete Delete a custom relationship by MetadataId

Choices (option sets)

Tool Gate Description
dataverse_list_choices default List global choices (option sets)
dataverse_get_choice default Get a global choice and its options by name or MetadataId
dataverse_list_choice_column_options default Get options for a Picklist or MultiSelectPicklist column
dataverse_create_choice write Create a global choice with initial options
dataverse_update_choice write Replace a global choice via full PUT (fetch with dataverse_get_choice first)
dataverse_add_choice_option write Add an option to a global or local choice
dataverse_update_choice_option write Update the display label of an option
dataverse_reorder_choice_options write Reorder all options in a choice
dataverse_delete_choice delete Delete a global choice by logical name
dataverse_delete_choice_option delete Remove one option from a global or local choice

Solutions & publishers

Tool Gate Description
dataverse_list_solutions default List solutions, optional filter and pagination
dataverse_get_solution default Get a solution by unique name or GUID
dataverse_list_solution_components default List components in a solution, optional type filter
dataverse_get_solution_history default Get one solution history record (import/upgrade/export operation) by GUID
dataverse_list_solution_histories default List solution history records, optional filter by solution GUID or unique name
dataverse_create_publisher write Create a publisher with customization prefixes
dataverse_update_publisher write Update publisher fields by GUID
dataverse_create_solution write Create a solution (publisher binding, version)
dataverse_update_solution write Update solution fields by GUID or unique name
dataverse_update_solution_version write Update only a solution's version
dataverse_add_component_to_solution write Add a component via AddSolutionComponent
dataverse_remove_component_from_solution delete Remove a component via RemoveSolutionComponent
dataverse_export_solution default Export a solution as a base64 zip; write to disk via output_path for large solutions (no org mutation — no write flag required)
dataverse_import_solution write Import a solution asynchronously via ImportSolutionAsync; supply zip as inline base64 (customization_file) or a local path (input_path); returns import_job_id to poll
dataverse_get_import_job default Get one importjob by GUID — returns progress, completedon, solutionname; add include_data=true for the result XML on failure
dataverse_list_import_jobs default List importjobs, optional filter by solution unique name, ordered by createdon desc
dataverse_clone_solution_as_patch write Clone a solution as a patch via bound CloneAsPatch action; resolves parent by GUID or unique name

Filesystem I/O note. dataverse_export_solution can write the decoded .zip to a local path when output_path is supplied. dataverse_import_solution can read a local .zip when input_path is supplied. Both paths are resolved on the machine running the MCP server. Use output_path / input_path for solutions larger than ~3 MB (the inline base64 threshold).

Cloud flows

Tool Gate Description
dataverse_get_cloud_flows default Query cloud flows, optionally scoped to a solution
dataverse_enable_cloud_flow write Enable one flow by workflow ID
dataverse_batch_enable_cloud_flows write Enable many flows in one $batch, per-item results
dataverse_disable_cloud_flow write Disable one flow by workflow ID
dataverse_batch_disable_cloud_flows write Disable many flows in one $batch, per-item results

Forms

Tool Gate Description
dataverse_list_forms default List forms for a table, optional form type filter
dataverse_get_form default Get a form's layout as a tabs → sections → controls tree
dataverse_validate_formxml default Validate FormXml against XSD; pass formxml for a dry-run
dataverse_set_formxml write Replace and publish a form's FormXml; returns formxml_backup for revert
dataverse_add_form_control write Add a column control to a form (auto-resolves classid)
dataverse_remove_form_control write Remove a column control by logical name

Views

Tool Gate Description
dataverse_list_views default List saved views (savedquery) for a table, optional query type filter
dataverse_get_view default Get a view's FetchXml, LayoutXml, and column list
dataverse_validate_view default Validate a view's FetchXml and LayoutXml
dataverse_create_view write Create a saved view with FetchXml and LayoutXml
dataverse_update_view write Update a view's FetchXml, LayoutXml, name, or description
dataverse_add_view_column write Add a column to a view's LayoutXml
dataverse_remove_view_column write Remove a column from a view's LayoutXml

Model-driven apps

Tool Gate Description
dataverse_list_apps default List apps; include_unpublished=true includes drafts
dataverse_get_app default Get an app's properties and components grouped by type
dataverse_validate_app default Validate an app via ValidateApp (surfaces missing sitemap, etc.)
dataverse_create_app write Create an app (sitemap, components, validation, publish)
dataverse_update_app write Update an app's name or description
dataverse_add_app_components write Add tables, forms, views, charts, or BPFs to an app
dataverse_remove_app_components write Remove components from an app
dataverse_set_app_sitemap write Create or replace an app's navigation sitemap
dataverse_publish_app write Publish an app to make it visible to users
dataverse_assign_app_role write Associate or disassociate a security role with an app

Connection references

Tool Gate Description
dataverse_list_connection_references default List connection references, optional connector/status/OData filters
dataverse_get_connection_reference default Get one by GUID or logical name
dataverse_create_connection_reference write Create one, optional connection and solution association
dataverse_update_connection_reference write Assign/clear connection, update fields, or associate with a solution
dataverse_delete_connection_reference delete Delete an unmanaged connection reference

Environment variables — definitions

Tool Gate Description
dataverse_get_environment_variables default List definitions with current values; optional solution filter or single-record name lookup (schema name / display name)
dataverse_create_environment_variable write Create a definition and optional initial value
dataverse_update_environment_variable write Update definition fields and/or upsert the current value
dataverse_delete_environment_variable delete Delete definition, value record, or both

Environment variables — values

Tool Gate Description
dataverse_get_environment_variable_values default Get value record(s) by value GUID, definition GUID, or definition name
dataverse_create_environment_variable_value write Create a value record bound to a definition (by GUID or name)
dataverse_update_environment_variable_value write PATCH an existing value record by value GUID, definition GUID, or definition name
dataverse_delete_environment_variable_value delete Delete a value record only (resets to default value) by value GUID, definition GUID, or definition name

Plug-in registration

Tool Gate Description
dataverse_list_plugin_assemblies default List registered plug-in assemblies
dataverse_get_plugin_assembly default Get one plug-in assembly
dataverse_list_plugin_packages default List NuGet plug-in packages
dataverse_get_plugin_package default Get one plug-in package
dataverse_list_plugin_types default List plug-in types (classes) in an assembly
dataverse_get_plugin_type default Get one plug-in type
dataverse_list_plugin_steps default List SDK message processing step registrations
dataverse_get_plugin_step default Get one processing step
dataverse_list_plugin_step_images default List pre/post entity images on a step
dataverse_get_plugin_step_image default Get one step image
dataverse_list_sdk_messages default List SDK messages (Create, Update, …) — reference
dataverse_get_sdk_message default Get one SDK message
dataverse_list_sdk_message_filters default List SDK message filters (message/entity combos) — reference
dataverse_get_sdk_message_filter default Get one SDK message filter
dataverse_create_plugin_assembly write Register a plug-in assembly
dataverse_update_plugin_assembly write Update a plug-in assembly
dataverse_create_plugin_package write Register a plug-in package
dataverse_update_plugin_package write Update a plug-in package
dataverse_create_plugin_type write Register a plug-in type
dataverse_update_plugin_type write Update a plug-in type
dataverse_create_plugin_step write Register an SDK message processing step
dataverse_update_plugin_step write Update a processing step
dataverse_create_plugin_step_image write Register a step image
dataverse_update_plugin_step_image write Update a step image
dataverse_delete_plugin_assembly delete Delete a plug-in assembly
dataverse_delete_plugin_package delete Delete a plug-in package
dataverse_delete_plugin_type delete Delete a plug-in type
dataverse_delete_plugin_step delete Delete a processing step
dataverse_delete_plugin_step_image delete Delete a step image

Plug-in tracing & statistics

Tool Gate Description
dataverse_list_plugin_type_statistics default Runtime performance stats (execution count, failure rate, crashes) per plug-in type
dataverse_get_plugin_trace_log_setting default Get org-wide trace log verbosity (off / exception / all)
dataverse_list_plugin_trace_logs default List trace logs with filters (class, message, entity, operation, errors-only, time window)
dataverse_set_plugin_trace_log_setting write Set org-wide trace log verbosity (off, exception, all)

Development

# Install dependencies
uv sync

# Run the MCP inspector (interactive testing)
uv run mcp dev src/dataverse_mcp/server.py

# Run the server directly
uv run python -m dataverse_mcp.server

# Compile check
uv run python -m py_compile src/dataverse_mcp/server.py

Restart the MCP server in VS Code after code changes to pick up the new source.


License

MIT

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

dataverse_mcp-3.2.0.tar.gz (182.4 kB view details)

Uploaded Source

Built Distribution

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

dataverse_mcp-3.2.0-py3-none-any.whl (143.4 kB view details)

Uploaded Python 3

File details

Details for the file dataverse_mcp-3.2.0.tar.gz.

File metadata

  • Download URL: dataverse_mcp-3.2.0.tar.gz
  • Upload date:
  • Size: 182.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dataverse_mcp-3.2.0.tar.gz
Algorithm Hash digest
SHA256 de8c27c1e5d2eb242852ff9831c1a9bb72cd7f14665ff34d35f889bcc734b629
MD5 49dc0c4b4de5f21fc4c4a91d73848196
BLAKE2b-256 f1c3aa68f3247517a81495fff147996aca6f9526b7bbbb2986c7b9e215e72cd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for dataverse_mcp-3.2.0.tar.gz:

Publisher: release.yml on ryanmichaeljames/dataverse-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dataverse_mcp-3.2.0-py3-none-any.whl.

File metadata

  • Download URL: dataverse_mcp-3.2.0-py3-none-any.whl
  • Upload date:
  • Size: 143.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dataverse_mcp-3.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf448bf30f596843685dfedfb6f3b8a72e91d85dcfe61e395e32653419699720
MD5 ab76e6b1047374bc6e298aa542843d5e
BLAKE2b-256 29ee1a7dc6b69d39dcbc2e0f3ef40394543696c4393f9187be16001924bb7927

See more details on using hashes here.

Provenance

The following attestation bundles were made for dataverse_mcp-3.2.0-py3-none-any.whl:

Publisher: release.yml on ryanmichaeljames/dataverse-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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