adf-mcp-server
adf-mcp-server
Azure Data Factory 모니터링 및 근본 원인 분석을 위한 읽기 전용 MCP(Model Context Protocol) 서버로, VS Code / Claude Code에서 사용할 수 있도록 만들어졌습니다.
상태: Step 1 (스켈레톤 + 헬스 체크). 아직 Azure 연결은 없습니다 - 이 부분은 Step 2 (인증)와 Step 3 (ADF 도구)에서 추가됩니다.
요구 사항
Python 3.11+
Related MCP server: azure-adf-mcp
로컬 설정
cd adf-mcp-server
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
cp .env.example .env.env에는 현재 서버 설정 블록(ADF_MCP_*)만 있으면 됩니다. AZURE_* 줄은 Step 2를 위한 자리표시자이므로 지금은 주석 처리해 두세요.
서버 실행
python -m adf_mcp.server
# or, after `pip install -e .`:
adf-mcp-server서버는 stdio를 통해 통신합니다 - 터미널에서 직접 실행하면 멈춘 것처럼 보일 수 있지만, MCP 클라이언트(VS Code 확장, Claude Code, mcp dev 등)가 stdin/stdout으로 연결되기를 기다리는 상황이므로 정상입니다.
VS Code에서 구성
MCP를 지원하는 확장 프로그램의 서버 구성을 다음 주소로 지정하세요:
{
"command": "python",
"args": ["-m", "adf_mcp.server"],
"cwd": "/absolute/path/to/adf-mcp-server"
}연결이 완료되면 health_check 도구를 호출합니다. Azure에 전혀 접촉하지 않고 {"status": "ok", ...}를 반환해야 합니다.
테스트 실행
pip install -e ".[dev]" pytest-asyncio
pytest -v프로젝트 구조
src/adf_mcp/를 참조하세요 - server.py (MCP 전송 계층), config.py (설정), logging_config.py (구조화된 로깅). 도메인 로직과 Azure 연결은 Step 3부터 src/adf_mcp/domain/ 아래에 추가됩니다.
문제 해결
클라이언트에 "server disconnected"가 즉시 표시됨: 먼저
python -m adf_mcp.server를 단독으로 실행해서 정상 동작하는지 확인하세요. 시작 예외가 발생하면 클라이언트가 연결되기 전에 프로세스가 종료됩니다.클라이언트가 응답을 파싱하지 못하거나 출력이 깨짐: MCP 프로토콜 자체가 아닌 다른 무언가가 stdout에 출력된 것입니다. (예: 잘못 쓰인
print()). 이 프로젝트의 모든 로깅이 바로 이 이유로 stderr로 출력됩니다.
Available Tools
1 toolhealth_checkA
Report that the MCP server is up and configuration loaded correctly.
Useful as a first call from any MCP client (VS Code, Claude Code) to confirm the server started, before any Azure-dependent tools exist.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly indicates a read-only status check (no mutation implied) and adds a timing context ('before any Azure-dependent tools exist') that is useful. It doesn't explicitly state 'no side effects' or failure behavior, but the output schema likely covers those details. The added context is valuable and goes beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two short sentences. The first front-loads the core purpose, and the second provides usage context. No filler or repetition, every sentence earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema present, the description fully covers purpose and usage. It tells the agent exactly when to call it and why, and the output schema handles return details. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is trivially fully described (empty object). Per the baseline rule for 0 params, a score of 4 is appropriate; the description needs no parameter information since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Report') and a clear resource ('MCP server is up and configuration loaded correctly'). It is obviously distinct from the sibling Azure tools (factories, pipelines, triggers), leaving no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to use: 'first call from any MCP client (VS Code, Claude Code) to confirm the server started, before any Azure-dependent tools exist.' This gives clear context and implicitly advises against using it after other tools, making its role in the workflow obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
health_check
TDQS
Scored across 1 tool
There is only one tool, so no agent could confuse it with another. The health_check tool has a clear and unique purpose as a readiness probe.
The single tool name is clean and uses standard snake_case; however, with only one tool, no meaningful set-wide naming convention is established.
A server named adf-mcp-server exposing only a health_check tool is far below the minimum viable tool surface. This is a single trivial tool, which matches the lowest end of the scale.
The server gives agents no way to interact with the Azure Data Factory domain at all. A health check alone is severely incomplete and leaves every meaningful user workflow unavailable.
Maintenance
Related MCP Connectors
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
MCP uptime, schema, auth, and SLA receipt monitoring.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Read-only MCP for identity resolution and write guardrails.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides standardized MCP interfaces for Azure services including Cosmos DB operations (container and item management) and AI Search operations (index management), deployed through Azure API Management gateway.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes Azure Data Factory operations as tools any LLM can call — trigger pipelines, monitor runs, inspect datasets, and get factory health summaries through natural language.MIT
- AlicenseAqualityAmaintenanceA read-only MCP server that reports BI pipeline readiness, blockers, and the next allowed action for governed Power BI workflows. It never writes files, executes warehouse work, or grants human approvals.610 npm2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server that exposes Azure incident-investigation tools for a single App Service and its Application Insights telemetry, enabling an agent to correlate deployment history, platform metrics, and transaction traces.MIT