본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 24. 17:53

Hermes AI Agent를 위한 Mural Skill - 인증 수정 및 새로운 헬퍼 스크립트

요약

Hermes AI Agent의 Mural Skill 업데이트 소식을 전합니다. OAuth 토큰 갱신 오류를 HTTP Basic 인증 방식으로 수정하였으며, 자동 토큰 갱신 및 보안을 강화한 새로운 헬퍼 스크립트를 추가했습니다.

핵심 포인트

  • Mural API의 OAuth 토큰 갱신 방식을 Basic 인증으로 수정
  • 15분마다 토큰을 자동 갱신하는 mural_api.py 헬퍼 스크립트 도입
  • 문서 기반 워크숍 보드 생성 및 위젯 프로그래밍 제어 가능
  • 셸 명령을 통한 자격 증명 유출 방지 및 보안 강화

변경 사항

Hermes AI Agent를 위한 Mural skill이 실사용 후 Hermes가 자체 버그를 수정한 덕분에 중요한 업데이트를 마쳤습니다.

버그: 토큰 갱신(Token Refresh) 오류

기존 구현 방식은 OAuth 토큰을 갱신할 때 요청 본문(request body)에 client_id와 client_secret을 포함했습니다. Mural의 API는 이를 400 invalid_client 오류와 함께 거부합니다.

수정 사항: Mural은 토큰 갱신을 위해 HTTP Basic 인증을 요구합니다. 즉, 자격 증명(credentials)은 본문이 아닌 Authorization 헤더에 포함되어야 합니다.

import base64, urllib.request, urllib.parse

creds = base64.b64encode(f"{CLIENT_ID}:{CLIENT_SECRET}".encode()).decode()

req = urllib.request.Request(  
"https://app.mural.co/api/public/v1/authorization/oauth2/token",  
data=urllib.parse.urlencode({
"grant_type": "refresh_token",
"refresh_token": REFRESH_TOKEN,
}).encode(),
headers={
"Authorization": f"Basic {creds}",
"Content-Type": "application/x-www-form-urlencoded",
}
)

신규: mural_api.py 헬퍼 스크립트

Hermes는 다음과 같은 기능을 갖춘 즉시 사용 가능한 클라이언트 스크립트(~/.hermes/scripts/mural_api.py)를 작성했습니다:

  • 토큰이 만료될 때마다 자동 갱신 (15분마다)
  • .env 파일에 토큰을 자동으로 다시 기록 (갱신된 refresh token 반영)
  • 셸 인라인 명령을 통한 자격 증명 유출 방지
python3 ~/.hermes/scripts/mural_api.py refresh # 강제 갱신
python3 ~/.hermes/scripts/mural_api.py get /workspaces # 인증된 GET 요청
python3 ~/.hermes/scripts/mural_api.py get /workspaces/<id>/murals

현재 Hermes가 Mural로 할 수 있는 일

  • 문서로부터 전체 워크숍 보드 생성 (DOCX 파일로부터 40개의 위젯이 포함된 트레이닝 데이 보드를 구축했습니다)
  • 스티키(stickies), 도형(shapes), 커넥터(connectors)를 프로그래밍 방식으로 추가
  • 워크스페이스 및 룸 전체에서 mural 목록 조회 및 검색
  • 템플릿으로부터 mural 복제

Skill 가져오기

~/.hermes/skills/productivity/mural/SKILL.md

또는 GitHub에서 찾아보세요: https://github.com/RobinBeraud/hermes-skills

Hermes는 오픈 소스 (open-source) AI 에이전트 프레임워크입니다. Skill은 에이전트에게 API 사용법을 가르치는 마크다운 (markdown) 파일입니다. 유용하다고 느끼신다면 저장소 (repo)에 Star를 눌러주세요!

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0