AgentStack
MCP verified MIT Self-run

Starter Mcp Server

mcp-bravo-box-starter-mcp-server · by bravo-box

A repo showing MCP, and the power of MCP

No reviews yet
0 installs
1 views
0.0% view→install

Install

$ agentstack add mcp-bravo-box-starter-mcp-server

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Starter Mcp Server? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

MCP Starter Server

A comprehensive starter repository demonstrating the Model Context Protocol (MCP) with Azure services. This repository provides a complete solution for deploying an MCP-enabled Azure Function, a chat application integrated with Azure OpenAI in Azure Government, and the necessary infrastructure.

🏗️ Architecture

This repository contains:

  • mcp-function - Python Azure Function providing an MCP endpoint
  • chat-app - C# chat application with Azure OpenAI integration (containerized)
  • infra - Bicep templates for Azure infrastructure deployment
  • scripts - Automated deployment scripts

📁 Repository Structure

starter-mcp-server/
├── mcp-function/          # Python Azure Function
│   ├── function_app.py    # MCP endpoint implementation
│   ├── host.json          # Function host configuration
│   ├── requirements.txt   # Python dependencies
│   └── README.md          # Function documentation
├── chat-app/              # C# Chat Application
│   ├── ChatApp.csproj     # .NET project file
│   ├── Program.cs         # Application entry point
│   ├── ChatService.cs     # Azure OpenAI service
│   ├── Models.cs          # Request/Response models
│   ├── Dockerfile         # Container definition
│   ├── appsettings.json   # Application configuration
│   └── README.md          # App documentation
├── infra/                 # Infrastructure as Code
│   ├── main.bicep         # Main orchestration template
│   ├── main.parameters.json # Default parameters
│   ├── modules/           # Bicep modules
│   │   ├── function-app.bicep
│   │   ├── openai.bicep
│   │   └── web-app.bicep
│   └── README.md          # Infrastructure documentation
├── scripts/               # Deployment Scripts
│   ├── deploy-infrastructure.sh
│   ├── deploy-function.sh
│   ├── deploy-chat-app.sh
│   └── README.md          # Scripts documentation
├── .gitignore
├── LICENSE
└── README.md

🚀 Quick Start

Prerequisites

Azure Government Setup

# Set Azure CLI to use Azure Government
az cloud set --name AzureUSGovernment

# Login to Azure Government
az login

# Verify you're on the right cloud
az cloud show

Deployment

Deploy everything in three simple steps:

cd scripts

# 1. Deploy infrastructure (10-15 minutes)
./deploy-infrastructure.sh

# 2. Deploy the Azure Function
./deploy-function.sh

# 3. Build and deploy the Chat App container
./deploy-chat-app.sh

🔧 Local Development

MCP Function (Python)

cd mcp-function

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run locally
func start

Test the endpoint:

# GET request
curl http://localhost:7071/api/mcp

# POST request
curl -X POST http://localhost:7071/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"action": "test", "data": {"key": "value"}}'

Chat App (C#)

cd chat-app

# Update appsettings.json with your Azure OpenAI credentials

# Restore dependencies
dotnet restore

# Run the application
dotnet run

Access the Swagger UI at https://localhost:5001/swagger

Test the chat endpoint:

curl -X POST https://localhost:5001/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello, how are you?"}'

Docker Build (Chat App)

cd chat-app

# Build the image
docker build -t chat-app .

# Run the container
docker run -p 8080:8080 \
  -e AzureOpenAI__Endpoint="https://your-aoai.openai.azure.us/" \
  -e AzureOpenAI__ApiKey="your-key" \
  -e AzureOpenAI__DeploymentName="your-deployment" \
  chat-app

# Test
curl http://localhost:8080/health

🔑 Configuration

Azure OpenAI Configuration

After deployment, configure your Azure OpenAI credentials:

For Chat App:

az webapp config appsettings set \
  --name  \
  --resource-group  \
  --settings \
    AzureOpenAI__Endpoint="https://your-aoai.openai.azure.us/" \
    AzureOpenAI__ApiKey="your-api-key" \
    AzureOpenAI__DeploymentName="your-deployment-name"

Environment Variables:

  • AzureOpenAI__Endpoint - Azure OpenAI endpoint (Azure Government)
  • AzureOpenAI__ApiKey - API key
  • AzureOpenAI__DeploymentName - Model deployment name
  • AzureOpenAI__ApiVersion - API version (default: 2024-02-15-preview)

📊 Monitoring

Application Insights

Both the Function App and Chat App are configured with Application Insights for monitoring:

# View Function App logs
az webapp log tail --name  --resource-group 

# View Chat App logs
az webapp log tail --name  --resource-group 

# Query Application Insights
az monitor app-insights query \
  --app  \
  --resource-group  \
  --analytics-query "requests | take 10"

🧪 Testing

MCP Function Endpoints

GET /api/mcp - Status check

curl https://.azurewebsites.us/api/mcp

POST /api/mcp - Process MCP request

curl -X POST https://.azurewebsites.us/api/mcp \
  -H "Content-Type: application/json" \
  -H "x-functions-key: " \
  -d '{"action": "process", "data": {"text": "Hello MCP"}}'

Chat App Endpoints

GET /health - Health check

curl https://.azurewebsites.us/health

POST /api/chat - Chat with AI

curl -X POST https://.azurewebsites.us/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Tell me about Azure OpenAI"}'

🔐 Security

  • HTTPS enforced for all endpoints
  • TLS 1.2 minimum
  • Azure Function uses function-level authentication
  • API keys secured in Azure Key Vault (recommended for production)
  • Container Registry with admin credentials
  • Public network access can be restricted via network rules

🌐 Azure Government vs Commercial Azure

This solution is configured for Azure Government by default. To use with commercial Azure:

  1. Update cloud configuration:

``bash az cloud set --name AzureCloud az login ``

  1. Update parameters in infra/main.parameters.json:

``json { "location": { "value": "eastus" } } ``

  1. Update endpoints in Chat App to use commercial Azure endpoints

🧹 Cleanup

Remove all deployed resources:

az group delete --name mcp-starter-rg --yes --no-wait

📚 Documentation

  • [MCP Function Documentation](./mcp-function/README.md)
  • [Chat App Documentation](./chat-app/README.md)
  • [Infrastructure Documentation](./infra/README.md)
  • [Deployment Scripts Documentation](./scripts/README.md)

🤝 Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

📄 License

This project is licensed under the terms in the LICENSE file.

🔗 Resources

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.