Mcp Server Employee — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Server Employee (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP 학습용으로 만든 고용 데이터 서버 World Bank API를 사용해서 농업/산업/서비스 섹터별 고용률을 조회한다.
Model Context Protocol의 약자. LLM에게 외부 도구와 데이터 접근 권한을 제공하는 표준 프로토콜이다.
MCP는 "AI 애플리케이션을 위한 USB-C 포트" 같은 것이다. USB-C가 전자기기를 연결하는 표준화된 방법을 제공하듯, MCP는 AI 애플리케이션을 외부 시스템에 연결하는 표준화된 방법을 제공한다.
또한 Language Server Protocol(LSP)에서 영감을 받았다. LSP가 IDE에서 프로그래밍 언어 지원을 표준화한 것처럼, MCP는 AI 애플리케이션에 컨텍스트와 도구를 통합하는 방식을 표준화한다.
MCP 서버는 3가지 primitives를 제공한다:
get_employment_by_sector() 함수이 프로젝트는 Tools 중심으로 구현되어 있다.
server-employee/
├── server.py # FastMCP 인스턴스 생성
├── tools/api.py # 도구(tool) 정의
├── main.py # stdio 모드 실행 (로컬)
├── main_http.py # HTTP 서버 실행 (원격)
└── pyproject.toml # 의존성 관리파일별 역할:
server.py: FastMCP 객체 하나 생성. 다른 파일에서 import해서 사용tools/api.py: @mcp.tool() 데코레이터로 함수를 등록main.py: stdio 통신으로 Claude Desktop과 직접 연결main_http.py: HTTP 서버로 원격 접속 가능하게 함mcp = FastMCP("server-employee")MCP 서버의 진입점. 모든 도구가 이 객체에 등록된다.
@mcp.tool()
async def get_employment_by_sector(country: str, year: int):
# World Bank API 호출@mcp.tool() 데코레이터로 일반 함수를 MCP 도구로 변환한다.
worldbank GDP 서버 참고: 잘 짜여진 코드를 보고 패턴을 학습했다.
1. 입력값 검증 (ISO 코드, 연도 범위)
2. API URL 구성
3. httpx로 비동기 요청
4. 에러 처리
5. 응답 포맷팅stdio (main.py)
HTTP (main_http.py)
uv synchttpx, fastmcp, uvicorn 등이 설치된다.
uv run python main.py서버가 실행되지만 터미널에 아무것도 출력되지 않는다. stdio 모드로 대기 중이기 때문.
uv run python main_http.pyhttp://0.0.0.0:8000에서 서버가 시작된다.
확인:
curl http://localhost:8000/ping
# {"ok": true, "status": "running"}~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"employment": {
"command": "uv",
"args": [
"--directory",
"절대경로/server-employee",
"run",
"python",
"main.py"
]
}
}
}경로는 본인 환경에 맞게 수정 필요. Claude Desktop 재시작 후 적용됨.
서버 실행 후:
{
"mcpServers": {
"employment-remote": {
"url": "http://localhost:8000/mcp"
}
}
}다른 컴퓨터에서 접속: localhost를 서버 IP로 변경 예: http://192.168.0.10:8000/mcp
총 4개의 도구를 구현했다. 모두 World Bank API를 사용한다.
3개 섹터(농업/산업/서비스)의 고용률을 한 번에 조회한다.
get_employment_by_sector(country="US", year=2020)파라미터:
country: ISO 2/3자 국가 코드 (US, KR, IN 등)year: 연도 (1960~2100)응답 예시:
{
"country": "United States",
"year": 2020,
"employment": {
"agriculture": {"percentage": 1.35},
"industry": {"percentage": 19.62},
"services": {"percentage": 79.03}
}
}농업 섹터만 조회한다.
get_agriculture_employment(country="IN", year=2020)
# 인도: 42.6% (농업 비중 높음)산업(제조업 등) 섹터만 조회한다.
get_industry_employment(country="KR", year=2020)서비스업 섹터만 조회한다.
get_services_employment(country="US", year=2020)사용하는 지표:
World Bank에는 수천 개의 indicator가 있지만, 이 프로젝트에서는 위 3개만 사용한다.
uv run python main_http.pyifconfig (Mac) / ipconfig (Windows)http://192.168.0.10:8000/mcpngrok 사용:
ngrok http 8000
# https://xxxx.ngrok.io/mcp무료 버전은 세션마다 URL이 변경됨.
기타 방법:
fetch_worldbank_indicator를 만들어 3개 함수에서 재사용. 코드 중복 제거.host="0.0.0.0" 사용해야 외부 접속 가능. 127.0.0.1은 로컬만~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.