Provides AI-powered API discovery and management platform for registering, cataloging, and executing calls to external APIs through Databricks, with support for SQL warehouse queries and Delta table storage of API metadata.
Supports bearer token authentication for accessing GitHub API endpoints, enabling registration and management of GitHub API calls.
Supports bearer token authentication for accessing Shopify API endpoints, enabling registration and management of Shopify API calls.
Supports bearer token authentication for accessing Stripe API endpoints, enabling registration and management of Stripe API calls.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@API Registry MCP Serverregister the Stripe API with my production key"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š Dataverse MCP Server
A Model Context Protocol (MCP) server for Microsoft Dataverse, enabling AI assistants like Claude to interact with Dataverse data through natural language.
Built on: Model Context Protocol | Microsoft Dataverse MCP Spec
What is This?
This MCP server exposes Microsoft Dataverse tables and records through the Model Context Protocol, allowing AI assistants to:
š List and explore Dataverse tables (entities)
š Query records with OData filters and sorting
āļø Create new records in any table
š Update existing records by GUID
š¤ Natural language interface via Claude Desktop, VS Code, or any MCP client
Quick Start
1. Prerequisites
Python 3.11+
Dataverse environment with API access
Azure AD app registration with Dataverse permissions
2. Install
# Install dependencies
pip install fastapi uvicorn requests python-dotenv fastmcp
# Or with uv (recommended)
uv pip install fastapi uvicorn requests python-dotenv fastmcp3. Configure
Run the setup script:
chmod +x setup_dataverse.sh
./setup_dataverse.shOr manually create .env.local:
DATAVERSE_HOST=https://org1bfe9c69.api.crm.dynamics.com
DATAVERSE_TENANT_ID=your-tenant-id
DATAVERSE_CLIENT_ID=your-client-id
DATAVERSE_CLIENT_SECRET=your-client-secret4. Test Connection
python test_dataverse.pyExpected output: ā
All tests passed! Dataverse MCP server is ready.
5. Start Server
Option A: Run Locally
./watch.sh
# Or: uvicorn server.app:combined_app --reload --port 8000Option B: Deploy to Databricks Apps
./deploy.sh --createš See DATABRICKS_DEPLOYMENT.md for deployment guide.
Server endpoints:
š§ MCP:
http://localhost:8000/mcp(local) orhttps://your-app.databricksapps.com/apps/your-app/mcp(cloud)š Docs:
http://localhost:8000/docsā¤ļø Health:
http://localhost:8000/api/health
Documentation
Document | Description |
5-minute quick start guide | |
Detailed Azure AD & Dataverse setup | |
Deploy to Databricks Apps | |
Complete reference documentation |
Available MCP Tools
Phase 1 (Implemented)
Tool | Description |
| Server health check |
| List all Dataverse tables |
| Get table schema and columns |
| Query records with OData filters |
| Create new records |
| Update existing records |
Phase 2 (Planned)
delete_record- Delete recordscreate_table/update_table/delete_table- Table managementlist_knowledge_sources/retrieve_knowledge- Copilot Studio integrationlist_prompts/execute_prompt- Custom prompts
Usage Examples
Claude Desktop
Configure ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dataverse": {
"url": "http://localhost:8000/mcp"
}
}
}Then in Claude:
You: "List all custom tables in my Dataverse environment"
Claude: [Calls list_tables with custom_only=True]
You: "Show me accounts with revenue over $1M"
Claude: [Calls read_query with filter]
You: "Create a new account called Fabrikam with $2M revenue"
Claude: [Calls create_record]cURL
# List tables
curl -X POST http://localhost:8000/mcp/call-tool \
-H "Content-Type: application/json" \
-d '{"name": "list_tables", "arguments": {"top": 10}}'
# Query accounts
curl -X POST http://localhost:8000/mcp/call-tool \
-H "Content-Type: application/json" \
-d '{
"name": "read_query",
"arguments": {
"table_name": "account",
"select": ["name", "revenue"],
"filter_query": "revenue gt 1000000",
"top": 10
}
}'Python
import requests
response = requests.post('http://localhost:8000/mcp/call-tool', json={
"name": "describe_table",
"arguments": {"table_name": "account"}
})
print(response.json())Project Structure
dataverse_mcp_server/
āāā server/
ā āāā app.py # FastAPI + MCP server
ā āāā dataverse_tools.py # MCP tool implementations
ā āāā dataverse/
ā ā āāā auth.py # OAuth authentication
ā ā āāā client.py # Dataverse Web API client
ā ā āāā __init__.py
ā āāā routers/ # FastAPI REST endpoints
ā āāā health.py # Health check
ā āāā mcp_info.py # MCP metadata
ā āāā user.py # User info
āāā client/ # React frontend (future)
āāā test_dataverse.py # Connection tests
āāā setup_dataverse.sh # Interactive setup
āāā watch.sh # Dev server with hot reload
āāā config.yaml # MCP server config
āāā env.example # Environment template
āāā DATAVERSE_QUICKSTART.md # Quick start guide
āāā DATAVERSE_SETUP.md # Detailed setup
āāā README_DATAVERSE.md # Full referenceArchitecture
Authentication: Service Principal (OAuth 2.0 client credentials flow)
API: Dataverse Web API v9.2
Protocol: Model Context Protocol (MCP)
Framework: FastAPI + FastMCP
MCP Clients (Claude, VS Code)
ā HTTP/MCP
Dataverse MCP Server (FastAPI)
ā HTTPS/OAuth
Microsoft DataverseTroubleshooting
Problem | Solution |
401 Authentication Error | Check client secret validity and API permissions |
403 Permission Denied | Assign security role to app user in Power Platform Admin Center |
Table Not Found | Use |
Connection Timeout | Verify |
See DATAVERSE_SETUP.md for detailed troubleshooting.
Development
# Run tests
python test_dataverse.py
# Start dev server
./watch.sh
# Check lints
ruff check server/
# Format code
ruff format server/Reference Links
License
See LICENSE.md
Security
Report vulnerabilities via SECURITY.md
Questions? See DATAVERSE_QUICKSTART.md or DATAVERSE_SETUP.md
Built with ā¤ļø for the Dataverse and MCP communities
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.