hr
Microsoft HR MCP Server sample with Azure Container Apps deployment
claude mcp add --transport stdio fabianwilliams-hr-mcp-server npx -y mcp-remote https://hr-mcp-server.jollyflower-9d7ab707.eastus2.azurecontainerapps.io
How to use
The HR MCP Server provides a persistent, Azure-backed Model Context Protocol service for managing HR candidates. It exposes a set of MCP endpoints over HTTP that allow clients to list, search, add, update, and remove candidate records, with all data stored in Azure Table Storage for durability across container restarts and deployments. This server is designed to work with MCP clients such as Claude Desktop, MCP Inspector, and Copilot Studio, enabling real-time collaboration and cross-platform access to the same persistent dataset. You can connect to the server using the provided endpoint and interact with the available tools through MCP-compatible clients. The built-in persistence ensures that candidate information remains intact across sessions and deployments, making it suitable for production workloads that require concurrent access from multiple clients.
How to install
Prerequisites:
- .NET 8 SDK installed on your machine
- Access to Azure Table Storage or a local development substitute
- Git installed
Local development setup:
-
Clone the repository git clone https://github.com/fabianwilliams/hr-mcp-server.git cd hr-mcp-server
-
Restore and build dotnet restore dotnet build
-
Configure environment for local run
- Ensure TABLE_STORAGE_CONN_STRING is set to your Azure Storage connection string. Example: export TABLE_STORAGE_CONN_STRING="DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net"
-
Run the server locally dotnet run
The server will be available at http://localhost:5000
Optional: If you want to run via a container or remote deployment, follow your preferred deployment method and ensure the TABLE_STORAGE_CONN_STRING variable is provided in that environment.
Additional notes
Notes and tips:
- Environment variable TABLE_STORAGE_CONN_STRING is required for Azure Table Storage persistence. Ensure it is accessible by the runtime environment.
- The server exposes these MCP tools: list_candidates, search_candidates, add_candidate, update_candidate, remove_candidate. Client implementations may expose equivalents via MCP streams.
- If you encounter connectivity issues from Copilot Studio or Claude Desktop, verify that the host URL is reachable and that any firewall or NAT settings allow MCP streaming traffic.
- For local testing, you can seed initial data in Azure Table Storage or rely on automatic data seeding on first run, depending on your deployment configuration.
- When deploying to Azure Container Apps or similar, ensure the TABLE_STORAGE_CONN_STRING is supplied as an environment variable in the container configuration.
Related MCP Servers
mssql
MSSQL Server MCP implementation written in C#
McpDotNet.Extensions.SemanticKernel
Microsoft SemanticKernel integration for the Model Context Protocol (MCP). Enables seamless use of MCP tools as AI functions.
DatabaseMcpServer
MCP server from ttcc666/DatabaseMcpServer
mcp-dataverse
MCP Server for querying Dataverse using SQL
xperience-community
ASP.NET Core MCP server for Xperience by Kentico projects
console-to-http
Example of converting a stdio MCP server to HTTP using ModelContextProtocol.AspNetCore