참고
코필로트 SDK가 현재 기술 미리 보기에 있습니다. 기능 및 가용성은 변경될 수 있습니다.
코필로트 SDK
**
** 서버(모델 컨텍스트 프로토콜)와 통합하여 외부 도구를 사용하여 도우미의 기능을 확장할 수 있습니다. MCP 서버는 별도의 프로세스로 실행되며 대화 중에 호출할 수 있는 Copilot 도구(함수)를 노출합니다.
MCP란?
[MCP(모델 컨텍스트 프로토콜)](https://modelcontextprotocol.io/) 는 AI 도우미를 외부 도구 및 데이터 원본에 연결하기 위한 개방형 표준입니다. MCP 서버는 코드 또는 스크립트를 실행하고, 데이터베이스를 쿼리하고, 파일 시스템에 액세스하고, 외부 API를 호출하는 등의 작업을 수행할 수 있습니다.
서버 유형
SDK는 두 가지 유형의 MCP 서버를 지원합니다.
| 유형 | 설명 | 사용 사례 |
|---|
**Local/Stdio** | 하위 프로세스로 실행되며 stdin/stdout을 통해 통신합니다. | 로컬 도구, 파일 액세스, 사용자 지정 스크립트 |
| HTTP/SSE | HTTP를 통해 액세스된 원격 서버 | 공유 서비스, 클라우드 호스팅 도구 |
Configuration
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-5",
mcpServers: {
// Local MCP server (stdio)
"my-local-server": {
type: "local",
command: "node",
args: ["./mcp-server.js"],
env: { DEBUG: "true" },
cwd: "./servers",
tools: ["*"], // "*" = all tools, [] = none, or list specific tools
timeout: 30000,
},
// Remote MCP server (HTTP)
"github": {
type: "http",
url: "https://api.githubcopilot.com/mcp/",
headers: { "Authorization": "Bearer ${TOKEN}" },
tools: ["*"],
},
},
});
Python, Go 및 .NET의 예제는 리포지토리를github/copilot-sdk 참조하세요.
빠른 시작: 파일 시스템 MCP 서버
공식 @modelcontextprotocol/server-filesystem MCP 서버를 사용하는 전체 작업 예제는 다음과 같습니다.
import { CopilotClient } from "@github/copilot-sdk";
async function main() {
const client = new CopilotClient();
// Create session with filesystem MCP server
const session = await client.createSession({
mcpServers: {
filesystem: {
type: "local",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
tools: ["*"],
},
},
});
console.log("Session created:", session.sessionId);
// The model can now use filesystem tools
const result = await session.sendAndWait({
prompt: "List the files in the allowed directory",
});
console.log("Response:", result?.data?.content);
await session.disconnect();
await client.stop();
}
main();
팁
[MCP 서버 디렉터리에서 MCP 서버를](https://github.com/modelcontextprotocol/servers) 사용할 수 있습니다. 인기 있는 옵션에는 `@modelcontextprotocol/server-github`, `@modelcontextprotocol/server-sqlite`및 `@modelcontextprotocol/server-puppeteer`.
구성 옵션
로컬/Stdio 서버
| 재산 | 유형 | 필수 | 설명 |
|---|---|---|---|
type |
`"local"` 또는 `"stdio"` | No | 서버 유형(기본값: 로컬) |
| command | string | 예 | 실행할 명령 |
| args | string[] | 예 | 명령 인수 |
| env | object | No | 환경 변수 |
| cwd | string | No | 작업 디렉터리 |
| tools | string[] | No | 사용하도록 설정하는 도구(["*"] 모두, [] 없음) |
| timeout | number | No | 시간 제한(밀리초) |
원격 서버(HTTP/SSE)
| 재산 | 유형 | 필수 | 설명 |
|---|---|---|---|
type |
`"http"` 또는 `"sse"` | 예 | 서버 유형 |
| url | string | 예 | 서버 URL |
| headers | object | No | HTTP 헤더(예: 인증) |
| tools | string[] | No | 사용을 가능하게 하는 도구 |
| timeout | number | No | 시간 제한(밀리초) |
Troubleshooting
도구가 표시되지 않거나 호출되지 않음
-
**MCP 서버가 올바르게 시작되는지 확인**합니다. 명령 및 인수가 올바른지 확인하고 시작 시 서버 프로세스가 충돌하지 않는지 확인합니다. stderr에서 오류 출력을 찾습니다. -
**도구 구성 확인** - `tools` 또는 `["*"]` 필요한 특정 도구로 설정되거나 나열되어 있는지 확인합니다. 빈 배열 `[]` 은 도구가 활성화되지 않음을 의미합니다. -
**원격 서버에 대한 연결 확인** - URL에 액세스할 수 있는지 확인하고 인증 헤더가 올바른지 확인합니다.
일반적인 문제
| Issue | 해결 방법 |
|---|---|
| "MCP 서버를 찾을 수 없습니다." | 명령 경로가 올바르고 실행 가능한지 확인합니다. |
| "연결 거부됨"(HTTP) | URL을 확인하고 서버가 실행 중인지 확인합니다. |
| "시간 제한" 오류 | 값을 증가시키거나 timeout 서버 성능을 확인하십시오. |
| 도구가 작동하지만 호출되지 않음 | 프롬프트에 도구의 기능이 명확하게 필요한지 확인합니다. |
추가 읽기
-
[모델 컨텍스트 프로토콜 사양](https://modelcontextprotocol.io/) -
[MCP 서버 디렉터리](https://github.com/modelcontextprotocol/servers) - 커뮤니티 MCP 서버 -
[GitHub MCP 서버](https://github.com/github/github-mcp-server) - 공식 GitHub MCP 서버