Testimize.MCP.Server
1.1.10
dotnet tool install --global Testimize.MCP.Server --version 1.1.10
dotnet new tool-manifest
dotnet tool install --local Testimize.MCP.Server --version 1.1.10
#tool dotnet:?package=Testimize.MCP.Server&version=1.1.10
nuke :add-package Testimize.MCP.Server --version 1.1.10
Testimize MCP Server
A .NET 8 Web API with HTTP endpoints and MCP stdio server for GitHub Copilot integration.
Features
- HTTP API: REST endpoints for direct API access
- MCP Server: Model Context Protocol server for VS Code GitHub Copilot
- Docker Support: Both modes available in containers
- SOLID Architecture: Clean separation of concerns
HTTP API Endpoints
GET /health→ API health infoGET /time→ Current UTC timeGET /guid→ Generate random GUIDPOST /echo→ Echo JSON payload
MCP Tools (for VS Code GitHub Copilot)
health_check→ Get API health infoget_time→ Get current UTC timegenerate_guid→ Generate a random GUID
Development Usage
HTTP Mode (Development)
dotnet run --project Testimize.MCP.Server
# API available at: http://localhost:5000
# Swagger UI at: http://localhost:5000/swagger
MCP Mode (Development)
dotnet run --project Testimize.MCP.Server -- --mcp
# Starts MCP server on stdio for VS Code integration
Docker Usage
Build Docker Image
docker build -t testimize-mcp-server:1.0 .
HTTP Mode (Docker)
# Run HTTP API in container
docker run --rm -p 8088:8088 testimize-mcp-server:1.0
# Test HTTP API
curl http://localhost:8088/health
MCP Mode (Docker)
# Run MCP server in container (for VS Code)
docker run --rm -i testimize-mcp-server:1.0 --mcp
VS Code GitHub Copilot Configuration
Add this to your VS Code settings.json or MCP configuration:
Option 1: Direct .NET execution (Recommended for development)
{
"testimize-mcp-server": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "path/to/Testimize.MCP.Server", "--", "--mcp"]
}
}
Option 2: Docker execution
{
"testimize-mcp-server": {
"type": "stdio",
"command": "docker",
"args": ["run", "--rm", "-i", "testimize-mcp-server:1.0", "--mcp"]
}
}
Option 3: Local binary (after publish)
{
"testimize-mcp-server": {
"type": "stdio",
"command": "path/to/Testimize.MCP.Server.exe",
"args": ["--mcp"]
}
}
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ HTTP Client │ │ VS Code MCP │ │ Business Logic │ │ │ │ │ │ │ │ REST API calls │───▶│ JSON-RPC stdio │───▶│ IUtilityService │ └─────────────────┘ └──────────────────┘ └─────────────────┘ │ │ ▼ │ ┌──────────────────┐ │ │ IMcpProtocolHandler │◀──────────┘ │ │ │ • Initialize │ │ • ToolsList │ │ • ToolsCall │ └──────────────────┘
Extending the API
To add new functionality that works in both HTTP and MCP modes:
- Add business logic to
IUtilityServiceandUtilityService - Add HTTP endpoint in
Program.cs - Add MCP tool definition in
McpProtocolHandler.ToolsList() - Add tool implementation in
McpProtocolHandler.ToolsCall()
Example:// 1. Add to IUtilityService public interface IUtilityService { object GetWeather(string city); }
// 2. Add HTTP endpoint app.MapGet("/weather/{city}", (string city, IUtilityService service) ⇒ Results.Json(service.GetWeather(city)));
// 3. Add to ToolsList() new { name = "get_weather", description = "Get weather for a city", inputSchema = new { type = "object", properties = new { city = new { type = "string" } }, required = new[] { "city" } } }
// 4. Add to ToolsCall() "get_weather" ⇒ _utilityService.GetWeather( paramsDict?["city"]?.ToString() ?? "Unknown")
Troubleshooting
MCP Connection Issues
- Ensure Docker image is built:
docker build -t testimize-mcp-server:1.0 . - Check VS Code MCP configuration syntax
- Verify paths in MCP configuration are correct
- Check VS Code developer console for MCP errors
HTTP API Issues
- Verify port 8088 is available
- Check Docker container logs:
docker logs <container-id> - Test with curl:
curl http://localhost:8088/health
Development Issues
- Run
dotnet buildto verify compilation - Check for missing dependencies:
dotnet restore - Verify .NET 8 SDK is installed
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.10 | 99 | 4/10/2026 |
Initial release of the Testimize MCP Server as a .NET global tool.