MCP 서버로 AI 도구 연동하기
mAsh API는 MCP(Model Context Protocol) 서버를 제공합니다. MCP를 통해 Claude Code, Cursor 등 AI 코딩 도구에서 mAsh 데이터를 직접 조회하고 분석할 수 있습니다.
MCP란?
MCP(Model Context Protocol)는 Anthropic에서 개발한 AI 도구 통합 프로토콜입니다. AI 어시스턴트가 외부 데이터 소스에 안전하게 접근할 수 있도록 표준화된 인터페이스를 제공합니다.
주요 장점
- AI 네이티브: AI 도구가 자연어로 데이터를 조회하고 분석
- 보안: mAsh API Key 기반 인증, 본인 권한 범위 안의 데이터만 노출
- 멀티테넌시: 사용자별 접근 권한 자동 적용
제공 Tools
| Tool | 설명 |
|---|---|
list_boards | 접근 가능한 보드 목록 조회 |
list_dashboards | 보드의 대시보드 목록 조회 |
get_dashboard | 대시보드 상세 정보 조회 (위젯 목록 포함) |
list_widgets | 대시보드의 위젯 목록 조회 |
search_widgets | 위젯 검색 (이름, 즐겨찾기 필터) |
get_widget_data | 위젯 데이터 조회 (기간 지정) |
설정 방법
연결 방법은 두 가지입니다.
- 방법 1 — 브라우저 로그인 (OAuth):
.mcp.json에 URL만 적으면, 첫 연결 시 브라우저가 열려 mAsh 로그인 → 승인하면 자동으로 연결됩니다. API Key를 직접 발급·복사할 필요가 없습니다. 권장. - 방법 2 — API Key 직접 입력: 대시보드에서 발급한 API Key를 환경변수/
.mcp.json에 직접 넣습니다. CI 등 브라우저가 없는 환경에 적합합니다.
두 방법 모두 본인 계정 권한 범위 안의 데이터만 노출됩니다. (방법 1 OAuth 는 mcp:dashboard:read scope 키를 발급하고, 방법 2 는 발급 시 scope 를 직접 선택합니다.)
방법 1: 브라우저 로그인 (OAuth)
Claude Code, Cursor, Claude Desktop 등 OAuth를 지원하는 MCP 클라이언트에서 사용합니다.
1. .mcp.json 파일 생성 (키 없이)
{
"mcpServers": {
"mash-api": {
"type": "http",
"url": "https://api.mash-board.io/mcp/"
}
}
}
Claude Code는 명령으로 추가할 수도 있습니다.
claude mcp add --transport http mash-api https://api.mash-board.io/mcp/
2. 첫 연결 — 브라우저 인증
AI 도구를 재시작(또는 첫 호출)하면 브라우저가 열립니다.
- mAsh 로그인 — 이미 매쉬보드에 로그인되어 있으면 이 단계는 건너뜁니다.
- 승인 화면 — "
<도구 이름>가 mAsh 계정에 접근하려고 합니다" → 허용되는 권한을 확인하고 승인. - 도구로 돌아오면 연결이 완료됩니다.
발급된 토큰은 약 90일 후 만료되며, 만료되면 같은 브라우저 인증을 한 번 더 거치면 됩니다.
토큰 폐기
브라우저 인증으로 발급된 토큰은 매쉬보드 개인 설정 → API 키 목록에 mcp-oauth: 로 시작하는 이름으로 나타납니다. 해당 카드의 삭제 버튼으로 언제든 폐기할 수 있습니다.
온프레미스 배포에서는 브라우저 인증 대신 방법 2를 사용하세요.
방법 2: API Key 직접 입력
사전 준비: API Key 발급
mAsh 대시보드의 개인 설정 화면에서 본인 계정으로 API Key를 발급받을 수 있습니다.
발급 시 선택 항목:
| 항목 | 설명 |
|---|---|
| 이름 | 키를 구분할 자유 텍스트 (예: "claude-code-laptop") |
| 권한 (scope) | 이 키가 접근 가능한 범위 — <surface>:<resource>:<action> 또는 *. 예: mcp:dashboard:read(MCP 대시보드 조회 도구), mcp:*(MCP 전체), api:*(REST 전체), *(전체). 비우면 *. MCP 연동만 할 거면 mcp:dashboard:read 권장. |
| 만료 기간 | 7 / 30 / 90 / 180일 / 무기한 중 선택 |
발급된 키는 1회만 표시되며 창을 닫으면 다시 확인할 수 없습니다. 안전한 곳에 보관하세요.
만료 관리: 무기한 키도 발급 가능하지만 운영 보안을 위해 30~180일 만료를 권장합니다. 만료된 키는 카드에 "만료됨" 라벨이 표시되고 호출 시 거부됩니다.
1. 환경변수 설정
API Key를 환경변수로 설정합니다.
# .env 파일에 추가
MASH_API_KEY=abcd1234.xxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 또는 쉘 프로필(~/.zshrc, ~/.bashrc)에 추가
export MASH_API_KEY="abcd1234.xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2. .mcp.json 파일 생성
프로젝트 루트에 .mcp.json 파일을 생성합니다.
{
"mcpServers": {
"mash-api": {
"type": "http",
"url": "https://api.mash-board.io/mcp/",
"headers": {
"X-MASH-API-KEY": "${MASH_API_KEY}"
}
}
}
}
환경변수
MASH_API_KEY가 설정되어 있으면 자동으로 치환됩니다.
3. AI 도구 재시작
설정 파일 생성 후 AI 도구를 재시작하면 MCP 서버가 자동으로 연결됩니다.
지원 도구
- Claude Code: 방법 1(OAuth) 사용 시 첫 연결에서 브라우저 인증 창이 열립니다. 방법 2(API Key) 사용 시에도 서버 승인 팝업이 표시될 수 있습니다.
- Cursor / Claude Desktop: 동일한
.mcp.json설정을 사용합니다. OAuth 지원 버전에서는 방법 1이 동작합니다.
사용 예시
MCP 서버가 설정되면 AI 도구에서 자연어로 mAsh 데이터를 조회할 수 있습니다.
기본 사용법
보드 목록 조회
"내가 접근할 수 있는 보드 목록을 보여줘"
AI가 list_boards tool을 호출하여 접근 가능한 보드 목록을 반환합니다.
대시보드 목록 조회
"첫 번째 보드의 대시보드 목록을 보여줘"
AI가 list_boards로 보드 UID를 확인한 후 list_dashboards를 호출합니다.
위젯 데이터 분석
"일일 리포트 대시보드의 방문자 수 위젯 데이터를 이번 달 조회해서 분석해줘"
AI가 순차적으로 보드 → 대시보드 → 위젯을 찾아 get_widget_data로 데이터를 조회합니다.
위젯 검색
"'방문' 관련 위젯을 찾아줘"
AI가 search_widgets tool을 호출하여 이름에 "방문"이 포함된 위젯을 검색합니다.