Skip to main content
Glama
sesme100

Copilot Studio MCP Server

by sesme100
README.md
# Copilot Studio MCP Server

Microsoft Copilot Studio에서 사용할 수 있는 예제 MCP 서버입니다.  
Python과 공식 MCP Python SDK를 사용하며, 아래 두 도구를 제공합니다.

- `echo`: 입력한 문장을 3번 반복
- `multi`: 입력한 숫자를 제곱

## 기술 기준

- 언어: Python
- SDK: `mcp[cli]`
- 전송 방식: `Streamable HTTP`
- 권장 실행 구성: `stateless_http=True`, `json_response=True`

## 파일 구성

```text
.
├─ server.py
├─ pyproject.toml
├─ README.md
├─ CUSTOM_INSTRUCTIONS.md
└─ MCP_SERVER_REQUIREMENTS.md
```

## 요구 사항

- Python 3.10 이상
- Copilot Studio에서 MCP를 사용하려면 `Generative orchestration`이 활성화되어 있어야 함

## 설치

### uv 사용

```bash
uv sync
```

### pip 사용

```bash
pip install "mcp[cli]>=1.9.0"
```

## 실행

```bash
python server.py
```

서버는 MCP Streamable HTTP 방식으로 실행됩니다.  
기본 경로는 일반적으로 `/mcp`를 사용합니다.

### PowerShell 빠른 실행

프로젝트 폴더에서 아래 스크립트로 실행할 수 있습니다.

```powershell
.\start_mcp_server.ps1
```

중지할 때는 아래 스크립트를 사용합니다.

```powershell
.\stop_mcp_server.ps1
```

PowerShell 실행 정책 때문에 `.ps1` 실행이 막히면 아래 `.cmd` 파일을 사용합니다.

```powershell
.\start_mcp_server.cmd
.\stop_mcp_server.cmd
```

`start_mcp_server.cmd`는 새 PowerShell 창을 열어 서버를 실행하므로, 그 창이 열려 있는 동안 MCP 서버가 유지됩니다.

## 도구 설명

### 1. echo

- 설명: 입력된 문장을 정확히 3번 반복해서 반환
- 입력:

```json
{
  "message": "안녕하세요"
}
```

- 출력:

```json
"안녕하세요 안녕하세요 안녕하세요"
```

### 2. multi

- 설명: 입력된 숫자를 제곱해서 반환
- 입력:

```json
{
  "number": 5
}
```

- 출력:

```json
25
```

## Copilot Studio 연결 개요

1. Copilot Studio에서 에이전트를 연다.
2. `Generative orchestration`이 활성화되어 있는지 확인한다.
3. MCP 서버 추가 화면에서 이 서버의 URL을 등록한다.
4. 연결 후 `echo`, `multi` 도구가 자동으로 표시되는지 확인한다.

## 참고

- Copilot Studio는 MCP 서버의 도구 이름, 설명, 입력, 출력을 자동 반영한다.
- Copilot Studio는 `Streamable transport`를 지원한다.
- SSE는 Copilot Studio에서 2025년 8월 이후 지원되지 않는다.