Health Check Server
БесплатноНе проверенBuild a standalone MCP Server that lets AI models query your cloud services’ health status over the public internet in a standard way—using HTTP + SSE, the MCP
Описание
Build a standalone MCP Server that lets AI models query your cloud services’ health status over the public internet in a standard way—using HTTP + SSE, the MCP lifecycle (Initialize + Handshake)
README
Build a standalone MCP Server that lets AI models query your cloud services’ health status over the public internet in a standard way—using HTTP + SSE, the MCP lifecycle (Initialize + Handshake), a
check_api_statustool, and multi-client session management.
Challenge Results
The challenge has been evaluated. See the final leaderboard and assessment report, or read the Persian report.
Table of Contents
Requirements
Allowed Language: C#
Framework: .NET 8 (recommended) / .NET 7+ acceptable
Recommended SDK: .NET 8.0.x
Server: ASP.NET Core
Protocol: HTTP + Server-Sent Events (SSE) (HTTPS recommended)
OS: Any (Windows / Linux / macOS)
Familiarity with:
- HTTP APIs
- SSE streaming
- Basic async programming
- Concurrency & session/state handling
Problem Description
Your organization wants AI models (e.g., Claude) to query the health status of your cloud services over the internet in a direct and standard way.
Design and implement a Standalone MCP Server using ASP.NET Core that supports:
- Full MCP lifecycle over HTTP/SSE, including Initialize and Handshake.
- A tool named
check_api_statusthat accepts a URL and reports availability. - Multi-client concurrency via session management (multiple clients simultaneously with isolated sessions).
This is a backend/server challenge: implement protocol flow, SSE streaming, tool execution, and session lifecycle.
Rules and Constraints
Protocol & lifecycle
- You must implement Initialize and Handshake in a way that is testable via HTTP calls.
- SSE events must be session-bound and correctly routed.
- MCP message formats and event payloads must be clearly documented (even if simplified).
Session management
- Support multiple concurrent sessions.
- No cross-talk: events/results for one session must never appear in another.
- Implement session cleanup (TTL/expiration) and document the policy.
Tool execution
check_api_statusmust return a clear status (e.g.,UP/DOWN) with useful details.- Handle timeouts, DNS failures, TLS errors, invalid URLs—without crashing.
Security notes (must address in solution)
- Protect against SSRF by default (recommended approaches: allowlist domains, block private/loopback ranges, configurable policies).
- Use sane request timeouts and size limits.
Dependencies
- Prefer the .NET standard library. If you add packages, justify them in docs.
Core Scenarios
1) Initialize (HTTP)
A client starts a new MCP session.
Expected server responsibilities:
- Create and store a new
session_id. - Return protocol info and capabilities.
- Return the list of available tools (must include
check_api_status). - Provide the SSE stream URL for that session.
2) Handshake (HTTP + SSE)
The client completes handshake and attaches to an SSE stream tied to session_id.
Expected server responsibilities:
- Validate
session_id. - Open/maintain the SSE connection.
- Emit handshake/ready events (or equivalent) to confirm the session is active.
3) Tool Invocation: check_api_status
The client requests tool execution with input:
name:check_api_statusinput:{ "url": "https://example.com/health" }
Expected server responsibilities:
Perform an HTTP probe.
Report:
- status (
UP/DOWN) - HTTP status code (if reachable)
- latency (ms)
- timestamp
- error details (if failed)
- status (
4) Multiple Clients / Sessions
Your server must support many clients concurrently.
Expected server responsibilities:
- Correct routing of SSE events and tool results per session.
- Thread-safe session storage.
- Cleanup of expired sessions.
Input/Output and Examples
Tool Definition (Required)
Tool name: check_api_status
Default behavior:
- Default probe timeout: 3000ms (must be configurable).
Expected input JSON:
{
"url": "https://example.com/health"
}
Suggested success output JSON:
{
"url": "https://example.com/health",
"status": "UP",
"http_status": 200,
"latency_ms": 87,
"checked_at": "2025-12-30T12:00:00Z"
}
Suggested failure output JSON:
{
"url": "https://example.com/health",
"status": "DOWN",
"error": "Timeout after 3000ms",
"checked_at": "2025-12-30T12:00:00Z"
}
How to Run and Test
1) Clone the Project
git clone https://github.com/dotin-challenge/MCP-Health-Check-Server.git
cd MCP-Health-Check-Server
2) Build and Run
dotnet restore
dotnet build
dotnet run --project src/McpHealthServer
3) (Optional) Run Tests
dotnet test
Minimum expected tests:
- Initialize returns
session_id+ tools - SSE stream binds to
session_idand emits handshake/ready check_api_statusreturns correctUP/DOWN- Two sessions in parallel don’t mix responses
How to Submit (PR)
Fork the repository.
Create a new branch:
git checkout -b solution/<username>Place your solution here:
solutions/C#/<username>/ ├── src/... ├── tests/... └── README.md (optional: architecture notes)Open a Pull Request titled:
[Solution] Standalone MCP Health Check Server - <username>
Evaluation Criteria
| Criteria | Weight |
|---|---|
| Correctness (end-to-end flow + tool works) | 35% |
| Code Quality (structure, clarity, SOLID) | 15% |
| MCP Lifecycle Compliance (Initialize/Handshake/SSE) | 15% |
| Concurrency & Session Management | 15% |
| Observability & Security (logging, SSRF) | 5% |
| Documentation (clear endpoints + run guide) | 5% |
| Deliverable Quality (runnable, clean repo) | 10% |
Timeline
- Start:
2025-12-30 - PR Submission Deadline:
2026-01-06
Contact
- Use GitHub Issues in this repository for questions and clarifications.
Установка Health Check Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/dotin-challenge/MCP-Health-Check-ServerFAQ
Health Check Server MCP бесплатный?
Да, Health Check Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Health Check Server?
Нет, Health Check Server работает без API-ключей и переменных окружения.
Health Check Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Health Check Server в Claude Desktop, Claude Code или Cursor?
Открой Health Check Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Health Check Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
