Strands Agents MCP: 에이전트를 Sume MCP 서버에 연결
MCPClient로 Strands 에이전트를 원격 MCP 서버에 연결하세요. Sume 호스팅 MCP URL과 API 키 헤더를 넣고, tool_filters로 유료 도구를 뺍니다.

Strands Agents는 MCPClient로 MCP 서버에 연결합니다. 원격 서버의 url과 headers를 넘기고 클라이언트를 Agent(tools=[...])에 전달하면, Strands가 서버의 도구를 불러와 다른 도구와 똑같이 에이전트에 넘깁니다. Sume 호스팅 MCP 서버라면 URL은 https://mcp.sume.com/mcp이고 헤더는 Sume API 키를 담은 Authorization: Bearer이며, tool_filters를 쓰면 원하지 않는 한 유료 도구를 빼 둘 수 있습니다.
Strands 쪽 내용은 에이전트를 MCP 도구에 연결하기, MCP 트랜스포트, MCPClient API 레퍼런스에서, Sume 쪽 내용은 MCP OAuth와 API 키, MCP 도구와 게이트, Job과 결과 (영문)에서 가져왔으며, 모두 2026-09-28에 확인했습니다. Strands Agents는 Python과 TypeScript용 오픈 소스 SDK이며, 기본 모델 프로바이더는 Amazon Bedrock입니다. 이 글은 Python을 씁니다. Sume에는 Strands 전용 연동이 없습니다. 에이전트는 다른 원격 MCP 서버와 똑같이 Sume 원격 MCP 서버에 연결하며, Sume 기초 페이지는 호스팅 MCP가 여전히 동작하지만 현재 주 경로는 아니라고 설명합니다.
Strands 에이전트를 Sume MCP 서버에 어떻게 연결하나요?
Strands가 권장하는 방식대로 클라이언트를 에이전트에 바로 넘기세요. 그러면 연결의 수명 주기를 Strands가 대신 관리합니다. url을 설정하면 MCPClient가 Streamable HTTP 트랜스포트를 직접 만들고, headers는 모든 요청에 실려 나갑니다. 키는 프롬프트가 아니라 반드시 환경 변수에서 읽으세요.
import os
from strands import Agent
from strands.tools.mcp import MCPClient
sume = MCPClient(
url="https://mcp.sume.com/mcp",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
# Read tools only; add "generate_image" behind an approval step.
tool_filters={"allowed": ["mcp_health", "tools_list", "jobs_status",
"jobs_wait", "jobs_result"]},
)
agent = Agent(tools=[sume])
agent("Call mcp_health and summarize what it reports.")Sume에 중요한 MCPClient 설정은 무엇인가요?
Strands 트랜스포트 페이지는 MCPClient(lambda: streamablehttp_client(url=..., headers=...)) 형태도 보여 줍니다. MCP Python SDK의 v1.x 소스는 streamablehttp_client를 지원 중단(deprecated)으로 표시하므로("Use streamable_http_client instead"), 위 예제처럼 url을 쓰면 이 헬퍼를 거치지 않습니다.
| 인자 | Strands 문서 설명 | Sume에서는 |
|---|---|---|
url | streamable HTTP 트랜스포트를 자동으로 구성 | https://mcp.sume.com/mcp |
headers | 모든 요청에 붙는 HTTP 헤더. url 필요 | Authorization: Bearer <key> 또는 x-api-key |
tool_filters | allowed에 이름이나 정규식 패턴. allowed를 먼저, 그다음 rejected를 적용 | 에이전트에 필요한 도구만 |
auth | 머신 간 통신용 client_credentials 그랜트 OAuth | 동작하지 않음. 현재 Sume 서버는 authorization_code만 받음 |
auth_provider | 인터랙티브 authorization_code 그랜트 같은 플로용 임의의 httpx.Auth | 사람이 브라우저에서 로그인해야 함 |
startup_timeout | 서버 초기화를 취소하기까지의 타임아웃. 기본값 30 | 기본값 |
왜 Strands의 OAuth 옵션 대신 API 키를 쓰나요?
두 OAuth 경로 모두 사람 없이 실행되는 에이전트에 맞지 않기 때문입니다. Strands의 auth 옵션은 OAuth client_credentials 그랜트로 인증하는데, 현재 Sume 서버는 authorization_code 그랜트만 알립니다. auth_provider로는 인터랙티브 authorization_code 플로를 실행할 수 있지만, 누군가 로그인해야 하고, 동의는 Write가 꺼진 상태로 시작하며, 현재 Sume 코드에서 액세스 토큰은 리프레시 토큰 없이 한 시간 동안 유효합니다.
API 키 세션에는 Sume의 전체 호스팅 도구 세트가 보이고, 지출은 키가 속한 워크스페이스로 잡힙니다. 키는 신뢰할 수 있는 서버나 시크릿 저장소에 두고 프론트엔드 코드에는 절대 넣지 말며, 로그나 채팅 기록에 노출되면 교체하세요.
에이전트가 지출하지 않게 하려면 어떻게 하나요?
작업에 필요한 도구만 불러오세요. Python의 tool_filters는 allowed 아래에 적은 도구 이름만 불러오고, rejected 목록은 그다음에 도구를 뺍니다. 에이전트가 지출할 수 있다면 루프에 사람을 넣으세요. 에이전트의 interventions에 넘긴 Strands의 HumanInTheLoop 개입(intervention)은 도구 호출 전에 멈춰서, 누군가 그 호출을 승인하거나 수정하거나 거부할 수 있게 합니다. 핸들러 자체의 allowed_tools에 넣은 도구는 승인을 건너뛰므로, 여기에는 Sume의 읽기 도구만 적으세요. Sume 유료 도구에는 각각 idempotency_key가 필요하고, dry_run=true는 Job을 제출하지 않고 접수 여부와 비용을 미리 보여 주며, max_spend_usd는 값을 보낸 경우에만 호출의 상한이 됩니다. 이 인수들은 모델이 작성하므로, 여러분의 코드가 강제하지는 않습니다. Sume MCP 도구 목록은 도구를 읽기, 쓰기, 유료로 나눠 정리합니다.
Sume 도구 호출은 얼마나 오래 걸릴 수 있나요?
jobs_wait 호출은 최대 55초, timeout_seconds를 생략하면 50초 동안 열려 있습니다. Strands는 긴 작업이 무한정 멈춰 있지 않도록 도구 호출에 타임아웃을 설정하라고 권하므로, 55초보다 넉넉하게 두세요. 클라이언트 쪽 타임아웃은 Job을 취소하지 않고 Job은 계속 실행되며 계속 청구되므로, wait_slice_expired를 받으면 에이전트는 같은 id로 jobs_wait를 다시 호출해야 하고, 유료 create는 절대 다시 제출하면 안 됩니다.
출처
- Strands Agents: 에이전트를 MCP 도구에 연결하기 (2026-09-28 확인)
- Strands Agents: MCP 트랜스포트 (2026-09-28 확인)
- Strands Agents: MCPClient API 레퍼런스 (2026-09-28 확인)
- Strands Agents: 휴먼 인 더 루프 (2026-09-28 확인)
- Strands Agents: llms.txt 개요 (2026-09-28 확인)
- MCP Python SDK v1.x: streamable_http.py (2026-09-28 확인)
- MCP OAuth와 API 키
- MCP 도구와 게이트
- Job과 결과 (영문)
- 인증
- MCP 개요
- Sume 기초
관련 글
연동 카테고리의 다른 글
- Teams Incoming Webhook 종료: Workflows로 전환
Microsoft는 Teams의 Office 365 커넥터를 May 18~22, 2026에 비활성화하기로 했습니다. 대신 Workflows 웹훅 URL을 만들고 Adaptive Card를 POST하세요.
- ChatGPT에 MCP 서버를 추가하는 방법: 개발자 모드
ChatGPT 개발자 모드를 켜고, 서버 URL로 앱을 만들고, OAuth로 로그인하세요. Sume 호스팅 MCP 서버를 예로 들어 단계를 설명합니다.
- Python으로 영상에 자막을 넣는 방법
Python Requests로 영상에 자막을 넣으세요. 영상 URL을 Sume의 /v1/video-captions로 POST하고, Job을 폴링한 뒤 자막을 입힌 video_url을 읽으면 됩니다.
- Claude 커스텀 커넥터로 Sume 추가하기 (원격 MCP)
Customize > Connectors에서 Sume 호스팅 MCP 서버를 Claude에 추가하고, Sume OAuth 동의가 무엇을 부여하는지 확인한 뒤, 유료 도구를 허용할지 정하세요.
작성자 Sume