728x90

이번 글에서는 가장 간단한 Hello World MCP 서버를 직접 구현해보고,
Amazon Q Developer CLI에서 실제로 동작시키는 과정을 정리합니다.
1. Python 버전 Hello World MCP 서버
(1) 프로젝트 초기화
mkdir hello-mcp-server
cd hello-mcp-server
(2) Python 코드 작성
hello_mcp_server.py
#!/usr/bin/env python3
import asyncio
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
server = Server("hello-mcp-server")
@server.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="say_hello",
description="간단한 인사말을 반환합니다",
inputSchema={
"type": "object",
"properties": {
"name": {"type": "string", "description": "인사할 대상의 이름"}
}
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
if name == "say_hello":
target = arguments.get("name", "World")
return [TextContent(type="text", text=f"Hello, {target}!")]
raise ValueError(f"Unknown tool: {name}")
async def main():
async with stdio_server() as (reader, writer):
await server.run(reader, writer, server.create_initialization_options())
if __name__ == "__main__":
asyncio.run(main())
def run():
asyncio.run(main())
(3) pyproject.toml
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "hello-mcp-server"
version = "1.0.0"
dependencies = ["mcp>=0.4.0"]
[project.scripts]
hello-mcp-server = "hello_mcp_server:run"
2. Node.js 버전 Hello World MCP 서버
(1) 프로젝트 초기화
mkdir hello-mcp-server-node
cd hello-mcp-server-node
npm init -y
npm install mcp-server
(2) JavaScript 코드 작성
server.js
import { Server } from "mcp-server";
const server = new Server("hello-mcp-server-node");
server.listTools(async () => [
{
name: "say_hello",
description: "간단한 인사말을 반환합니다",
inputSchema: {
type: "object",
properties: {
name: { type: "string", description: "인사할 대상의 이름" }
}
}
}
]);
server.callTool(async (name, args) => {
if (name === "say_hello") {
const target = args.name || "World";
return [{ type: "text", text: `Hello, ${target}!` }];
}
throw new Error(`Unknown tool: ${name}`);
});
server.run();
(3) package.json 수정
{
"name": "hello-mcp-server-node",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"mcp-server": "^0.4.0"
}
}
3. Q Developer MCP 설정
mcp.json
{
"mcpServers": {
"hello-server-python": {
"command": "uv",
"args": ["run", "hello-mcp-server"]
},
"hello-server-node": {
"command": "npm",
"args": ["run", "start"]
}
}
}
4. 테스트
- Python:
uv run hello-mcp-server-> 프롬프트 그대로 유지되는 경우 &&ps aux | grep hello-mcp-server실행 시 uv run hello-mcp-server / /.venv/bin/hello-mcp-server 프로세스 실행중일 경우 O.K- Node.js:
npm run start- Q Developer:
사용자: "Hello DevOps team이라고 인사해줘" Q Developer: (say_hello 도구 사용) → "Hello, DevOps team!"
5. 마무리
- Python과 Node.js 두 환경에서 Hello World MCP 서버를 만들고 실행
- Amazon Q Developer CLI의
mcp.json에 연결해 실제 대화에 활용 가능 - 이후에는 사내 CI/CD, 모니터링, IaC 검증 등 DevOps 업무용 MCP 서버로 확장 가능
📌 다음 글 예고
다음글에서는 단순한 예제를 넘어서, 실제로 쓸만한 MCP 서버를 기획하고 설계하는 방법을 다룹니다.
DevOps 환경에서 활용 가능한 프로젝트 아이디어(예: IaC 검증, 보안 정책 점검, CI/CD 파이프라인 자동화 등)를 예시로 들고, 이를 MCP 서버로 어떻게 구현할 수 있을지 로드맵을 제시하겠습니다.
728x90
'프로그래밍공부(Programming Study) > AI&ML-Agent AI' 카테고리의 다른 글
| Amazon Q Developer MCP 서버 설정 – command와 args 완전 이해 (0) | 2025.09.18 |
|---|---|
| MCP 서버 개발에서 헷갈리기 쉬운 uv, uvx, npm, npx 완전 정리 (0) | 2025.09.18 |
댓글