Purview MCP Server
FastMCP-based server that exposes Microsoft Purview data governance operations through the Model Context Protocol.
Full documentation:
docs/purview-mcp-server.md
Quick Start
# stdio (default) — from repo root, venv active
$env:PURVIEW_ACCOUNT_NAME = "your-account"
python tools/PurviewMCPServer/server.py
# Streamable-HTTP
$env:PURVIEW_MCP_TRANSPORT = "streamable-http"
$env:PURVIEW_MCP_PORT = "8000"
python tools/PurviewMCPServer/server.py
# endpoint: http://127.0.0.1:8000/mcp
# Azure Functions (func host)
cd tools/hosting/app && func start --port 7073
# endpoint: http://localhost:7073/api/mcp
Transport Protocols
| Transport | Env value | VS Code mcp.json type | Endpoint |
|---|---|---|---|
| stdio (default) | stdio |
"command" |
process stdin/stdout |
| Streamable-HTTP | streamable-http or http |
"http" |
/mcp (standalone) or /api/mcp (Azure Functions) |
| SSE (legacy) | sse |
"sse" |
/sse (standalone only — not compatible with Azure Functions) |
VS Code mcp.json
{
"servers": {
"purview-mcp-server-stdio": {
"command": "./.venv/Scripts/python",
"args": ["tools/PurviewMCPServer/server.py"],
"env": { "PURVIEW_ACCOUNT_NAME": "your-account" }
},
"purview-mcp-server-http": {
"type": "http",
"url": "http://localhost:7073/api/mcp"
}
}
}
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
PURVIEW_ACCOUNT_NAME |
Yes | — | Purview account name (no suffix) |
AZURE_TENANT_ID |
No | — | Azure tenant GUID |
AZURE_CLIENT_ID |
No | — | Service principal client ID |
AZURE_CLIENT_SECRET |
No | — | Service principal secret |
AZURE_REGION |
No | public | Sovereign cloud: usgov, china |
PURVIEW_MAX_RETRIES |
No | 3 |
API retry count |
PURVIEW_TIMEOUT |
No | 30 |
Request timeout (seconds) |
PURVIEW_BATCH_SIZE |
No | 100 |
Bulk operation batch size |
PURVIEW_MCP_TRANSPORT |
No | stdio |
Transport protocol |
PURVIEW_MCP_HOST |
No | 127.0.0.1 |
Bind host (HTTP/SSE modes) |
PURVIEW_MCP_PORT |
No | 8000 |
Bind port (HTTP/SSE modes) |
Copy .env.example to .env and fill in your values. Never commit .env.
Available Tools (37 + registry)
| Category | Tools |
|---|---|
| Entity (8) | get_entity, create_entity, update_entity, delete_entity, search_entities, batch_create_entities, batch_update_entities, import_entities_from_csv |
| Glossary (3) | get_glossary_terms, create_glossary_term, assign_term_to_entities |
| Unified Catalog (11) | uc_list_domains, uc_get_domain, uc_create_domain, uc_list_terms, uc_get_term, uc_create_term, uc_search_terms, uc_list_custom_metadata_defs, uc_cleanup_metadata_definition, uc_delete_metadata_definition, uc_delete_metadata_from_asset |
| Collections (5) | list_collections, get_collection, create_collection, delete_collection, get_collection_path |
| Lineage (2) | get_lineage, create_lineage |
| Search (2) | search_suggest, search_browse |
| Type Defs (2) | get_typedef, list_typedefs |
| Relationships (3) | create_relationship, get_relationship, delete_relationship |
| Account + Registry (3) | get_account_properties, list_available_operations, invoke_operation |
Recommended First Commands
1) list_available_operations()
2) get_account_properties()
3) search_entities(query="customer", limit=5)
4) uc_list_domains()
Files
| File | Purpose |
|---|---|
server.py |
FastMCP server — all 37 tool definitions |
config.py |
PurviewMCPConfig frozen dataclass — env var parsing and validation |
__version__.py |
Package version |
.env.example |
Environment variable template |
PROMPT_INSTRUCTIONS.md |
Detailed prompt guidance for AI assistants |
pyproject.toml |
Package metadata (purview-mcp-server) |
Dockerfile |
Container image for standalone deployment |
docker-compose.yml |
Local container stack |
For Azure Functions hosting files, see tools/hosting/.
See docs/purview-mcp-server.md for the full reference including client setup for Claude Code and Cursor, Azure Functions deployment, all prompt examples, workflows, and troubleshooting.
Metadata
Release files for purview-mcp-server 1.15.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| purview_mcp_server-1.15.10.tar.gz | 16.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| purview_mcp_server-1.15.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.7 kB
Release files / purview_mcp_server-1.15.10.tar.gz
| Download URL | purview_mcp_server-1.15.10.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
546d2c0fba94738f2a8c53efe77670d77ad8d7a8c6d801786370af5e29d55f9c
|
|
BLAKE2b-256 checksum How to use checksums |
f1ebc81db59b5e23da592f1d0a04098a06774b8e7467eb95a24b50450b0b8d7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / purview_mcp_server-1.15.10-py3-none-any.whl
| Download URL | purview_mcp_server-1.15.10-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5ab8b856e7135e428c5b908586ff64360862a7d47f1c5283b16a6c42bc3ab26d
|
|
BLAKE2b-256 checksum How to use checksums |
bc0782f2d3f174969fabd0c3aab016f58ebf2dff14b2291cf7b6224638b6f928
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logSecurity for purview-mcp-server 1.15.10
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for purview_mcp_server-1.15.10.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.