MCP Platform Framework
README.md
# MCP Framework - Model Context Protocol Server Template
[](https://learn.microsoft.com/en-us/azure/azure-functions/)
[](https://www.python.org/downloads/)
[](https://github.com/modelcontextprotocol/python-sdk)
[](https://opensource.org/licenses/MIT)
**A production-ready template for deploying MCP (Model Context Protocol) servers on Azure Functions, fully compatible with Microsoft Copilot and Copilot Studio.**

*[intro post](https://www.linkedin.com/posts/edouardlegoupil_ai-mcp-datagovernance-share-7493234887450218496-t5tD/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAADY0hQBILmJl4WgHMLMVzwTHQ_hG6RACWE)*
---
## π― **Choose Your Path**
This repository serves **two distinct audiences**. Please select your path:
### π **I want to BUILD an MCP Server** (Most Users)
β [USER_GUIDE.md](USER_GUIDE.md) - **Complete guide for MCP server developers**
*You want to create your own MCP server using this framework as a template. You'll focus on implementing your business logic (tools, resources, prompts) while the framework handles all infrastructure concerns.*
### ποΈ **I want to CONTRIBUTE to the Framework** (Framework Developers)
β [FRAMEWORK_DOCUMENTATION.md](FRAMEWORK_DOCUMENTATION.md) - **Internal framework documentation**
*You want to contribute to, extend, or maintain the MCP Framework itself. You'll work on the core infrastructure, platform services, and connectivity layers.*
---
## π **Documentation Overview**
### For MCP Server Developers (Users of this Framework)
| Document | Purpose | Audience |
|----------|---------|----------|
| **[USER_GUIDE.md](USER_GUIDE.md)** | Complete guide for building MCP servers | π― **MCP Server Developers** |
| **[TEMPLATE_GUIDE.md](TEMPLATE_GUIDE.md)** | Quick start template with examples | π― **MCP Server Developers** |
| `deploy/scripts/deploy.sh` | Automated deployment script | π― **MCP Server Developers** |
| `src/azure/requirements.txt` | Production dependencies | π― **MCP Server Developers** |
**What you'll implement:**
- β
Your business tools (functions)
- β
Your data resources
- β
Your prompt templates for Copilot Studio
- β
Your domain-specific configuration
**What the framework provides:**
- β
Authentication & Authorization (Entra ID, JWT, RBAC)
- β
Telemetry & Monitoring (Application Insights, OpenTelemetry)
- β
Error Handling & Logging
- β
Configuration Management (Environment variables, Key Vault)
- β
Data Connectivity (Fabric, Warehouse, Lakehouse)
- β
Audit Logging (Immutable audit trail)
- β
Data Classification & Governance
- β
MCP Protocol Compliance (All required endpoints)
### For Framework Developers (Contributors)
| Document | Purpose | Audience |
|----------|---------|----------|
| **[FRAMEWORK_DOCUMENTATION.md](FRAMEWORK_DOCUMENTATION.md)** | Internal framework architecture & design | ποΈ **Framework Contributors** |
| `docs/architecture/` | Architecture diagrams and design decisions | ποΈ **Framework Contributors** |
| `docs/modules/` | Platform service documentation | ποΈ **Framework Contributors** |
| `docs/api-reference/` | Internal API documentation | ποΈ **Framework Contributors** |
| `platform/` | Core framework code | ποΈ **Framework Contributors** |
**What you'll work on:**
- ποΈ Authentication & Authorization infrastructure
- ποΈ Telemetry and monitoring systems
- ποΈ Error handling and logging frameworks
- ποΈ Configuration management systems
- ποΈ Data connectivity layers (Fabric, Warehouse, Lakehouse)
- ποΈ Audit logging and data classification
---
## ποΈ **Framework Architecture**
### The Big Picture
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β YOUR MCP SERVER ON AZURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β AZURE FUNCTIONS v4 ββ
β β β
HTTP Triggers, Function App, Storage, Application Insights ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β MCP FRAMEWORK LAYER ββ
β β ποΈ Framework Contributors work here ββ
β β ββ
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββ
β β β Authenticationβ β Authorizationβ β Telemetry β ββ
β β β (Entra ID, β β (RBAC, β β (Auto-collectβ ββ
β β β JWT, etc.) β β Policies) β β tool calls) β ββ
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββ
β β ββ
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββ
β β β Audit β β Error β βClassificationβ ββ
β β β (Immutable β β Handling β β (Data β ββ
β β β logs) β β (Standardizedβ β controls) β ββ
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββ
β β ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β CONNECTIVITY LAYER βββ
β β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββ
β β β β Semantic β β Warehouse β β Lakehouse β βββ
β β β β Models β β (SQL) β β (Delta) β βββ
β β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β YOUR DOMAIN LAYER ββ
β β π― MCP Server Developers work here ββ
β β ββ
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββ
β β β Tools β β Resources β β Prompts β ββ
β β β (Functions) β β (Data Sources)β β (Templates) β ββ
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββ
β β ββ
β β π― Your Business Logic, Domain Models, Ontologies ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Clear Separation of Concerns
| Concern | Framework Handles | You Handle |
|---------|------------------|------------|
| **Authentication** | β
Entra ID, JWT validation, token management | β |
| **Authorization** | β
RBAC, policy enforcement, permission checks | β |
| **Telemetry** | β
Logging, metrics, tracing, Application Insights | β |
| **Error Handling** | β
Standardized errors, recovery, retry logic | β |
| **Configuration** | β
Environment variables, Key Vault, secrets | β |
| **Data Connectivity** | β
Fabric, Warehouse, Lakehouse connectors | β |
| **Audit Logging** | β
Immutable audit trail, compliance logging | β |
| **Data Classification** | β
Governance controls, sensitivity labels | β |
| **MCP Protocol** | β
All required endpoints, protocol compliance | β |
| **Business Logic** | β | β
**Your tools, resources, prompts** |
| **Domain Models** | β | β
**Your ontologies, schemas** |
| **Domain Data** | β | β
**Your data sources, connections** |
---
## π **Quick Start for MCP Server Developers**
If you just want to build an MCP server, here's the **fastest path**:
### 1. Read the User Guide
β [USER_GUIDE.md](USER_GUIDE.md) - **Everything you need to know**
### 2. Follow the Template Guide
β [TEMPLATE_GUIDE.md](TEMPLATE_GUIDE.md) - **Step-by-step examples**
### 3. Key Files to Understand
```bash
# Your workspace (create these)
my_domain/
βββ tools/ # Your tool implementations
β βββ my_tool.py # Example: def greet_user(name: str) -> dict
βββ resources/ # Your data resource definitions
β βββ my_resource.py # Example: Resource(name="donors", uri="/api/donors")
βββ prompts/ # Your Copilot Studio prompt templates
βββ my_prompt.py # Example: PromptTemplate(name="generate_report", template="...")
# Framework files (don't modify these unless contributing)
platform/
βββ registration/ # Tool registration system
β βββ registry.py # Register your tools here
βββ catalog/ # Resource catalog system
β βββ client.py # Access resources via framework
βββ template/ # Prompt template system
βββ generator.py # Generate prompts via framework
src/azure/
βββ function_app.py # Main entry point (v4)
βββ host.json # Azure Functions config
βββ requirements.txt # Production dependencies
```
### 4. Deployment
```bash
# Copy environment template
cp .env.example .env
# Edit .env with your configuration
nano .env
# Deploy (uses deploy.sh script)
./deploy/scripts/deploy.sh
```
---
## ποΈ **Quick Start for Framework Contributors**
If you want to contribute to the framework itself:
### 1. Read the Framework Documentation
β [FRAMEWORK_DOCUMENTATION.md](FRAMEWORK_DOCUMENTATION.md) - **Everything about the framework**
### 2. Understand the Architecture
- [Architecture Overview](docs/architecture/overview.md)
- [Design Principles](docs/architecture/principles.md)
- [Component Architecture](docs/architecture/components.md)
### 3. Key Areas to Contribute
```bash
platform/
βββ auth/ # Authentication services (Entra ID, JWT)
βββ authorization/ # Authorization services (RBAC, policies)
βββ telemetry/ # Monitoring and observability
βββ audit/ # Audit logging
βββ errors/ # Error handling
βββ config/ # Configuration management
βββ classification/ # Data governance
βββ connectivity/ # Data source connectors (Fabric, Warehouse, Lakehouse)
docs/
βββ architecture/ # Architecture documentation
βββ modules/ # Module documentation
βββ api-reference/ # Internal API docs
βββ best-practices/ # Development guidelines
```
---
## π **Repository Structure**
```bash
mcp-framework/
βββ README.md # This file - Choose your path
βββ USER_GUIDE.md # π― For MCP Server Developers
βββ FRAMEWORK_DOCUMENTATION.md # ποΈ For Framework Contributors
βββ TEMPLATE_GUIDE.md # Quick start template
βββ .env.example # Environment variables template
βββ .funcignore # Deployment ignore patterns
βββ .gitignore # Git ignore patterns
βββ local.settings.json.example # Local development config
βββ pyproject.toml # Python project configuration
β
βββ deploy/ # Deployment scripts
β βββ scripts/
β βββ deploy.sh # Automated deployment
β
βββ src/ # Azure Functions v4
β βββ azure/
β βββ function_app.py # Main entry point
β βββ host.json # Azure Functions config
β βββ requirements.txt # Production dependencies
β
βββ platform/ # ποΈ Framework Core (Contributors)
β βββ auth/ # Authentication services
β βββ authorization/ # Authorization services
β βββ telemetry/ # Telemetry and monitoring
β βββ audit/ # Audit logging
β βββ errors/ # Error handling
β βββ config/ # Configuration management
β βββ classification/ # Data classification
β βββ connectivity/ # Data connectivity
β βββ catalog/ # Resource catalog
β βββ registration/ # Tool registration
β βββ template/ # Prompt templates
β
βββ tools/ # Example tools (for users)
β βββ __init__.py
β βββ example_tool.py # Example implementations
β
βββ docs/ # ποΈ Framework Documentation
β βββ architecture/ # Architecture docs
β βββ modules/ # Module documentation
β βββ api-reference/ # API reference
β βββ best-practices/ # Best practices
β βββ deployment/ # Deployment guides
β βββ examples/ # Usage examples
β
βββ my_domain/ # π― YOUR CODE (create this!)
βββ tools/ # Your tool implementations
βββ resources/ # Your resource definitions
βββ prompts/ # Your prompt templates
```
---
## π― **Which Path Are You On?**
### If you're building an MCP Server:
```
β
I want to create my own MCP server
β
I want to implement business tools and logic
β
I want to deploy to Azure Functions
β
I want to integrate with Copilot and Copilot Studio
β START HERE: [USER_GUIDE.md](USER_GUIDE.md)
```
### If you're contributing to the Framework:
```
β
I want to improve the framework infrastructure
β
I want to add new platform services
β
I want to fix bugs in the framework
β
I want to extend framework capabilities
β START HERE: [FRAMEWORK_DOCUMENTATION.md](FRAMEWORK_DOCUMENTATION.md)
```
---
## π **Getting Help**
### For MCP Server Developers
- π [USER_GUIDE.md](USER_GUIDE.md) - Complete user guide
- π [TEMPLATE_GUIDE.md](TEMPLATE_GUIDE.md) - Quick start template
- π **[FABRIC_INTEGRATION_GUIDE.md](FABRIC_INTEGRATION_GUIDE.md)** - **Connect to Fabric Semantic Models**
- π¬ Open an issue with your question
### For Framework Contributors
- π [FRAMEWORK_DOCUMENTATION.md](FRAMEWORK_DOCUMENTATION.md) - Internal documentation
- π [CONTRIBUTING.md](docs/CONTRIBUTING.md) - Contribution guidelines
- π¬ Open an issue or pull request
---
## π€ **Contributing**
We welcome contributions! Please see:
- [FRAMEWORK_DOCUMENTATION.md](FRAMEWORK_DOCUMENTATION.md) for framework contributions
- [USER_GUIDE.md](USER_GUIDE.md) for using the framework
---
## π **License**
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
**Built with β€οΈ for MCP Server Developers and Framework Contributors**
*Need help? Check the appropriate guide for your use case!*
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues